Skip to content

Instantly share code, notes, and snippets.

@tessprime
Last active January 6, 2020 06:15
Show Gist options
  • Select an option

  • Save tessprime/0bf8f2c7dbc1a2edcad5319450f3c82c to your computer and use it in GitHub Desktop.

Select an option

Save tessprime/0bf8f2c7dbc1a2edcad5319450f3c82c to your computer and use it in GitHub Desktop.
ulong hxp2019__check__h578f31d490e10a31(uint param_1,uint param_2)
{
long lVar1;
int iVar2;
uint uVar3;
uint uVar4;
int iVar5;
undefined8 *puVar6;
long in_FS_OFFSET;
uint local_50;
uint local_4c;
uint local_3c;
uint local_38;
uint local_34;
uint local_30;
uint local_2c;
uint local_28;
iVar2 = g0;
lVar1 = *(long *)(in_FS_OFFSET + 0x28);
wasm_rt_call_stack_depth = wasm_rt_call_stack_depth + 1;
if (500 < wasm_rt_call_stack_depth) {
puVar6 = (undefined8 *)__cxa_allocate_exception(8);
*puVar6 = 0x11269c;
/* WARNING: Subroutine does not return */
__cxa_throw(puVar6,&typeinfo,0);
}
uVar3 = g0 - 0x20;
local_3c = 0;
if (param_2 == 0x32) {
uVar4 = g0 - 0x1c;
g0 = uVar3;
i32_store((wasm_rt_memory_t *)memory,(ulong)uVar4,0x32);
i32_store((wasm_rt_memory_t *)memory,(ulong)uVar3,param_1);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x18),0);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x14),4);
iVar5 = i32_load8_s((wasm_rt_memory_t *)memory,(ulong)(param_1 + 4));
if (iVar5 < -0x40) {
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 8),iVar2 - 0x14);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0xc),iVar2 - 0x18);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x10),uVar3);
core__str__traits___impl_core__slice__SliceIndex_str__for_core__ops__range__Range_usize____index____closure____h81e1d06525c0564b
(iVar2 - 0x10);
puVar6 = (undefined8 *)__cxa_allocate_exception(8);
*puVar6 = 0x1126a7;
/* WARNING: Subroutine does not return */
__cxa_throw(puVar6,&typeinfo,0);
}
if (param_1 != 0x100440) {
local_3c = 0;
iVar5 = i32_load((wasm_rt_memory_t *)memory,(ulong)param_1);
if (iVar5 != 0x7b707868) goto LAB_00106d2c;
}
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x1c),0x32);
i32_store((wasm_rt_memory_t *)memory,(ulong)uVar3,param_1);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x18),0x31);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x14),0x32);
iVar5 = i32_load8_s((wasm_rt_memory_t *)memory,(ulong)(param_1 + 0x31));
if (iVar5 < -0x40) {
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 8),iVar2 - 0x14);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0xc),iVar2 - 0x18);
i32_store((wasm_rt_memory_t *)memory,(ulong)(iVar2 - 0x10),uVar3);
core__str__traits___impl_core__slice__SliceIndex_str__for_core__ops__range__Range_usize____index____closure____h81e1d06525c0564b
(iVar2 - 0x10);
puVar6 = (undefined8 *)__cxa_allocate_exception(8);
*puVar6 = 0x1126a7;
/* WARNING: Subroutine does not return */
__cxa_throw(puVar6,&typeinfo,0);
}
uVar3 = param_1 + 0x31;
if ((uVar3 == 0x100444) || (local_3c = 0, iVar5 == 0x7d)) {
local_4c = param_1 + 4;
local_50 = 0;
local_3c = 1;
do {
if (local_4c == uVar3) goto LAB_00106d2c;
local_38 = local_4c + 1;
uVar4 = i32_load8_s((wasm_rt_memory_t *)memory,(ulong)local_4c);
if ((int)uVar4 < 0) {
if (uVar3 == local_38) {
local_30 = 0;
local_2c = uVar3;
}
else {
local_30 = i32_load8_u((wasm_rt_memory_t *)memory,(ulong)(local_4c + 1));
local_30 = local_30 & 0x3f;
local_38 = local_4c + 2;
local_2c = local_38;
}
if ((uVar4 & 0xff) < 0xe0) {
local_34 = local_30 | (uVar4 & 0x1f) << 6;
}
else {
if (uVar3 == local_2c) {
local_28 = 0;
local_2c = uVar3;
}
else {
local_28 = i32_load8_u((wasm_rt_memory_t *)memory,(ulong)local_2c);
local_28 = local_28 & 0x3f;
local_38 = local_2c + 1;
local_2c = local_38;
}
local_28 = local_28 | local_30 << 6;
local_34 = local_28;
if (0xef < (uVar4 & 0xff)) {
if (uVar3 == local_2c) {
local_34 = 0;
}
else {
local_38 = local_2c + 1;
local_34 = i32_load8_u((wasm_rt_memory_t *)memory,(ulong)local_2c);
local_34 = local_34 & 0x3f;
}
local_34 = local_28 << 6 | (uVar4 & 7) << 0x12 | local_34;
if (local_34 == 0x110000) goto LAB_00106d2c;
}
}
}
else {
local_34 = uVar4 & 0xff;
}
if (0x2c < local_50) {
core__panicking__panic_bounds_check__h1fae5a314994f748(0x100534,local_50,0x2d);
puVar6 = (undefined8 *)__cxa_allocate_exception(8);
*puVar6 = 0x1126a7;
/* WARNING: Subroutine does not return */
__cxa_throw(puVar6,&typeinfo,0);
}
uVar4 = i32_load((wasm_rt_memory_t *)memory,(ulong)(local_50 * 4 + 0x100474));
uVar4 = uVar4 ^ local_50 * 0x539;
if (0x2c < uVar4) {
core__panicking__panic_bounds_check__h1fae5a314994f748(0x100544,uVar4,0x2d);
puVar6 = (undefined8 *)__cxa_allocate_exception(8);
*puVar6 = 0x1126a7;
/* WARNING: Subroutine does not return */
__cxa_throw(puVar6,&typeinfo,0);
}
local_50 = local_38 + (local_50 - local_4c);
local_4c = local_38;
uVar4 = i32_load8_u((wasm_rt_memory_t *)memory,(ulong)(uVar4 + 0x100445));
} while ((local_34 & 0xff) == uVar4);
local_3c = 0;
}
}
LAB_00106d2c:
wasm_rt_call_stack_depth = wasm_rt_call_stack_depth - 1;
if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
g0 = iVar2;
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
g0 = iVar2;
return (ulong)local_3c;
}
static u32 hxp2019__check__h578f31d490e10a31(u32 p0, u32 p1) {
u32 l2 = 0, l3 = 0, l4 = 0, l5 = 0, l6 = 0, l7 = 0, l8 = 0, l9 = 0,
l10 = 0;
FUNC_PROLOGUE;
u32 i0, i1, i2;
i0 = g0;
i1 = 32u;
i0 -= i1;
l2 = i0;
g0 = i0;
i0 = 0u;
l3 = i0;
i0 = p1;
i1 = 50u;
i0 = i0 != i1;
if (i0) {goto B0;}
i0 = l2;
i1 = 50u;
i32_store((&memory), (u64)(i0 + 4), i1);
i0 = l2;
i1 = p0;
i32_store((&memory), (u64)(i0), i1);
i0 = l2;
i1 = 0u;
i32_store((&memory), (u64)(i0 + 8), i1);
i0 = l2;
i1 = 4u;
i32_store((&memory), (u64)(i0 + 12), i1);
i0 = p0;
i0 = i32_load8_s((&memory), (u64)(i0 + 4));
i1 = 4294967231u;
i0 = (u32)((s32)i0 <= (s32)i1);
if (i0) {goto B2;}
i0 = p0;
i1 = 1049664u;
i0 = i0 == i1;
if (i0) {goto B1;}
i0 = 0u;
l3 = i0;
i0 = p0;
i0 = i32_load((&memory), (u64)(i0));
i1 = 2070968424u;
i0 = i0 == i1;
if (i0) {goto B1;}
goto B0;
B2:;
i0 = l2;
i1 = l2;
i2 = 12u;
i1 += i2;
i32_store((&memory), (u64)(i0 + 24), i1);
i0 = l2;
i1 = l2;
i2 = 8u;
i1 += i2;
i32_store((&memory), (u64)(i0 + 20), i1);
i0 = l2;
i1 = l2;
i32_store((&memory), (u64)(i0 + 16), i1);
i0 = l2;
i1 = 16u;
i0 += i1;
core__str__traits___impl_core__slice__SliceIndex_str__for_core__ops__range__Range_usize____index____closure____h81e1d06525c0564b(i0);
UNREACHABLE;
B1:;
i0 = l2;
i1 = 50u;
i32_store((&memory), (u64)(i0 + 4), i1);
i0 = l2;
i1 = p0;
i32_store((&memory), (u64)(i0), i1);
i0 = l2;
i1 = 49u;
i32_store((&memory), (u64)(i0 + 8), i1);
i0 = l2;
i1 = 50u;
i32_store((&memory), (u64)(i0 + 12), i1);
i0 = p0;
i0 = i32_load8_s((&memory), (u64)(i0 + 49));
p1 = i0;
i1 = 4294967231u;
i0 = (u32)((s32)i0 <= (s32)i1);
if (i0) {goto B3;}
i0 = p0;
i1 = 49u;
i0 += i1;
l4 = i0;
i1 = 1049668u;
i0 = i0 == i1;
if (i0) {goto B4;}
i0 = 0u;
l3 = i0;
i0 = p1;
i1 = 125u;
i0 = i0 != i1;
if (i0) {goto B0;}
B4:;
i0 = p0;
i1 = 4u;
i0 += i1;
p0 = i0;
i0 = 0u;
p1 = i0;
i0 = 1u;
l3 = i0;
L7:
i0 = l4;
i1 = p0;
i0 = i0 == i1;
if (i0) {goto B0;}
i0 = p0;
i1 = 1u;
i0 += i1;
l5 = i0;
i0 = p0;
i0 = i32_load8_s((&memory), (u64)(i0));
l6 = i0;
i1 = 4294967295u;
i0 = (u32)((s32)i0 > (s32)i1);
if (i0) {goto B9;}
i0 = l5;
i1 = l4;
i0 = i0 != i1;
if (i0) {goto B11;}
i0 = 0u;
l7 = i0;
i0 = l4;
l8 = i0;
goto B10;
B11:;
i0 = p0;
i0 = i32_load8_u((&memory), (u64)(i0 + 1));
i1 = 63u;
i0 &= i1;
l7 = i0;
i0 = p0;
i1 = 2u;
i0 += i1;
l5 = i0;
l8 = i0;
B10:;
i0 = l6;
i1 = 31u;
i0 &= i1;
l9 = i0;
i0 = l6;
i1 = 255u;
i0 &= i1;
l6 = i0;
i1 = 223u;
i0 = i0 > i1;
if (i0) {goto B12;}
i0 = l7;
i1 = l9;
i2 = 6u;
i1 <<= (i2 & 31);
i0 |= i1;
l6 = i0;
goto B8;
B12:;
i0 = l8;
i1 = l4;
i0 = i0 != i1;
if (i0) {goto B14;}
i0 = 0u;
l10 = i0;
i0 = l4;
l8 = i0;
goto B13;
B14:;
i0 = l8;
i0 = i32_load8_u((&memory), (u64)(i0));
i1 = 63u;
i0 &= i1;
l10 = i0;
i0 = l8;
i1 = 1u;
i0 += i1;
l5 = i0;
l8 = i0;
B13:;
i0 = l10;
i1 = l7;
i2 = 6u;
i1 <<= (i2 & 31);
i0 |= i1;
l7 = i0;
i0 = l6;
i1 = 240u;
i0 = i0 >= i1;
if (i0) {goto B15;}
i0 = l7;
i1 = l9;
i2 = 12u;
i1 <<= (i2 & 31);
i0 |= i1;
l6 = i0;
goto B8;
B15:;
i0 = l8;
i1 = l4;
i0 = i0 != i1;
if (i0) {goto B17;}
i0 = 0u;
l6 = i0;
goto B16;
B17:;
i0 = l8;
i1 = 1u;
i0 += i1;
l5 = i0;
i0 = l8;
i0 = i32_load8_u((&memory), (u64)(i0));
i1 = 63u;
i0 &= i1;
l6 = i0;
B16:;
i0 = l7;
i1 = 6u;
i0 <<= (i1 & 31);
i1 = l9;
i2 = 18u;
i1 <<= (i2 & 31);
i2 = 1835008u;
i1 &= i2;
i0 |= i1;
i1 = l6;
i0 |= i1;
l6 = i0;
i1 = 1114112u;
i0 = i0 == i1;
if (i0) {goto B0;}
goto B8;
B9:;
i0 = l6;
i1 = 255u;
i0 &= i1;
l6 = i0;
B8:;
i0 = p1;
i1 = 44u;
i0 = i0 > i1;
if (i0) {goto B6;}
i0 = p1;
i1 = 2u;
i0 <<= (i1 & 31);
i1 = 1049716u;
i0 += i1;
i0 = i32_load((&memory), (u64)(i0));
i1 = p1;
i2 = 1337u;
i1 *= i2;
i0 ^= i1;
l8 = i0;
i1 = 44u;
i0 = i0 > i1;
if (i0) {goto B5;}
i0 = p1;
i1 = p0;
i0 -= i1;
i1 = l5;
i0 += i1;
p1 = i0;
i0 = l5;
p0 = i0;
i0 = l8;
i1 = 1049669u;
i0 += i1;
i0 = i32_load8_u((&memory), (u64)(i0));
i1 = l6;
i2 = 255u;
i1 &= i2;
i0 = i0 == i1;
if (i0) {goto L7;}
i0 = 0u;
l3 = i0;
goto B0;
B6:;
i0 = 1049908u;
i1 = p1;
i2 = 45u;
core__panicking__panic_bounds_check__h1fae5a314994f748(i0, i1, i2);
UNREACHABLE;
B5:;
i0 = 1049924u;
i1 = l8;
i2 = 45u;
core__panicking__panic_bounds_check__h1fae5a314994f748(i0, i1, i2);
UNREACHABLE;
B3:;
i0 = l2;
i1 = l2;
i2 = 12u;
i1 += i2;
i32_store((&memory), (u64)(i0 + 24), i1);
i0 = l2;
i1 = l2;
i2 = 8u;
i1 += i2;
i32_store((&memory), (u64)(i0 + 20), i1);
i0 = l2;
i1 = l2;
i32_store((&memory), (u64)(i0 + 16), i1);
i0 = l2;
i1 = 16u;
i0 += i1;
core__str__traits___impl_core__slice__SliceIndex_str__for_core__ops__range__Range_usize____index____closure____h81e1d06525c0564b(i0);
UNREACHABLE;
B0:;
i0 = l2;
i1 = 32u;
i0 += i1;
g0 = i0;
i0 = l3;
FUNC_EPILOGUE;
return i0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment