Function at 0x4c7f54
Capabilities:
Access peb ldr_data
Check for software breakpoints
Check os version
Encrypt data using speck
Get number of processors
Get process heap flags
Inspect section memory permissions
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x11c
cmp dword [ecx], 0xffffffff
call 0x4c7f66
pop eax
mov dword [esp + 0xe0], eax
je 0x4d2e43
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ecx
push 0x3c
pop ecx
call fcn.004016e1
xor edx, edx
mov dword [eax], 0x5bf
mov dword [eax + 4], 0xbaf
mov dword [eax + 8], 0xd64
mov dword [eax + 0xc], 0x28f
mov dword [eax + 0x10], 0x54b
mov dword [eax + 0x14], 0x42c
mov dword [eax + 0x18], 0x69f
mov dword [eax + 0x1c], 0x57d
mov dword [eax + 0x20], 0xea4
mov dword [eax + 0x24], 0x450
mov dword [eax + 0x28], 0xc69
mov dword [eax + 0x2c], 0xbbf
mov dword [eax + 0x30], 0x8d3
mov dword [eax + 0x34], 0x5d5
mov dword [eax + 0x38], 0xfb3
push 0xffffffffffffffc4
pop ecx
test ecx, ecx
je 0x4c8004
add edx, dword [eax + ecx + 0x3c]
add ecx, 4
jmp 0x4c7ff7
cmp edx, 0xf9
mov dword [esp + 0xe8], eax
je 0x4c8023
cmp edx, 0xc6c
jne 0x4c8029
sub esp, 0x12d5
ud2
add esp, 0x884
mov dword [esp + 0x30], edx
mov ebp, 0xd0c
mov edx, 0xb1e
mov ebx, 0x5e6
mov eax, 0x231
mov dword [esp + 0x14], 0x40e
mov dword [esp + 0x34], 0x8ce
mov dword [esp + 0x44], 0x13f
mov dword [esp], 0xc3b
mov dword [esp + 0x18], 0xcd
mov dword [esp + 0xc], 0x18b4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
mov dword [esp + 8], ebx
sub eax, 1
jb 0x4c81b4
bswap ebp
mov dword [esp + 0xc], eax
mov esi, 0xf0f0f0f
mov dword [esp + 0x10], edi
mov eax, ebp
and ebp, esi
shr eax, 4
shl ebp, 4
and eax, esi
mov esi, 0x33333333
or ebp, eax
mov eax, ebp
shr ebp, 2
and eax, esi
and ebp, esi
mov esi, 0x55555555
lea eax, [ebp + eax*4]
mov ecx, eax
shr eax, 1
and ecx, esi
and eax, esi
mov esi, 0x80000000
lea ebp, [eax + ecx*2]
mov ecx, dword [esp]
lea eax, [ebp + ecx]
sar eax, 0x1f
xor eax, esi
add ebp, ecx
mov esi, 0x7fffffff
mov ecx, 0x80000000
cmovo ebp, eax
xor eax, eax
imul ebp, edi
cmp ebx, ebp
setns al
add eax, esi
sub ebx, ebp
cmovo ebx, eax
mov eax, edi
xor eax, edx
mov dword [esp + 0x24], ebx
mov ebx, 0x7fffffff
shr eax, 0x1f
add eax, esi
mov esi, dword [esp + 0x34]
imul edx, edi
cmovo edx, eax
lea eax, [edx + esi]
sar eax, 0x1f
xor eax, ecx
mov ecx, dword [esp + 0x18]
add edx, esi
mov edi, edx
mov edx, 0x80000000
cmovo edi, eax
mov dword [esp + 0x14], edi
lea eax, [ecx + edi]
mov esi, ecx
sar eax, 0x1f
xor eax, edx
mov edx, dword [esp + 0x44]
add esi, edi
cmovo esi, eax
mov eax, edx
xor eax, ecx
shr eax, 0x1f
add eax, ebx
imul edx, ecx
mov ecx, dword [esp + 0x3c]
cmovo edx, eax
sar edx, cl
mov ecx, edx
mov edx, dword [esp + 0x10]
call fcn.004015c4
mov edx, dword [esp + 8]
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.004015c4
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
mov ebx, eax
bswap ebx
mov edx, ebx
mov ecx, esi
imul edi, esi
call fcn.004015c4
mov edx, esi
mov dword [esp + 0x18], ebx
mov dword [esp], esi
mov dword [esp + 0x34], esi
mov ecx, edx
mov edx, dword [esp + 0x10]
sar eax, cl
mov ecx, ebx
mov ebx, edi
shl eax, cl
imul eax, ebp
mov dword [esp + 0x30], edx
mov edx, ebp
jmp 0x4c8070
mov eax, dword [esp + 0x30]
cmp eax, 0x3fe
je 0x4c81fe
cmp eax, 0xf4d
je 0x4c81e4
cmp eax, 0xfa1
je 0x4c81f4
cmp eax, 0xfdd
jne 0x4c8214
sub esp, 0xab8
mov dword [esp + 0x30], 0xfdd
jmp 0x4c8214
add esp, 0xe79
mov dword [esp + 0x30], 0xf4d
jmp 0x4c8214
mov dword [esp + 0x30], 0x85f00000
jmp 0x4c8214
mov esi, dword [esp + 0x18]
mov eax, 0x7fffffff
add esi, 0x3fe
cmovno eax, esi
mov dword [esp + 0x30], eax
cmp ebp, 0x120
je 0x4c8240
cmp ebp, 0x41e
jne 0x4c824b
mov esi, dword [esp + 0x18]
mov ebp, 0x41e
xor eax, eax
cmp ebp, esi
setns al
add eax, 0x7fffffff
sub ebp, esi
cmovo ebp, eax
jmp 0x4c824b
sub esp, 0x130d
mov ebp, 0x120
cmp edi, 0x7f6
je 0x4c8274
cmp edi, 0xe68
je 0x4c826b
cmp edi, 0x25e
jne 0x4c8283
add esp, 0x112e
ud2
mov edi, 0xe68
sub edi, edx
jmp 0x4c8283
mov eax, edx
mov edi, 0x7fffffff
add eax, 0x7f6
cmovno edi, eax
mov eax, dword [esp + 0x34]
cmp eax, 0x23d
je 0x4c82bd
cmp eax, 0x695
je 0x4c82ad
cmp eax, 0x896
jne 0x4c82ca
mov esi, 0x896
mov ecx, dword [esp + 0x18]
shl esi, cl
mov dword [esp + 0x34], esi
jmp 0x4c82ca
add esp, 0x109f
mov dword [esp + 0x34], 0x695
jmp 0x4c82ca
mov eax, dword [esp + 0x3c]
add eax, 0x23d
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], ebp
cmp eax, 1
je 0x4c8306
cmp eax, 0xc
je 0x4c82f9
mov ebp, eax
cmp eax, 0x10
jne 0x4c8306
push 0x10
pop ecx
mov ebp, edx
mov edx, edi
call fcn.004015c4
mov ebx, dword [esp + 8]
mov edx, ebp
mov ebp, eax
jmp 0x4c8306
mov eax, edi
mov ebp, 0x7fffffff
add eax, 0xc
cmovno ebp, eax
cmp edx, 0xa64
mov dword [esp + 0x44], ebp
je 0x4c8331
cmp edx, 0xd42
je 0x4c832a
cmp edx, 0x78b
jne 0x4c8343
add esp, 0xda4
ud2
mov edx, 0x42b00000
jmp 0x4c8343
mov ecx, 0xa64
mov edx, ebx
call fcn.004015c4
mov ebp, dword [esp + 0x44]
mov edx, eax
mov eax, dword [esp]
test eax, eax
cmove eax, edx
mov dword [esp], eax
mov eax, dword [esp + 0x18]
cmp eax, 0x11
je 0x4c8391
cmp eax, 0x143
je 0x4c8377
cmp eax, 0xd54
je 0x4c8381
cmp eax, 0x1000000
jne 0x4c839e
mov eax, ebp
shl eax, 0x18
mov dword [esp + 0x18], eax
jmp 0x4c839e
mov dword [esp + 0x18], 0x43010000
jmp 0x4c839e
sub esp, 0x124c
mov dword [esp + 0x18], 0xd54
jmp 0x4c839e
push 0x11
pop eax
mov dword [esp + 0x18], eax
sub esp, 0x6e3
test ebx, ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edi
je 0x4c83bf
cmp ebx, 0xd0b
jne 0x4c83c1
sub esp, 0x998
mov ebx, 0xd0b
jmp 0x4c83c1
mov ebx, edi
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
mov edx, 0x1b8
mov eax, 0x3f1
mov ecx, 0x1b30
mov edi, 0x919
mov dword [esp + 0x20], 0xa6c
mov dword [esp + 4], 0xc4e
mov dword [esp + 0x40], 0xbcf
mov dword [esp + 0x14], 0x3b9
mov dword [esp + 0x28], 0x7e6
mov dword [esp + 0x50], 0xfc8
sub ecx, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x48], eax
jb 0x4c86a3
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
mov ebp, eax
mov edx, ebx
call fcn.004015c4
mov edi, dword [esp + 0x20]
mov ecx, ebx
sar eax, cl
mov ecx, eax
mov edx, edi
call fcn.004015c4
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [esp + 0x38], eax
shl esi, cl
mov ecx, eax
sub esi, ebp
mov ebp, 0x80000000
add eax, esi
sar eax, 0x1f
xor eax, ebp
add esi, ecx
mov ecx, dword [esp + 0x24]
cmovo esi, eax
mov eax, dword [esp]
mov edx, esi
sar eax, cl
mov ecx, eax
call fcn.004015c4
sub eax, esi
mov edx, 0xf0f0f0f
mov dword [esp + 0xc], esi
mov dword [esp + 0x20], edi
bswap eax
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
lea eax, [eax + ecx*4]
mov ecx, 0x55555555
mov edx, eax
shr eax, 1
and edx, ecx
and eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x4c], edx
lea edx, [eax + edx*2]
mov esi, edx
mov dword [esp], esi
lea eax, [ecx + edx]
sar eax, 0x1f
xor eax, ebp
add ecx, edx
mov edx, 0x7fffffff
cmovo ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
xor eax, ebx
shr eax, 0x1f
add eax, edx
imul ebx, ecx
mov ecx, dword [esp + 8]
cmovo ebx, eax
xor eax, eax
cmp ebx, esi
setns al
add eax, edx
sub ebx, esi
mov esi, dword [esp + 0x14]
mov edx, edi
cmovo ebx, eax
lea eax, [ebx + edi]
sar eax, 0x1f
xor eax, ebp
add ebx, edi
cmovo ebx, eax
lea eax, [ecx + esi]
sar eax, 0x1f
xor eax, ebp
add ecx, esi
cmovo ecx, eax
call fcn.004015c4
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
sar ebx, cl
mov ecx, edi
mov dword [esp + 0x5c], eax
mov edx, ebp
call fcn.004015c4
mov edi, dword [esp + 0x28]
mov ecx, ebx
mov dword [esp + 0x3c], ebx
mov edx, dword [esp + 0x20]
shl eax, cl
mov ecx, ebp
add eax, ebx
mov ebx, dword [esp + 0x1c]
mov ebp, eax
mov dword [esp + 0x34], eax
xor eax, eax
add ecx, edi
imul ebp, esi
bswap edi
bswap ecx
sub ebp, ecx
mov dword [esp + 4], ecx
mov ecx, 0x7fffffff
cmp ebp, ebx
setns al
add eax, ecx
sub ebp, ebx
mov ebx, dword [esp + 0x40]
cmovo ebp, eax
xor eax, eax
cmp ebx, esi
setns al
add eax, ecx
mov ecx, ebx
sub ecx, esi
mov esi, dword [esp + 0x44]
cmovo ecx, eax
xor eax, eax
mov dword [esp + 0x54], ecx
mov ecx, 0x7fffffff
cmp esi, edx
setns al
add eax, ecx
mov ecx, esi
sub ecx, edx
cmovo ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
xor ecx, ecx
add eax, edx
mov edx, 0x7fffffff
cmp eax, esi
setns cl
add ecx, edx
mov edx, dword [esp + 8]
sub eax, esi
mov esi, 0x7fffffff
cmovo eax, ecx
mov ecx, edx
shl eax, cl
mov ecx, eax
xor ecx, edx
shr ecx, 0x1f
add ecx, esi
imul eax, edx
mov esi, dword [esp + 0x5c]
mov edx, 0x7fffffff
cmovo eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0x1c]
sar eax, cl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov eax, dword [esp]
add ecx, ecx
xor ecx, ebp
sub esi, eax
shr ecx, 0x1f
add ecx, edx
imul ebp, eax
cmovo ebp, ecx
mov ecx, dword [esp + 0x24]
add edi, eax
mov eax, edi
xor eax, ecx
shr eax, 0x1f
add eax, edx
imul edi, ecx
mov ecx, ebx
mov edx, esi
cmovo edi, eax
sar edi, cl
lea ecx, [ebp + ebx]
mov dword [esp + 0x28], edi
call fcn.004015c4
mov edi, dword [esp + 0x1c]
mov ecx, eax
mov edx, 0x7fffffff
mov dword [esp + 0x14], ebp
mov dword [esp + 8], esi
xor ecx, edi
shr ecx, 0x1f
add ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x34]
imul eax, edi
cmovo eax, ecx
mov ecx, dword [esp + 0x2c]
imul eax, ebp
mov ebp, edi
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x54]
mov edi, ebx
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x18]
jmp 0x4c8411
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ebp
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x2c], edx
test eax, eax
mov dword [esp + 0x18], ecx
je 0x4c86fc
cmp eax, 0x61c
je 0x4c86ed
cmp eax, 0xf9f
mov dword [esp + 0x18], eax
jne 0x4c86fc
mov edx, dword [esp + 0x50]
mov ecx, 0xf9f
call fcn.004015c4
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xc]
jmp 0x4c86f8
mov eax, 0x61c
mov ecx, dword [esp + 0x50]
shl eax, cl
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
neg eax
jo 0x4c8754
cmp ecx, 0x800004d5
je 0x4c872e
cmp ecx, 0x8000073a
je 0x4c8738
cmp ecx, 0x800008a9
jne 0x4c8761
add esp, 0x55a
mov dword [esp + 0x10], 0x800008a9
jmp 0x4c8761
mov eax, 0x800004d5
sub eax, dword [esp]
jmp 0x4c875d
mov ecx, 0x8000073a
xor eax, eax
cmp ecx, esi
setns al
add eax, 0x7fffffff
sub ecx, esi
cmovo ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4c8761
mov eax, dword [esp + 0x50]
add eax, 0x80000000
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4c879e
cmp eax, 0x2d3
je 0x4c8786
mov ecx, esi
cmp eax, 0x6d9
jne 0x4c87bb
mov eax, 0x6d9
mov ecx, dword [esp + 0x18]
shr eax, cl
jmp 0x4c87b9
mov edx, dword [esp + 0x3c]
mov ecx, 0x2d3
call fcn.004015c4
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
jmp 0x4c87bb
mov eax, dword [esp + 0x30]
mov ecx, eax
neg ecx
mov ecx, 0
setns cl
add ecx, 0x7fffffff
neg eax
cmovo eax, ecx
mov ecx, esi
cmp ebp, 0x80000e71
je 0x4c87d8
cmp ebp, 0x80000ffa
jne 0x4c87dd
add esp, 0xf74
mov ebp, 0x80000ffa
jmp 0x4c87dd
mov ebp, 0x710e0080
cmp ecx, 0x1e7
mov dword [esp + 0x34], eax
je 0x4c8818
cmp ecx, 0x467
je 0x4c8805
cmp ecx, 0x895
jne 0x4c8825
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x895]
jmp 0x4c8825
mov eax, dword [esp + 0x20]
mov ecx, 0x7fffffff
add eax, 0x467
cmovno ecx, eax
jmp 0x4c8825
mov eax, 0x1e7
mov ecx, dword [esp + 0x14]
shl eax, cl
mov ecx, eax
mov esi, dword [esp + 0x28]
mov edi, dword [esp]
mov eax, 0x80000f30
mov dword [esp + 0xc], ecx
add esi, eax
cmp edi, eax
cmovne esi, edi
cmp ebx, 0x175
mov dword [esp], esi
jne 0x4c885b
mov edx, dword [esp + 8]
mov ecx, 0x175
call fcn.004015c4
mov edx, dword [esp + 0x2c]
mov ebx, eax
mov ecx, dword [esp + 8]
mov eax, 0xa00000
cmp ecx, 0x500
cmovne eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0xabc
je 0x4c889c
cmp eax, 0xaff
jne 0x4c88a6
mov eax, ebx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ebx, 0xaff
cmovo ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x4c88a6
add ebp, 0xabc
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x20]
cmp eax, 0x29
je 0x4c88fd
mov ebp, dword [esp + 4]
cmp eax, 0x651
je 0x4c88d9
mov ecx, dword [esp + 0xc]
cmp eax, 0xc24
je 0x4c88ed
cmp eax, 0xca4
jne 0x4c8912
mov eax, 0xca4
mov ecx, dword [esp + 0x34]
shl eax, cl
jmp 0x4c890a
add esp, 0x4c5
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], 0x651
jmp 0x4c8912
add esp, 0xb7a
mov dword [esp + 0x20], 0xc24
jmp 0x4c8912
push 0x29
pop eax
mov ecx, dword [esp + 0x50]
shr eax, cl
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
cmp edx, 0xcf9
jne 0x4c8920
sub esp, 0xc61
cmp ebp, 0x83b90cd4
je 0x4c8969
cmp ebp, 0x83b91c07
je 0x4c8955
cmp ebp, 0x83b91a13
je 0x4c895c
cmp ebp, 0x83b919a1
jne 0x4c8970
mov eax, edx
sar eax, 0x1f
add eax, 0x80000000
imul ebp, edx, 0x83b919a1
cmovo ebp, eax
jmp 0x4c8970
mov ebp, 0x71cb983
jmp 0x4c8970
sub esp, 0x1398
mov ebp, 0x83b91a13
jmp 0x4c8970
mov ebp, 0x83b90cd4
sar ebp, cl
mov eax, dword [esp + 0x40]
mov dword [esp + 4], ebp
cmp eax, 0xdaf
je 0x4c89ab
mov edx, dword [esp + 0x14]
cmp eax, 0xdbd
je 0x4c89b8
cmp eax, 0x7fffffff
je 0x4c89a0
cmp eax, 0x16f
jne 0x4c89c7
add esp, 0xfa9
ud2
mov eax, dword [esp + 0x28]
add eax, 0x7fffffff
jmp 0x4c89c3
mov edx, dword [esp + 0x14]
mov eax, 0xdaf
sub eax, ebx
jmp 0x4c89c3
mov eax, 0xdbd
mov ecx, dword [esp + 0xc]
shr eax, cl
mov dword [esp + 0x40], eax
mov eax, edx
neg eax
jo 0x4c89e2
cmp edx, 0x80000d5e
jne 0x4c89eb
mov eax, dword [esp + 0x30]
add eax, 0x80000d5e
mov edx, eax
jmp 0x4c89eb
mov edx, 0x80000000
sub edx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
mov eax, 0xac1
mov edi, 0xac1
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], edx
shl edi, cl
cmp esi, eax
mov eax, dword [esp + 0x24]
cmovne edi, esi
mov dword [esp + 0x54], edi
cmp eax, 0x36a
je 0x4c8a66
mov edi, dword [esp]
cmp eax, 0xa4b
je 0x4c8a3f
cmp eax, 0xb37
je 0x4c8a4c
cmp eax, 0x7fffffff
jne 0x4c8a6e
mov edx, dword [esp + 0x50]
mov ecx, 0x7fffffff
call fcn.004015c4
jmp 0x4c8a6e
mov eax, 0xa4b
sub esp, 0xda2
jmp 0x4c8a6e
mov eax, dword [esp + 0x54]
mov ecx, eax
shr ecx, 0x1f
add ecx, 0x7fffffff
imul eax, eax, 0xb37
cmovo eax, ecx
jmp 0x4c8a6e
mov edi, dword [esp]
mov eax, 0x56c00000
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov esi, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], esi
mov eax, edx
shl ecx, 0x1f
neg eax
cmovno ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x48]
cmp ecx, 0x979
je 0x4c8ab5
mov eax, dword [esp + 4]
cmp ecx, 0xe14
jne 0x4c8ac1
mov edx, 0xe14
mov ecx, dword [esp + 0x34]
shl edx, cl
mov ecx, edx
jmp 0x4c8ac1
imul ecx, dword [esp + 0x44], 0x979
mov eax, dword [esp + 4]
mov dword [esp + 0x38], 0x1ad
mov dword [esp + 0x18], 0xfd8
push 0x18
pop edx
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x48], 0xcc0
mov dword [esp + 8], 0x9e0
mov dword [esp + 0x50], 0x1e3b
mov dword [esp + 0x30], 0xa86
mov ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x20], ecx
mov dword [esp], ebx
sub eax, 1
jb 0x4c8db1
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, 0xfffff166
mov edi, dword [esp + 0x38]
mov dword [esp + 0x5c], edx
add esi, eax
mov eax, dword [esp + 0x44]
mov edx, edi
mov dword [esp + 0x38], edi
mov ecx, eax
sar esi, cl
mov ecx, esi
xor ecx, edi
mov edi, 0x7fffffff
shr ecx, 0x1f
add ecx, edi
imul esi, edx
mov edi, dword [esp + 0x28]
mov edx, 0x80000000
cmovo esi, ecx
lea ecx, [ebp + esi]
mov dword [esp + 0x1c], esi
sar ecx, 0x1f
xor ecx, edx
add ebp, esi
cmovo ebp, ecx
lea ecx, [ebx + edi]
sar ecx, 0x1f
mov dword [esp + 0x34], ebp
xor ecx, edx
add ebx, edi
mov edx, 0xf0f0f0f
cmovo ebx, ecx
mov ecx, dword [esp + 0x5c]
shl eax, cl
bswap eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x38]
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
mov edx, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, 0x7fffffff
lea edi, [eax + ecx*2]
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp edi, ecx
setns al
add eax, edx
mov edx, dword [esp + 0x10]
sub edi, ecx
mov ecx, dword [esp + 0x48]
cmovo edi, eax
shl edx, cl
mov ecx, 0x80000000
lea eax, [edx + ebx]
sar eax, 0x1f
xor eax, ecx
add edx, ebx
mov ecx, 0xf0f0f0f
cmovo edx, eax
bswap edx
mov eax, edx
and edx, ecx
shr eax, 4
shl edx, 4
and eax, ecx
mov ecx, 0x33333333
or edx, eax
mov eax, edx
shr edx, 2
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 0xc]
lea eax, [edx + eax*4]
mov edx, eax
shr eax, 1
add ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov ecx, 0x55555555
and edx, ecx
and eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
sub edi, dword [esp + 0xc]
lea ebp, [eax + edx*2]
mov eax, 0xfffff166
mov edx, dword [esp + 8]
sub ebp, dword [esp + 0x18]
add dword [esp + 4], eax
mov eax, 0xe9a
shl ebx, cl
mov dword [esp + 0x44], edi
mov edi, 0x7fffffff
sub ebx, dword [esp + 0x40]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x54]
mov ecx, ebx
shl dword [esp + 0x34], cl
mov ecx, dword [esp + 0x14]
add ecx, eax
cmovo ecx, edi
call fcn.004015c4
mov esi, eax
mov eax, 0xe9a
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x3c], 0xe9a
imul esi, ebp
mov ebp, dword [esp + 0x18]
add esi, eax
cmovo esi, edi
shl ebx, cl
mov ecx, ebx
mov edx, ebp
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov edi, 0x33333333
mov dword [esp + 0x14], esi
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
mov edx, dword [esp + 0x24]
lea ebx, [eax + ecx*4]
mov eax, 0xf0f0f0f
bswap edx
mov ecx, edx
and edx, eax
shr ecx, 4
shl edx, 4
and ecx, eax
mov eax, 0x55555555
or edx, ecx
mov ecx, edx
shr edx, 2
and ecx, edi
and edx, edi
mov edi, dword [esp + 0x20]
lea ecx, [edx + ecx*4]
mov edx, ecx
shr ecx, 1
and edx, eax
and ecx, eax
lea ecx, [ecx + edx*2]
sub edi, ebp
mov edx, ebx
shr ebx, 1
sub ecx, esi
mov esi, dword [esp]
and edx, eax
and ebx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], edx
mov edx, 0x7fffffff
mov ecx, esi
shl edi, cl
mov ecx, dword [esp + 0x10]
mov ebp, ecx
sar edi, cl
xor ebp, eax
shr ebp, 0x1f
add ebp, edx
imul eax, ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
cmovo eax, ebp
sar eax, cl
mov ecx, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
bswap ecx
lea eax, [ebx + eax*2]
mov ebx, 0x7fffffff
mov dword [esp + 0x54], eax
mov eax, dword [esp + 8]
bswap eax
mov dword [esp + 8], eax
mov eax, edx
xor eax, edi
shr eax, 0x1f
add eax, ebx
imul edi, edx
mov edx, dword [esp + 0x2c]
cmovo edi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x48], edx
push 0x1a
pop edx
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x18], ebp
jmp 0x4c8afc
mov eax, dword [esp + 0x28]
mov ebx, ebp
test eax, eax
je 0x4c8e08
cmp eax, 0xb2
je 0x4c8df4
cmp eax, 0x2e2
je 0x4c8dfe
cmp eax, 0xa1a
mov dword [esp + 0x64], eax
jne 0x4c8e10
mov ecx, dword [esp + 0x18]
mov edx, 0xa1a
xor eax, eax
cmp edx, ecx
setns al
add eax, 0x7fffffff
sub edx, ecx
cmovo edx, eax
mov dword [esp + 0x64], edx
jmp 0x4c8e10
mov dword [esp + 0x64], 0xa2714
jmp 0x4c8e10
mov dword [esp + 0x64], 0xe2020000
jmp 0x4c8e10
mov dword [esp + 0x64], 0xe9a
mov edx, dword [esp + 0x10]
mov ebp, 0x7f6
mov eax, 0x7f6
mov ecx, dword [esp + 0x30]
shr ebp, cl
cmp edx, eax
mov eax, dword [esp + 0xc]
cmovne ebp, edx
mov edx, esi
cmp eax, 0x81b95e3f
je 0x4c8e47
cmp eax, 0x81b95ae2
jne 0x4c8e53
mov dword [esp + 0xc], 0x80000000
jmp 0x4c8e53
imul eax, dword [esp + 0x18], 0x81b95e3f
mov dword [esp + 0xc], eax
imul eax, dword [esp], 0x95f
mov esi, dword [esp + 0x1c]
cmp edi, 0x95f
mov ecx, dword [esp + 0x54]
cmovne eax, edi
mov edi, 0x804
mov dword [esp + 0x4c], eax
mov eax, 0x804
shl edi, cl
cmp esi, eax
mov eax, dword [esp + 0x44]
cmovne edi, esi
mov esi, ebx
cmp eax, 0xfe46a690
je 0x4c8eaf
cmp eax, 0xfe46abd6
je 0x4c8ea7
mov ecx, dword [esp + 0x18]
cmp eax, 0xfe46b372
jne 0x4c8eb9
add esp, 0xcf5
ud2
add esp, 0x1182
jmp 0x4c8eb5
sub esp, 0x603
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov ebx, 0x81ffb1f0
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xe9a
cmovo ecx, eax
mov eax, 0x81ffb1f0
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
shl ebx, cl
mov ecx, dword [esp + 0x2c]
cmp edx, eax
mov eax, 0x80000000
cmovne ebx, edx
mov dword [esp + 0x34], ebx
cmp ecx, 1
cmovne eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp]
cmp eax, 0x81ffad73
je 0x4c8f37
cmp eax, 0x81ffad15
je 0x4c8f30
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
cmp eax, 0x81ffa356
jne 0x4c8f4a
mov ecx, 0x81ffa356
call fcn.004015c4
mov ecx, dword [esp + 0x2c]
jmp 0x4c8f4a
mov eax, 0x15adff81
jmp 0x4c8f42
mov eax, 0x81ffad73
mov ecx, dword [esp + 0x18]
shl eax, cl
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
cmp esi, 0x227
je 0x4d2e52
cmp ebx, 0x636
mov dword [esp], eax
je 0x4c8f72
mov esi, ecx
cmp ebx, 0x1b5
jne 0x4c8f7b
mov ebx, 0xfffff31b
jmp 0x4c8f7b
mov ebx, 0x636
mov esi, ecx
shr ebx, cl
mov edx, 0xef1
mov ecx, dword [esp + 0x44]
mov eax, 0xef1
shr edx, cl
mov ecx, dword [esp + 0x54]
cmp ecx, eax
mov eax, dword [esp + 0x24]
cmovne edx, ecx
mov dword [esp + 0x74], edx
cmp eax, 0x54d
je 0x4c8fda
mov ecx, dword [esp + 0x20]
cmp eax, 0xa5a
je 0x4c8fc6
cmp eax, 0xbba
je 0x4c8fd0
cmp eax, 0xf22
jne 0x4c8fe6
mov dword [esp + 0x24], 0xdcf674
jmp 0x4c8fe6
mov dword [esp + 0x24], 0x5a500000
jmp 0x4c8fe6
mov dword [esp + 0x24], 0xfffffd20
jmp 0x4c8fe6
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], 0x4d050000
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4c902b
cmp eax, 0x586
je 0x4c9013
cmp eax, 0x645
je 0x4c9021
cmp eax, 0xa98
jne 0x4c9033
sub esp, 0xfd5
mov dword [esp + 0x28], 0xa98
jmp 0x4c9033
imul eax, dword [esp + 8], 0x586
mov dword [esp + 0x28], eax
jmp 0x4c9033
mov dword [esp + 0x28], 0xfffff7ab
jmp 0x4c9033
mov dword [esp + 0x28], 0xe9a
cmp ecx, 0xc78
jne 0x4c9041
add esp, 0x6ce
mov ecx, dword [esp + 0x38]
mov eax, 0x62060000
mov dword [esp + 0x84], edi
cmp ecx, 0x662
cmovne eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
cmp eax, 0xa0e
jne 0x4c907b
mov edx, dword [esp + 0x74]
mov ecx, 0xa0e
call fcn.004015c4
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], eax
imul eax, dword [esp + 0x44], 0xf
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], ebx
cmp ecx, 0xf
cmovne eax, ecx
cmp edi, 0xe0090e25
mov dword [esp + 0x94], eax
je 0x4c90bd
cmp edi, 0xe0090000
mov ecx, edi
jne 0x4c90d0
imul ecx, dword [esp + 0x34], 0xe0090000
jmp 0x4c90d0
mov eax, esi
sar eax, 0x1f
add eax, 0x80000000
imul ecx, esi, 0xe0090e25
cmovo ecx, eax
mov edx, dword [esp + 0x14]
mov dword [esp + 8], ecx
imul eax, ecx, 0xfb0
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x40]
mov edi, dword [esp]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x68], 0xe9a
mov dword [esp + 0x7c], 0x432
mov dword [esp + 0x5c], 0x1aa
mov dword [esp + 0x48], 0xcf5
mov dword [esp + 0x38], 0xe9a
mov dword [esp + 0x30], 0xe9a
add edx, 0xe9a
cmp ecx, 0xfb0
cmovne eax, ecx
mov ebp, edx
mov ecx, 0xae2
mov edx, 0x2ed7
mov dword [esp + 4], eax
mov eax, 0xe9a
sub edx, 1
mov dword [esp + 0x20], edi
mov dword [esp], ecx
jb 0x4c9532
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov edx, ecx
mov eax, 0x80000000
mov edi, dword [esp + 0x38]
sar ebx, cl
imul ebx, esi
lea ecx, [esi + ebx]
sar ecx, 0x1f
xor ecx, eax
mov eax, esi
mov esi, 0xf0f0f0f
add eax, ebx
cmovo eax, ecx
bswap eax
mov ecx, eax
and eax, esi
shr ecx, 4
shl eax, 4
and ecx, esi
mov esi, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, esi
and eax, esi
mov esi, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, esi
and eax, esi
mov esi, 0x7fffffff
lea ecx, [eax + ecx*2]
xor eax, eax
cmp edi, ecx
mov dword [esp + 0x40], ecx
setns al
add eax, esi
mov esi, dword [esp + 0xc]
sub edi, ecx
mov ecx, ebp
cmovo edi, eax
mov dword [esp + 0x38], edi
mov edi, 0x80000000
lea eax, [ebp + esi]
mov ebp, dword [esp + 4]
sar eax, 0x1f
xor eax, edi
add ecx, esi
mov esi, 0xf0f0f0f
cmovo ecx, eax
bswap ecx
mov eax, ecx
and ecx, esi
shr eax, 4
shl ecx, 4
and eax, esi
mov esi, 0x33333333
or ecx, eax
mov eax, ecx
shr ecx, 2
and eax, esi
and ecx, esi
mov esi, 0x55555555
lea eax, [ecx + eax*4]
mov ecx, eax
shr eax, 1
and ecx, esi
and eax, esi
mov esi, dword [esp + 0x58]
lea ecx, [eax + ecx*2]
add ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
shl esi, cl
mov ecx, dword [esp + 0x74]
lea eax, [esi + edx]
sar eax, 0x1f
xor eax, edi
add esi, edx
mov edi, 0x7fffffff
mov edx, 0x80000000
cmovo esi, eax
xor eax, eax
cmp esi, ebp
setns al
add eax, edi
sub esi, ebp
cmovo esi, eax
mov eax, dword [esp]
add eax, ecx
sar eax, 0x1f
xor eax, edx
add ecx, dword [esp]
mov edx, dword [esp + 0x28]
cmovo ecx, eax
xor eax, eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x4c]
cmp ecx, edx
setns al
add eax, edi
sub ecx, edx
mov edi, dword [esp + 0x3c]
mov edx, 0x80000000
cmovo ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
lea eax, [edi + ecx]
sar eax, 0x1f
xor eax, edx
add edi, ecx
mov ecx, dword [esp + 0x48]
cmovo edi, eax
sar edi, cl
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x84]
mov edx, edi
call fcn.004015c4
mov ecx, eax
mov edx, 0xf0f0f0f
shr ecx, 4
and eax, edx
and ecx, edx
shl eax, 4
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
mov edx, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, ebx
lea ecx, [eax + ecx*2]
call fcn.004015c4
mov edx, dword [esp]
mov ecx, edi
mov dword [esp + 0xc], eax
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov dword [esp + 0x30], ebx
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
mov edx, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, dword [esp + 0x28]
lea ecx, [eax + ecx*2]
add ecx, ebx
call fcn.004015c4
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], eax
mov edx, ebx
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov edi, dword [esp + 0x2c]
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
bswap edi
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
lea eax, [eax + ecx*4]
mov ecx, 0x55555555
mov edx, eax
shr eax, 1
and edx, ecx
and eax, ecx
mov ecx, dword [esp + 0x48]
sar edi, cl
lea eax, [eax + edx*2]
mov edx, dword [esp]
mov ecx, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
call fcn.004015c4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov ecx, ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp]
shl eax, cl
add edi, dword [esp + 0x74]
mov ecx, eax
mov dword [esp + 0x50], eax
shl esi, cl
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x68]
mov edx, esi
call fcn.004015c4
mov ecx, dword [esp + 8]
imul eax, edi
mov edx, edi
bswap ebp
mov dword [esp + 0x38], eax
mov eax, edi
mov dword [esp + 0x24], edx
add ecx, esi
mov esi, dword [esp + 0x18]
xor eax, ecx
shr eax, 0x1f
bswap esi
imul esi, edi
mov edi, 0x7fffffff
add eax, edi
imul ecx, edx
mov edx, dword [esp + 0x5c]
mov edi, 0xf0f0f0f
bswap esi
cmovo ecx, eax
mov eax, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x68], ecx
mov ecx, 0xf0f0f0f
shr eax, 4
and ebp, ecx
and eax, ecx
mov ecx, 0x33333333
shl ebp, 4
bswap edx
or ebp, eax
mov eax, ebp
shr ebp, 2
and eax, ecx
and ebp, ecx
mov ecx, edx
and edx, edi
shr ecx, 4
shl edx, 4
lea eax, [ebp + eax*4]
mov ebp, dword [esp + 0x7c]
and ecx, edi
mov edi, 0x33333333
mov dword [esp + 8], eax
mov eax, ebx
or edx, ecx
mov ecx, edx
shr edx, 2
and ecx, edi
and edx, edi
add ebp, eax
lea edi, [edx + ecx*4]
mov edx, ebx
mov ebx, dword [esp + 0x40]
mov ecx, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp]
sar edx, cl
mov ecx, dword [esp + 0x68]
shl edx, cl
mov ecx, eax
mov eax, 0x55555555
sar ebp, cl
mov ecx, edi
shr edi, 1
and ecx, eax
and edi, eax
mov eax, 0xf0f0f0f
mov dword [esp + 0x7c], ebp
lea edi, [edi + ecx*2]
mov ecx, dword [esp + 0x68]
shl edi, cl
mov ecx, edx
and edx, eax
shr ecx, 4
shl edx, 4
mov dword [esp + 0x5c], edi
mov edi, 0x55555555
and ecx, eax
mov eax, 0x33333333
or edx, ecx
mov ecx, edx
shr edx, 2
and ecx, eax
and edx, eax
mov eax, dword [esp + 8]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x4c]
lea ecx, [edx + ecx*4]
mov edx, ecx
shr ecx, 1
and edx, edi
and ecx, edi
lea ecx, [ecx + edx*2]
mov edx, eax
shr eax, 1
and eax, edi
and edx, edi
mov edi, eax
mov eax, dword [esp + 0x48]
bswap eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
lea eax, [edi + edx*2]
mov edx, dword [esp + 0x14]
mov edi, ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov ebp, eax
jmp 0x4c9141
cmp ebx, 0xf
mov dword [esp + 0x40], esi
je 0x4c9564
cmp ebx, 0x4a7
mov edx, ebp
je 0x4c9575
mov edi, ebx
cmp ebx, 0x4b
je 0x4d2f4a
cmp edi, 0xc9f
mov dword [esp + 0x64], edi
jne 0x4c9584
sub esp, 0x1310
ud2
push 0xf
pop esi
mov ecx, dword [esp + 0x34]
shr esi, cl
mov edx, ebp
mov dword [esp + 0x64], esi
jmp 0x4c9584
mov ecx, edx
mov edx, 0x4a7
shl edx, cl
mov dword [esp + 0x64], edx
mov edx, ecx
mov edi, dword [esp + 0x84]
cmp edx, 0xaeac2753
mov esi, eax
je 0x4c95ea
cmp edx, 0xaeac2e91
je 0x4c95c7
cmp edx, 0xaeac3120
mov eax, edx
mov edx, dword [esp + 0xc]
mov ebp, dword [esp + 0x94]
je 0x4c95d1
cmp eax, 0xaeac328c
mov dword [esp + 0x14], eax
jne 0x4c9607
mov dword [esp + 0x14], 0x314c3575
jmp 0x4c9607
mov dword [esp + 0x14], 0x912eacae
jmp 0x4c95fc
mov eax, edx
sar eax, 0x1f
add eax, 0x80000000
imul ecx, edx, 0xaeac3120
cmovo ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x4c9607
mov edx, dword [esp + 0x58]
mov ecx, 0xaeac2753
call fcn.004015c4
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xc]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x3c]
cmp eax, 0x718
je 0x4c963d
cmp eax, 0x9f4
je 0x4c962c
mov ecx, dword [esp + 0x58]
cmp eax, 0xe72
jne 0x4c965f
add esp, 0x997
ud2
mov eax, ebp
mov ecx, 0x7fffffff
add eax, 0x9f4
cmovno ecx, eax
jmp 0x4c9657
mov ebx, dword [esp + 0x30]
mov ecx, 0x718
xor eax, eax
cmp ecx, ebx
setns al
add eax, 0x7fffffff
sub ecx, ebx
cmovo ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
cmp esi, 0xaeac3346
je 0x4c96a0
cmp esi, 0xaeac3586
je 0x4c9683
cmp esi, 0xaeac3683
jne 0x4c96af
mov eax, dword [esp + 8]
lea esi, [eax - 0x5153c97d]
jmp 0x4c96af
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sar eax, 0x1f
add eax, 0x80000000
imul esi, ecx, 0xaeac3586
mov ecx, dword [esp + 0x58]
cmovo esi, eax
jmp 0x4c96af
mov esi, 0xaeac3346
mov ecx, dword [esp + 0x58]
shl esi, cl
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
mov esi, pe_nt_image_headers32
mov eax, ebx
neg eax
cmovno esi, ebx
cmp edx, 0x211
je 0x4c96e3
mov eax, dword [esp + 0x4c]
cmp edx, 0x252
jne 0x4c96ec
mov eax, dword [esp + 0x44]
lea edx, [eax + 0x252]
jmp 0x4c96e8
mov edx, 0x88400000
mov eax, dword [esp + 0x4c]
cmp eax, 0x536
je 0x4c9714
cmp eax, 0x7fffffff
je 0x4c971b
cmp eax, 0x125
je 0x4d2f52
cmp eax, 0x611
jne 0x4c9722
sub esp, 0x10f1
ud2
mov eax, 0x6ca00000
jmp 0x4c9722
mov eax, ecx
xor eax, 0x7fffffff
test edi, edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0xc], edx
je 0x4c977e
cmp edi, 0x9b2
je 0x4c9766
mov edx, dword [esp + 0x7c]
cmp edi, 0xb10
je 0x4c9771
cmp edi, 0xfa4
jne 0x4c978b
mov ecx, dword [esp + 0x3c]
mov edi, 0xfa4
xor eax, eax
cmp edi, ecx
setns al
add eax, 0x7fffffff
sub edi, ecx
cmovo edi, eax
jmp 0x4c978b
mov edx, dword [esp + 0x7c]
mov edi, 0x4d900000
jmp 0x4c978b
sub esp, 0x760
mov edi, 0xb10
jmp 0x4c978b
xor ecx, ecx
call fcn.004015c4
mov edx, dword [esp + 0x7c]
mov edi, eax
mov eax, dword [esp + 0x44]
cmp eax, 0xa0
je 0x4c97c7
cmp eax, 0xaff
je 0x4c97b3
cmp eax, 0xda4
mov eax, dword [esp + 0x34]
jne 0x4c97e0
mov ecx, 0xda4
sub ecx, dword [esp + 0x4c]
jmp 0x4c97dc
sub esp, 0xa83
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], 0xaff
jmp 0x4c97e0
mov eax, dword [esp + 0x1c]
mov ecx, 0x7fffffff
add eax, 0xa0
cmovno ecx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], edi
test ecx, ecx
cmove ecx, dword [esp + 0x3c]
cmp eax, 0x464
mov dword [esp + 0x10], ecx
je 0x4c9810
cmp eax, 0x17c
mov eax, dword [esp + 4]
jne 0x4c9832
sub esp, 0xd82
ud2
mov edi, dword [esp + 0x58]
mov ecx, 0x464
xor eax, eax
cmp ecx, edi
setns al
add eax, 0x7fffffff
sub ecx, edi
cmovo ecx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
je 0x4c986b
cmp ecx, 5
je 0x4c9885
cmp ecx, 0xb
je 0x4c9852
cmp ecx, 8
jne 0x4c988c
sub esp, 0x703
ud2
push 0xb
pop eax
mov edi, esi
mov esi, eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
shl esi, cl
mov dword [esp + 0x2c], esi
mov esi, edi
jmp 0x4c988c
xor ecx, ecx
xor eax, eax
inc ecx
cmp ecx, ebp
setns al
add eax, 0x7fffffff
sub ecx, ebp
cmovo ecx, eax
mov eax, dword [esp + 4]
jmp 0x4c9888
lea ecx, [eax + 5]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
cmp ecx, 0x51e
je 0x4c98c4
cmp ecx, 0xc28
jne 0x4c98d2
mov edi, dword [esp + 0xc]
mov ecx, 0xc28
xor eax, eax
cmp ecx, edi
setns al
add eax, 0x7fffffff
sub ecx, edi
cmovo ecx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x20], ecx
jmp 0x4c98d2
sub esp, 0xaa3
mov dword [esp + 0x20], 0x51e
mov ecx, dword [esp + 0x40]
cmp ecx, 0x52
je 0x4c990a
cmp ecx, 0x25b
je 0x4c98fc
cmp ecx, 0x7fffffff
jne 0x4c9912
mov edi, 0x7fffffff
mov ecx, dword [esp + 0x18]
shl edi, cl
mov dword [esp + 0x40], edi
jmp 0x4c9912
imul ecx, dword [esp + 0x18], 0x25b
mov dword [esp + 0x40], ecx
jmp 0x4c9912
mov dword [esp + 0x40], 0x52000000
mov ecx, dword [esp + 0x50]
cmp ecx, 0xec
je 0x4c9931
cmp ecx, 0x38f
jne 0x4c993c
add eax, 0x38f
mov dword [esp + 0x50], eax
jmp 0x4c993c
mov ecx, 0xec
sub ecx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x74]
cmp eax, 0xae2
je 0x4c9956
cmp eax, 0xaa4
jne 0x4c9965
add esp, 0xcfd
ud2
mov eax, 0xae2
mov ecx, dword [esp + 0x48]
shl eax, cl
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x2a2
je 0x4c9994
cmp eax, 0x3e1a0c82
jne 0x4c999c
mov ecx, dword [esp + 0x48]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x3e1a0c82
cmovo ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4c999c
mov dword [esp + 0x24], 0x45400000
mov ecx, dword [esp + 0x28]
cmp ecx, 1
je 0x4c9a08
mov eax, dword [esp + 0x18]
cmp ecx, 4
je 0x4c99f0
mov ebp, dword [esp + 0x58]
cmp ecx, 0xb
je 0x4c99fe
cmp ecx, 0x10
jne 0x4c9a1d
mov edi, esi
mov esi, dword [esp + 0x1c]
mov ebp, esi
mov ecx, esi
lea eax, [esi - 0x8000000]
mov esi, edi
shr ebp, 0x1f
shl ecx, 4
add ebp, 0x7fffffff
cmp eax, 0xf0000000
mov eax, dword [esp + 0x18]
cmovae ebp, ecx
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x58]
jmp 0x4c9a1d
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x28], 0x20000000
jmp 0x4c9a1d
mov dword [esp + 0x28], 0xb000000
jmp 0x4c9a1d
xor eax, eax
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x58]
inc eax
shl eax, cl
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x94]
cmp esi, 1
je 0x4c9a61
cmp esi, 4
jne 0x4c9a63
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x58]
lea eax, [esi - 0x20000000]
lea ecx, [esi*4]
shr esi, 0x1f
add esi, 0x7fffffff
cmp eax, 0xc0000000
mov eax, dword [esp + 0x18]
cmovae esi, ecx
jmp 0x4c9a63
xor esi, esi
cmp ebp, 0x80100001
je 0x4c9aa5
cmp ebp, 0x8010036d
je 0x4c9a90
cmp ebp, 0x801005db
je 0x4c9a9d
cmp ebp, 0x801008f7
jne 0x4c9abf
add esp, 0x7a4
mov ebp, 0x801008f7
jmp 0x4c9abf
mov ebp, 0x8010036d
mov ecx, dword [esp + 0x14]
shl ebp, cl
jmp 0x4c9abf
lea ebp, [eax - 0x7feffa25]
jmp 0x4c9abf
mov ecx, dword [esp + 0x3c]
mov ebp, 0x80100001
xor eax, eax
cmp ebp, ecx
setns al
add eax, 0x7fffffff
sub ebp, ecx
cmovo ebp, eax
mov ebx, dword [esp + 0x38]
mov eax, 0x3e1a0c82
mov edi, 0x3e1a0c82
mov ecx, edx
mov dword [esp + 0x58], ebp
shl edi, cl
cmp ebx, eax
cmovne edi, ebx
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4c9b0c
mov ebp, esi
cmp edi, 0x895
jne 0x4c9b29
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edi, ecx, 0x895
cmovo edi, eax
jmp 0x4c9b29
mov edi, dword [esp + 0x1c]
xor eax, eax
mov ebp, esi
mov ecx, edi
neg ecx
mov ecx, edi
setns al
add eax, 0x7fffffff
neg ecx
cmovo ecx, eax
mov edi, ecx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x18], edi
mov eax, ebx
neg eax
jo 0x4c9b69
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 8]
cmp ebx, 0x80000114
mov esi, edx
je 0x4c9b62
cmp ebx, 0x80000b7b
jne 0x4c9b7c
add esp, 0x613
mov ebx, 0x80000b7b
jmp 0x4c9b7c
mov ebx, 0x28800001
jmp 0x4c9b7c
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 8]
mov esi, edx
mov ebx, pe_nt_image_headers32
mov edx, dword [esp + 0x94]
cmp edx, 1
je 0x4c9ba0
cmp edx, 0x10
jne 0x4c9bb8
mov ecx, dword [esp + 0x24]
push 0x10
pop edx
shl edx, cl
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x7c]
jmp 0x4c9bb1
mov eax, dword [esp + 0x50]
mov edx, 0x7fffffff
inc eax
cmovno edx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x94], edx
test edi, edi
je 0x4c9bf8
cmp edi, 0x356
je 0x4c9bdb
cmp edi, 0x393
je 0x4c9be8
cmp edi, 0x4e3
jne 0x4c9bfe
mov edi, 0xc7200000
jmp 0x4c9bfe
sub esp, 0x8c4
mov edi, 0x356
jmp 0x4c9bfe
mov ecx, dword [esp + 0x20]
lea edi, [ecx + 0x393]
mov ecx, dword [esp + 0x5c]
jmp 0x4c9bfe
mov edi, dword [esp + 0x40]
neg edi
cmp eax, 6
jne 0x4c9c09
add esp, 0x4ea
cmp dword [esp], 0x795
jne 0x4c9c18
sub esp, 0x539
cmp esi, 0x3c5
mov dword [esp + 0x68], ebx
mov dword [esp + 8], edi
je 0x4c9c3c
mov edx, dword [esp + 0x14]
cmp esi, 0x338
jne 0x4c9c51
sub esp, 0x6b3
ud2
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x14]
add edi, 0x3c5
mov dword [esp + 0x7c], edi
cmp ecx, 0x165
mov dword [esp + 0x8c], ebp
je 0x4c9c8e
cmp ecx, 0x449
je 0x4c9c7c
mov edi, dword [esp + 0x48]
cmp ecx, 0x1a8
jne 0x4c9c9f
sub esp, 0x11cb
ud2
mov eax, dword [esp + 0x8c]
add eax, 0x449
mov dword [esp + 0x5c], eax
jmp 0x4c9c9b
mov esi, 0x165
mov ecx, eax
shr esi, cl
mov dword [esp + 0x5c], esi
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x98]
cmp edi, 0xf50c0000
je 0x4c9ce8
cmp edi, 0xf50c04e6
je 0x4c9ccb
cmp edi, 0xf50c0a5d
jne 0x4c9d02
add esp, 0x1003
mov edi, 0xf50c0a5d
jmp 0x4c9d02
mov esi, dword [esp + 0x4c]
mov ecx, 0xf50c04e6
xor ebx, ebx
cmp ecx, esi
setns bl
add ebx, 0x7fffffff
sub ecx, esi
cmovo ecx, ebx
jmp 0x4c9d00
mov esi, dword [esp + 0x18]
sar esi, 0x1f
add esi, 0x80000000
imul ecx, dword [esp + 0x18], 0xf50c0000
cmovo ecx, esi
mov edi, ecx
mov dword [esp + 0x14], edx
mov ecx, dword [esp]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
mov esi, 0x71b
mov dword [esp + 0x48], edi
mov dword [esp + 0x90], 0x234
mov dword [esp + 0x88], 0x9bc
mov dword [esp + 0xa0], 0xf4e
mov dword [esp + 0x38], 0x660
mov dword [esp + 0x60], 0x343
mov dword [esp + 0x78], 0x22a3
mov dword [esp + 0x30], 0xbe1
mov dword [esp + 0x54], 0xac8
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x98], ebp
mov ebp, dword [esp + 0x90]
mov dword [esp], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], eax
sub edx, 1
mov dword [esp + 0xa4], ebp
jb 0x4ca133
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 8]
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov ebx, dword [esp + 0x94]
mov edi, 0x80000000
mov esi, ebp
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
mov edx, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, 0x7fffffff
lea ecx, [eax + ecx*2]
xor eax, eax
cmp ecx, ebx
setns al
add eax, edx
sub ecx, ebx
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
cmovo ecx, eax
mov dword [esp + 0xc], ecx
lea eax, [ebx + ecx]
sar eax, 0x1f
xor eax, edi
mov edi, ebx
mov ebx, 0x7fffffff
add edi, ecx
mov ecx, edx
cmovo edi, eax
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
sar edi, cl
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], edi
mov eax, ecx
sar eax, cl
mov ecx, edx
mov edx, dword [esp + 0x28]
sub esi, eax
mov dword [esp + 0x5c], eax
xor eax, eax
cmp esi, edi
setns al
add eax, ebx
sub esi, edi
mov ebp, edx
mov edi, dword [esp + 0x14]
cmovo esi, eax
xor eax, eax
cmp edx, ecx
setns al
add eax, ebx
sub ebp, ecx
mov ecx, dword [esp + 8]
mov ebx, edx
mov edx, 0xf0f0f0f
cmovo ebp, eax
sub edi, dword [esp + 0x3c]
mov eax, ecx
and ecx, edx
shr eax, 4
shl ecx, 4
mov dword [esp + 0x14], edi
and eax, edx
mov edx, 0x33333333
or ecx, eax
mov eax, ecx
shr ecx, 2
and eax, edx
and ecx, edx
mov edx, 0x55555555
lea eax, [ecx + eax*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, dword [esp + 0x2c]
lea ecx, [eax + ecx*2]
sub edx, ebx
mov dword [esp + 0x2c], edx
call fcn.004015c4
mov edx, dword [esp + 0x30]
mov ecx, ebp
mov dword [esp + 0x58], eax
call fcn.004015c4
mov ecx, dword [esp + 0x48]
mov edx, edi
mov dword [esp + 0x7c], eax
call fcn.004015c4
mov edx, dword [esp]
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004015c4
mov edx, dword [esp + 0x88]
mov ecx, eax
mov esi, 0x7fffffff
mov edi, 0x7fffffff
mov ebp, 0x7fffffff
xor eax, edx
shr eax, 0x1f
add eax, esi
imul ecx, edx
cmovo ecx, eax
xor eax, eax
imul edx, ecx
mov dword [esp + 0x90], ecx
shl edx, cl
mov ecx, dword [esp + 0x5c]
cmp edx, ecx
setns al
add eax, esi
sub edx, ecx
mov ecx, dword [esp + 0x38]
cmovo edx, eax
xor eax, eax
mov dword [esp + 0x88], edx
mov esi, ecx
sub esi, ebx
mov ebx, dword [esp + 0x94]
cmp esi, edx
setns al
add eax, edi
sub esi, edx
cmovo esi, eax
xor eax, eax
mov edx, ebx
mov dword [esp + 0x48], esi
mov esi, dword [esp + 8]
cmp ebx, esi
setns al
add eax, edi
sub edx, esi
mov esi, dword [esp + 0x44]
mov edi, 0x80000000
cmovo edx, eax
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x4c]
add edx, dword [esp + 0xa0]
lea eax, [edx + esi]
sar eax, 0x1f
xor eax, edi
add edx, esi
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
cmovo edx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x74]
add eax, ecx
mov ecx, edx
sar dword [esp + 0x3c], cl
mov ecx, ebx
mov ebx, dword [esp + 0x20]
shl dword [esp + 0x1c], cl
mov ecx, dword [esp + 4]
sar eax, cl
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x68]
mov dword [esp + 0x64], eax
mov eax, edi
xor eax, ecx
shr eax, 0x1f
add eax, ebp
imul edi, ecx
mov ebp, ecx
mov ecx, dword [esp + 0xc]
cmovo edi, eax
mov eax, dword [esp + 0x5c]
sar edx, cl
imul ebx, dword [esp + 0x50]
add esi, dword [esp + 0x8c]
imul edx, dword [esp + 0x24]
bswap edi
sub eax, ebp
mov ebp, 0xf0f0f0f
sub ebx, dword [esp + 0xa4]
mov dword [esp + 0x40], esi
add eax, dword [esp + 0x7c]
bswap edx
imul edx, esi
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x14]
add ebx, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp]
bswap eax
mov ecx, eax
and eax, ebp
shr ecx, 4
shl eax, 4
and ecx, ebp
mov ebp, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, ebp
and eax, ebp
mov ebp, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, ebp
and eax, ebp
mov ebp, dword [esp + 0x58]
lea ecx, [eax + ecx*2]
bswap ebp
call fcn.004015c4
mov esi, eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x20], ebx
sar esi, cl
mov ecx, ebx
shl esi, cl
mov ecx, dword [esp + 0x10]
shl dword [esp + 0x60], cl
mov ecx, dword [esp + 0x18]
call fcn.004015c4
sub eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x34], edi
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], ebp
imul eax, edi
mov dword [esp + 0x8c], ecx
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x80], edi
mov ebp, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x94], eax
mov eax, dword [esp]
mov dword [esp + 0x18], eax
mov eax, edi
jmp 0x4c9d67
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edx, 0x437
je 0x4ca19c
cmp edx, 0x833
mov ecx, edx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0xc]
je 0x4ca18b
cmp ecx, 0x3cb5b5f0
mov ecx, dword [esp + 0x18]
jne 0x4ca1b3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, 0x7fffffff
add eax, 0x3cb5b5f0
cmovno edx, eax
mov dword [esp + 0x64], edx
jmp 0x4ca1af
mov ecx, 0x833
sub ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x18]
jmp 0x4ca1b3
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x64], 0xec200000
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
cmp ebx, 0x24b
je 0x4ca1e0
cmp ebx, 0x777
je 0x4ca1d7
cmp ebx, 0xd7
jne 0x4ca1e9
add esp, 0x8e3
ud2
mov ebx, 0x777
shr ebx, cl
jmp 0x4ca1e9
mov ebx, 0x24b
mov ecx, eax
shl ebx, cl
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
test eax, eax
je 0x4ca228
cmp eax, 0x7c6
je 0x4ca20d
cmp eax, 0xd03
jne 0x4ca232
mov dword [esp + 0x3c], 0xc0b00000
jmp 0x4ca232
mov ebx, edx
mov edx, dword [esp + 0x10]
mov ecx, 0x7c6
call fcn.004015c4
mov ebp, dword [esp + 0xa4]
mov edx, ebx
jmp 0x4ca22e
mov eax, dword [esp + 0x18]
neg eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4ca264
cmp eax, 0x32c
je 0x4ca26c
cmp eax, 0x42f
je 0x4ca257
cmp eax, 0x27b
jne 0x4ca271
sub esp, 0x708
ud2
add esp, 0x6ff
mov eax, 0x42f
jmp 0x4ca271
mov eax, dword [esp + 0x10]
neg eax
jmp 0x4ca271
mov eax, 0x2c030000
cmp esi, 0x1c9
je 0x4ca2a0
cmp esi, 0x1d4
je 0x4ca293
cmp esi, 0x446
jne 0x4ca2ab
imul esi, dword [esp + 0x74], 0x446
jmp 0x4ca2ab
mov esi, 0x1d4
mov ecx, dword [esp + 4]
shr esi, cl
jmp 0x4ca2ab
sub esp, 0x69d
mov esi, 0x1c9
cmp edx, 0x446
mov dword [esp + 0x1c], eax
je 0x4ca2d3
cmp edx, 0x91
je 0x4d2f22
cmp edx, 0x199
jne 0x4ca2ed
sub esp, 0x9c7
ud2
mov ecx, dword [esp + 0x98]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, ecx, 0x446
cmovo edx, eax
mov eax, dword [esp + 0x4c]
imul ebx, edi, 0x80000ded
mov dword [esp + 8], edi
mov edi, 0xdc800000
mov ecx, dword [esp + 0x34]
cmp eax, 0x80000ded
cmovne ebx, eax
mov eax, dword [esp + 0x84]
cmp eax, 0x13b
cmovne edi, eax
mov eax, dword [esp + 0x44]
cmp eax, 0x8000004d
je 0x4ca33a
cmp eax, 0x80000f4d
jne 0x4ca348
mov eax, 0x80000f4d
shl eax, cl
mov dword [esp + 0x44], eax
jmp 0x4ca348
sub esp, 0x12e9
mov dword [esp + 0x44], 0x8000004d
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov dword [esp + 0x80], esi
test eax, eax
je 0x4ca3c0
cmp eax, 0x1b4
je 0x4ca38e
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
cmp eax, 0x2b7
je 0x4ca398
cmp eax, 0xb7d
jne 0x4ca3db
mov ecx, dword [esp + 0x58]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xb7d
jmp 0x4ca3af
imul eax, dword [esp + 0x58], 0x1b4
jmp 0x4ca3cf
mov esi, dword [esp + 0x30]
mov ecx, 0x2b7
xor eax, eax
cmp ecx, esi
setns al
add eax, 0x7fffffff
sub ecx, esi
cmovo ecx, eax
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x34]
jmp 0x4ca3db
mov edx, dword [esp + 0x74]
xor ecx, ecx
call fcn.004015c4
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
cmp ecx, 0xb14
je 0x4ca3f6
cmp ecx, 0xf16
jne 0x4ca411
mov ecx, 0xf16
sub ecx, dword [esp + 0x64]
jmp 0x4ca411
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x20]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xb14
cmovo ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x6c]
cmp edx, 0xfff74d45
je 0x4ca433
cmp edx, 0xfff75202
jne 0x4ca44b
imul edx, dword [esp + 0x10], 0xfff75202
jmp 0x4ca44b
mov edx, dword [esp + 0x28]
mov ecx, 0xfff74d45
call fcn.004015c4
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x20]
mov edx, eax
cmp esi, 0xb03fc080
je 0x4ca49f
cmp esi, 0xb03fc4e8
je 0x4ca472
cmp esi, 0xb03fcb1f
je 0x4ca492
cmp esi, 0xb03fcdb8
jne 0x4ca4aa
mov esi, 0x1db3fc0d
jmp 0x4ca4aa
mov ecx, dword [esp + 0x18]
mov esi, 0xb03fc4e8
xor eax, eax
cmp esi, ecx
setns al
add eax, 0x7fffffff
sub esi, ecx
mov ecx, dword [esp + 0x6c]
cmovo esi, eax
jmp 0x4ca4aa
add esp, 0xd2f
mov esi, 0xb03fcb1f
jmp 0x4ca4aa
imul esi, dword [esp + 0xa0], 0xb03fc080
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], esi
cmp eax, 0x4c1
je 0x4ca4fa
cmp eax, 0x6ed
je 0x4ca4e1
cmp eax, 0x434a4dd4
jne 0x4ca511
mov ecx, 0x434a4dd4
mov edx, ebp
call fcn.004015c4
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
jmp 0x4ca511
mov ebp, dword [esp + 0x48]
mov ecx, 0x6ed
xor eax, eax
cmp ecx, ebp
setns al
add eax, 0x7fffffff
sub ecx, ebp
jmp 0x4ca50a
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x4c1
cmovo ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xb0], ebx
mov eax, ecx
neg eax
jo 0x4ca56a
cmp ecx, 0x8000014b
je 0x4ca548
cmp ecx, 0x8000026f
je 0x4ca556
cmp ecx, 0x8000046d
mov ecx, dword [esp + 0x74]
jne 0x4ca579
mov dword [esp + 0x50], 0xb6200001
jmp 0x4ca579
imul eax, dword [esp + 0x14], 0x8000014b
mov ecx, dword [esp + 0x74]
jmp 0x4ca575
sub esp, 0xc73
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x50], 0x8000026f
jmp 0x4ca579
mov ecx, dword [esp + 0x74]
mov eax, 0x80000000
sar eax, cl
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
cmp ecx, 0x52e
mov ebx, 0x2e050000
cmovne ebx, ecx
cmp eax, 0x3af
je 0x4ca5b6
cmp eax, 0x6d6c2753
jne 0x4ca5c4
mov ecx, dword [esp + 0x18]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x6d6c2753
cmovo ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4ca5c4
sub esp, 0x959
mov dword [esp + 0x24], 0x3af
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x9c], ebx
cmp eax, 0x3e2
je 0x4ca621
mov ebx, dword [esp + 0x70]
cmp eax, 0x658
je 0x4ca600
cmp eax, 0xef0
je 0x4ca614
mov ecx, dword [esp + 0x58]
cmp eax, 0x6d6c2753
jne 0x4ca642
mov eax, 0x6d6c2753
mov ecx, dword [esp + 0x14]
shr eax, cl
jmp 0x4ca63e
mov edx, dword [esp + 0xc]
mov ecx, 0x658
call fcn.004015c4
mov edx, dword [esp + 0x2c]
jmp 0x4ca63e
sub esp, 0xbcb
mov eax, 0xef0
jmp 0x4ca63e
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x70]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x3e2
cmovo ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x6c], eax
cmp ebp, 0xfffffc3b
je 0x4ca694
cmp ebp, 0xfffffe31
je 0x4ca67c
mov eax, dword [esp + 4]
cmp ebp, 0xffffff6a
jne 0x4ca6b6
add esp, 0x12dd
mov dword [esp + 0x8c], 0xffffff6a
jmp 0x4ca6b6
mov eax, 0xfffffe31
mov ecx, dword [esp + 0x5c]
shl eax, cl
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x8c], eax
jmp 0x4ca6b2
mov esi, dword [esp + 0x14]
mov eax, esi
sar eax, 0x1f
add eax, 0x80000000
imul ebp, esi, 0xfffffc3b
cmovo ebp, eax
mov dword [esp + 0x8c], ebp
mov eax, dword [esp + 4]
cmp ecx, 0x1c
je 0x4ca70f
cmp ecx, 0x23
je 0x4ca6da
cmp ecx, 0x3e
je 0x4ca6fa
mov eax, dword [esp + 4]
cmp ecx, 0x80
jne 0x4ca718
mov ecx, pe_nt_image_headers32
sub ecx, eax
jmp 0x4ca718
push 0x23
pop ebx
mov ecx, dword [esp + 0x54]
xor eax, eax
cmp ebx, ecx
setns al
add eax, 0x7fffffff
sub ebx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x70]
cmovo ecx, eax
jmp 0x4ca709
mov eax, dword [esp + 8]
mov ecx, 0x7fffffff
add eax, 0x3e
cmovno ecx, eax
mov eax, dword [esp + 4]
jmp 0x4ca718
push 0x1c
pop ecx
sub esp, 0xde4
mov ebp, dword [esp + 0x68]
cmp ebp, 0xbb
je 0x4ca75b
cmp ebp, 0x1ab
je 0x4ca765
cmp ebp, 0x29f
je 0x4ca744
cmp ebp, 0x259
jne 0x4ca773
sub esp, 0xb9f
ud2
mov eax, dword [esp + 0x54]
mov ebp, 0x7fffffff
add eax, 0x29f
cmovno ebp, eax
mov eax, dword [esp + 4]
jmp 0x4ca76f
mov dword [esp + 0x68], 0xbb000000
jmp 0x4ca773
mov esi, dword [esp + 8]
lea ebp, [esi + 0x1ab]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x18]
cmp ebp, 0x2f9
je 0x4ca7b9
cmp ebp, 0x722
je 0x4ca79f
cmp ebp, 0xaf8
je 0x4ca7af
cmp ebp, 0xe72
jne 0x4ca7d5
lea ebp, [eax + 0xe72]
jmp 0x4ca7d1
add esp, 0x1134
mov dword [esp + 0x18], 0x722
jmp 0x4ca7d5
mov dword [esp + 0x18], 0x1f500000
jmp 0x4ca7d5
mov eax, dword [esp + 0x9c]
mov ebp, 0x7fffffff
add eax, 0x2f9
cmovno ebp, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x18], ebp
cmp ebx, 0x1c
je 0x4ca7f6
cmp ebx, 0x38
je 0x4ca7ef
cmp ebx, 0x69
jne 0x4ca80c
sub esp, 0x104f
push 0x69
pop ebx
jmp 0x4ca80c
push 0x38
pop ebx
sub ebx, edx
jmp 0x4ca80c
mov ebx, ecx
push 0x1c
pop ecx
mov edx, dword [esp + 0x18]
call fcn.004015c4
mov ecx, ebx
mov ebx, eax
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
cmp esi, 0x6a1
je 0x4ca85b
cmp esi, 0x758
je 0x4ca83e
cmp esi, 0xc0a
jne 0x4ca866
mov ecx, dword [esp + 0x88]
lea esi, [ecx + 0xc0a]
jmp 0x4ca866
mov ecx, dword [esp + 0x50]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul esi, ecx, 0x758
cmovo esi, eax
mov eax, dword [esp + 4]
jmp 0x4ca866
mov esi, 0x6a1
mov ecx, dword [esp + 0x68]
shl esi, cl
mov ecx, dword [esp + 8]
mov dword [esp + 0x94], esi
cmp ecx, 0x3ef
je 0x4ca891
cmp ecx, 0x139
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
jne 0x4ca8af
sub esp, 0x971
ud2
mov edx, dword [esp + 0x38]
mov ecx, 0x3ef
call fcn.004015c4
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
cmp eax, 0x408
je 0x4ca8d5
cmp eax, 0x794
je 0x4ca8cc
cmp eax, 0x4fc03f80
jne 0x4ca8e0
lea eax, [ecx + 0x4fc03f80]
jmp 0x4ca8e0
mov eax, 0x794
sub eax, ecx
jmp 0x4ca8e0
mov eax, 0x408
add esp, 0x926
cmp ebp, 0xfffffc3b
je 0x4ca90d
cmp ebp, 0xfffffcb3
jne 0x4ca914
mov edx, dword [esp + 8]
mov ecx, eax
mov eax, edx
sar eax, 0x1f
add eax, 0x80000000
imul ebp, edx, 0xfffffcb3
cmovo ebp, eax
mov eax, ecx
jmp 0x4ca914
imul ebp, dword [esp], 0xfffffc3b
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], eax
cmp ecx, 0xfffffc3b
je 0x4ca95a
cmp ecx, 0xfffffc92
je 0x4ca94d
cmp ecx, 0xfffffde1
mov ecx, dword [esp + 0x10]
jne 0x4ca971
mov eax, 0xfffffde1
sub eax, dword [esp + 0x60]
mov dword [esp + 0x98], eax
jmp 0x4ca971
mov dword [esp + 0x98], 0x92fcffff
jmp 0x4ca96d
mov ecx, 0xfffffc3b
mov edx, edi
call fcn.004015c4
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xa4]
mov edx, 0x7fffffff
mov eax, esi
sub eax, 0xffffff80
cmovno edx, eax
mov eax, dword [esp + 0x5c]
cmp eax, 0x80
cmovne edx, eax
cmp dword [esp + 0x48], 0x32
mov dword [esp + 0xa8], edx
je 0x4d2e5a
mov eax, dword [esp + 0x88]
cmp esi, 0xee9
je 0x4ca9d0
cmp esi, 0x63c
jne 0x4ca9f4
mov edx, dword [esp + 0x40]
mov eax, edx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, edx, 0x63c
jmp 0x4ca9e3
mov edx, 0xee9
xor eax, eax
cmp edx, ebx
setns al
add eax, 0x7fffffff
sub edx, ebx
cmovo edx, eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xa4], edx
cmp eax, 0x208
mov edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x70], ebx
mov ebx, edi
je 0x4caa3b
cmp edx, 0xdfc
je 0x4caa33
cmp edx, 0x4fc03f80
mov eax, edx
jne 0x4caa40
mov edx, 0x4fc03f80
xor eax, eax
cmp edx, ecx
setns al
add eax, 0x7fffffff
sub edx, ecx
cmovo edx, eax
mov eax, edx
jmp 0x4caa40
imul eax, eax, 0xdfc
jmp 0x4caa40
mov eax, 0x10400000
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x88], eax
cmp edi, 0xe1
je 0x4caaa4
cmp edi, 0x3cd
je 0x4caa8d
cmp edi, 0x74b
je 0x4caa9a
cmp edi, 0x6d6c2753
jne 0x4caaa9
mov ecx, dword [esp + 0x9c]
mov edi, 0x6d6c2753
xor eax, eax
cmp edi, ecx
setns al
add eax, 0x7fffffff
sub edi, ecx
cmovo edi, eax
jmp 0x4caaa9
add esp, 0x1170
mov edi, 0x3cd
jmp 0x4caaa9
imul edi, dword [esp + 0x70], 0x74b
jmp 0x4caaa9
mov edi, 0xe1000000
mov eax, dword [esp]
mov dword [esp + 0x28], ebp
mov dword [esp + 0xa0], edi
test eax, eax
je 0x4cab05
cmp eax, 0x1ad
je 0x4caaef
cmp eax, 0x23e
mov ecx, eax
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x60]
je 0x4caafc
cmp ecx, 0xbee
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
jne 0x4cab21
mov ebp, 0xbee
sub ebp, esi
mov dword [esp], ebp
jmp 0x4cab21
mov eax, 0x1ad
mov ecx, dword [esp + 0x44]
shr eax, cl
jmp 0x4cab0e
mov dword [esp], 0x3e020000
jmp 0x4cab19
xor ecx, ecx
mov edx, ebx
call fcn.004015c4
mov dword [esp], eax
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp ecx, 0xc18
je 0x4cab44
cmp ecx, 0x303fbc3a
jne 0x4cab68
mov esi, 0x303fbc3a
mov ecx, dword [esp + 0x40]
shl esi, cl
mov ecx, esi
mov esi, dword [esp + 0x30]
jmp 0x4cab68
mov ecx, dword [esp + 0x18]
mov esi, 0xc18
xor eax, eax
cmp esi, ecx
setns al
add eax, 0x7fffffff
sub esi, ecx
mov ecx, esi
mov esi, dword [esp + 0x30]
cmovo ecx, eax
mov eax, dword [esp + 0x60]
cmp eax, 0x6e
je 0x4cab81
cmp eax, 0xf0
jne 0x4cab86
mov eax, 0xf0
sub esp, 0x8ea
jmp 0x4cab86
mov eax, 0x76000000
cmp esi, 0x389
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0xc8], ebx
je 0x4cabda
cmp esi, 0xe17
je 0x4cabc6
cmp esi, 0xfb0
je 0x4cabd1
mov eax, dword [esp + 8]
cmp esi, 0xff2
jne 0x4cabe9
sub esp, 0xc1c
mov esi, 0xff2
jmp 0x4cabe9
mov esi, 0xe17
mov ecx, eax
shl esi, cl
jmp 0x4cabe5
mov esi, 0xfb0
sub esi, edx
jmp 0x4cabe5
mov esi, 0x389
add esp, 0x10a9
mov eax, dword [esp + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], esi
mov edi, 0x17d
mov esi, 0x78a
mov ebp, 0x17e
mov ecx, 0x57e
mov dword [esp + 0x74], 0xa8a
mov dword [esp + 0xb8], 0xa6f
mov dword [esp + 0x90], 0x8a3
mov dword [esp + 0xac], 0x6de
mov dword [esp + 0xb4], 0x397
mov dword [esp + 0xc4], 0x3286
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xc4]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x84], ecx
mov dword [esp + 0xd0], edi
sub eax, 1
mov dword [esp + 0x4c], ebx
jb 0x4cb2db
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x8c]
mov ebp, edi
bswap edx
bswap eax
add ebx, edx
mov dword [esp + 0x80], edx
mov edx, edi
mov edi, 0xf0f0f0f
bswap ebx
mov ecx, edx
mov edx, dword [esp + 0x50]
imul ebx, dword [esp + 0x9c]
bswap edx
sar ebx, cl
mov ecx, eax
and eax, edi
mov dword [esp + 0x50], edx
shr ecx, 4
shl eax, 4
mov dword [esp + 0xb0], ebx
and ecx, edi
mov edi, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edi
and eax, edi
mov edi, 0x55555555
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, edi
and eax, edi
mov edi, ebx
lea ecx, [eax + ecx*2]
sub ecx, ebx
mov ebx, dword [esp]
imul ecx, edx
mov edx, 0x80000000
sub ecx, esi
lea eax, [ebp + ecx]
mov dword [esp + 0xbc], ecx
sar eax, 0x1f
xor eax, edx
add ebp, ecx
mov edx, ecx
mov ecx, edi
mov edi, dword [esp + 0x38]
cmovo ebp, eax
shl ebx, cl
mov ecx, edx
xor eax, eax
mov edx, 0x7fffffff
sar ebx, cl
mov ecx, 0x7fffffff
mov dword [esp + 0x20], ebp
cmp ebx, edi
setns al
add eax, ecx
sub ebx, edi
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x30]
cmovo ebx, eax
mov dword [esp + 0x58], ebx
mov ebx, 0x80000000
shl edi, cl
mov ecx, dword [esp + 0x84]
lea eax, [edi + ecx]
sar eax, 0x1f
xor eax, ebx
add edi, ecx
mov ecx, dword [esp + 0x5c]
cmovo edi, eax
xor eax, eax
mov dword [esp + 0x88], edi
mov edi, dword [esp + 4]
cmp edi, ecx
setns al
add eax, edx
sub edi, ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
cmovo edi, eax
mov dword [esp + 4], edi
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov edi, 0x80000000
mov ebx, 0x33333333
mov ecx, eax
and eax, edx
shr ecx, 4
shl eax, 4
and ecx, edx
mov edx, 0x33333333
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, edx
and eax, edx
mov edx, 0x55555555
lea ecx, [eax + ecx*4]
mov eax, ecx
shr ecx, 1
and eax, edx
and ecx, edx
mov edx, 0x7fffffff
lea ebp, [ecx + eax*2]
mov ecx, dword [esp + 0x70]
add eax, eax
mov dword [esp + 0x3c], ebp
xor eax, ecx
shr eax, 0x1f
add eax, edx
imul ecx, ebp
cmovo ecx, eax
xor eax, eax
cmp ecx, ebp
setns al
add eax, edx
sub ecx, ebp
mov ebp, 0xf0f0f0f
cmovo ecx, eax
xor eax, eax
bswap ecx
cmp ecx, esi
setns al
add eax, edx
sub ecx, esi
mov edx, dword [esp + 0x68]
mov esi, 0x80000000
cmovo ecx, eax
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x74]
lea eax, [edx + ecx]
sar eax, 0x1f
xor eax, esi
add edx, ecx
mov ecx, dword [esp + 0x2c]
cmovo edx, eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0xc8]
imul edx, dword [esp + 0xac]
sar edx, cl
mov ecx, dword [esp + 0xb4]
lea eax, [edx + ecx]
sar eax, 0x1f
xor eax, esi
add edx, ecx
mov ecx, 0xf0f0f0f
mov esi, 0x55555555
cmovo edx, eax
bswap edx
mov eax, edx
and edx, ecx
shr eax, 4
shl edx, 4
and eax, ecx
mov ecx, 0x33333333
or edx, eax
mov eax, edx
shr edx, 2
and eax, ecx
and edx, ecx
lea eax, [edx + eax*4]
mov edx, 0x55555555
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, dword [esp + 0x6c]
lea ecx, [eax + ecx*2]
mov dword [esp + 0xc8], ecx
lea eax, [edx + ecx]
sar eax, 0x1f
xor eax, edi
add edx, ecx
mov ecx, dword [esp + 0x44]
cmovo edx, eax
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
bswap ecx
mov eax, ecx
and ecx, ebp
shr eax, 4
shl ecx, 4
and eax, ebp
or ecx, eax
mov eax, ecx
shr ecx, 2
and eax, ebx
and ecx, ebx
lea eax, [ecx + eax*4]
mov ecx, eax
shr eax, 1
and ecx, esi
and eax, esi
mov esi, 0x7fffffff
lea eax, [eax + ecx*2]
add ecx, ecx
xor ecx, edx
shr ecx, 0x1f
add ecx, esi
imul eax, edx
mov edx, 0x55555555
mov esi, 0x55555555
cmovo eax, ecx
bswap eax
mov ecx, eax
and eax, ebp
shr ecx, 4
shl eax, 4
and ecx, ebp
or eax, ecx
mov ecx, eax
shr eax, 2
and ecx, ebx
and eax, ebx
lea eax, [eax + ecx*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, dword [esp + 0x18]
lea ecx, [eax + ecx*2]
lea eax, [ecx + edx]
sar eax, 0x1f
xor eax, edi
add ecx, edx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
cmovo ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x1c]
add edx, dword [esp + 0x40]
shl edi, cl
mov ecx, dword [esp + 0x2c]
sub edi, dword [esp + 0x7c]
sar edx, cl
bswap edx
mov dword [esp + 0x64], edi
mov edi, 0x55555555
mov eax, edx
and edx, ebp
shr eax, 4
shl edx, 4
and eax, ebp
or edx, eax
mov eax, edx
shr edx, 2
and eax, ebx
and edx, ebx
lea ecx, [edx + eax*4]
mov edx, dword [esp + 0x10]
bswap edx
mov eax, edx
and edx, ebp
shr eax, 4
shl edx, 4
and eax, ebp
or edx, eax
mov eax, edx
shr edx, 2
and eax, ebx
and edx, ebx
lea eax, [edx + eax*4]
mov edx, ecx
shr ecx, 1
and edx, esi
and ecx, esi
mov esi, dword [esp + 0x94]
lea ecx, [ecx + edx*2]
mov edx, dword [esp + 0x24]
sub ecx, dword [esp + 8]
sub edx, dword [esp + 0x8c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
bswap edx
bswap ecx
imul ecx, esi
mov dword [esp + 0xc], ecx
mov ecx, edx
and edx, ebp
shr ecx, 4
shl edx, 4
and ecx, ebp
or edx, ecx
mov ecx, edx
shr edx, 2
and ecx, ebx
and edx, ebx
mov ebx, dword [esp + 0x34]
lea ecx, [edx + ecx*4]
mov edx, eax
shr eax, 1
and edx, edi
and eax, edi
lea eax, [eax + edx*2]
mov edx, 0x55555555
mov dword [esp + 0x10], eax
mov eax, ecx
shr ecx, 1
add ebx, dword [esp + 0x38]
and eax, edx
and ecx, edx
mov edx, dword [esp + 0x4c]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa8], eax
call fcn.004015c4
mov ecx, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x68], eax
call fcn.004015c4
mov dword [esp + 0x18], eax
mov eax, esi
mov ecx, 0xf0f0f0f
mov edi, dword [esp + 4]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x34], ebx
shr eax, 4
and esi, ecx
and eax, ecx
shl esi, 4
mov ecx, 0x33333333
or esi, eax
mov eax, esi
shr esi, 2
and eax, ecx
and esi, ecx
mov ecx, dword [esp + 0x14]
shl edi, cl
mov ecx, dword [esp + 0x90]
lea ebp, [esi + eax*4]
mov esi, dword [esp + 0x28]
mov eax, 0x55555555
shl esi, cl
mov ecx, ebx
mov ebx, ebp
shr ebp, 1
and ebx, eax
and ebp, eax
mov eax, edi
sar edx, cl
mov ecx, dword [esp]
mov edi, 0x7fffffff
sub esi, dword [esp + 0x7c]
sub eax, dword [esp + 0xbc]
mov dword [esp + 0x28], esi
mov esi, 0x55555555
mov dword [esp + 4], eax
mov eax, edx
xor eax, ecx
shr eax, 0x1f
add eax, edi
mov edi, dword [esp + 0x48]
imul edx, ecx
mov ecx, dword [esp + 0xd0]
cmovo edx, eax
bswap edx
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x74]
shl edi, cl
mov ecx, 0xf0f0f0f
bswap edi
mov eax, edi
and edi, ecx
shr eax, 4
shl edi, 4
and eax, ecx
mov ecx, 0x33333333
or edi, eax
mov eax, edi
shr edi, 2
and eax, ecx
and edi, ecx
lea eax, [edi + eax*4]
mov ecx, eax
shr eax, 1
and ecx, esi
and eax, esi
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x3c]
shl eax, cl
lea ecx, [ebp + ebx*2]
mov dword [esp + 0x94], ecx
mov ecx, eax
call fcn.004015c4
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x48], eax
mov edx, 0x7fffffff
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x60]
mov eax, ecx
xor eax, ebp
shr eax, 0x1f
add eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x64]
imul edx, ebp
cmovo edx, eax
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x38]
shl edx, cl
mov ecx, 0x7fffffff
mov eax, edx
xor eax, esi
shr eax, 0x1f
add eax, ecx
imul edx, esi
mov esi, dword [esp + 0x28]
cmovo edx, eax
add edx, ebx
mov eax, edx
xor eax, esi
shr eax, 0x1f
add eax, ecx
imul edx, esi
cmovo edx, eax
mov eax, dword [esp + 0x30]
mov ecx, edx
shl edi, cl
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x60], edi
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x20]
imul eax, esi
mov esi, dword [esp + 0x80]
bswap ecx
mov dword [esp + 0x88], ecx
sar eax, cl
mov ecx, ebx
shl edx, cl
mov dword [esp + 0x30], eax
mov ecx, 0x7fffffff
mov eax, edx
xor eax, ebp
shr eax, 0x1f
add eax, ecx
imul edx, ebp
mov ecx, dword [esp + 0x7c]
cmovo edx, eax
mov eax, dword [esp + 0x6c]
add esi, ecx
add edx, eax
mov ecx, edx
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x74]
shl esi, cl
mov ecx, eax
shl ebp, cl
mov ecx, ebx
mov ebx, 0x7fffffff
mov dword [esp + 0xac], ebp
mov ebp, esi
mov esi, dword [esp + 0xb4]
sub esi, edx
sub edx, esi
mov dword [esp + 0xb4], esi
sar edx, cl
mov ecx, edx
xor ecx, esi
shr ecx, 0x1f
add ecx, ebx
imul edx, esi
mov esi, dword [esp + 0xbc]
cmovo edx, ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x8c], esi
bswap ecx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x78]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x3c]
lea ecx, [ecx + eax]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], edx
jmp 0x4cac4b
mov eax, dword [esp + 0x64]
cmp eax, 0xc0e82000
je 0x4cb33e
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x3c]
cmp eax, 0xc0e82b11
je 0x4cb32a
cmp eax, 0xc0e82fb9
je 0x4cb334
cmp eax, 0xc0e83006
jne 0x4cb35e
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], ebp
mov ecx, 0x80000000
mov ebp, dword [esp + 0x2c]
add eax, 0xc0e83006
cmovno ecx, eax
mov dword [esp + 0x64], ecx
jmp 0x4cb35e
mov dword [esp + 0x64], 0x88d41703
jmp 0x4cb35e
mov dword [esp + 0x64], 0xb92fe8c0
jmp 0x4cb35e
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x3c]
add eax, 0xc0e82000
mov dword [esp + 0x64], eax
cmp esi, 1
je 0x4cb37c
cmp esi, 4
jne 0x4cb385
mov eax, dword [esp + 0xb8]
mov esi, 0x7fffffff
add eax, 4
cmovno esi, eax
jmp 0x4cb385
xor esi, esi
sub esp, 0x13b7
inc esi
mov eax, ebx
mov dword [esp + 0x14], esi
neg eax
jo 0x4cb3f2
cmp ebx, 0x800007f3
je 0x4cb3c5
cmp ebx, 0x80000cfe
je 0x4cb3e5
cmp ebx, 0x80000e9c
jne 0x4cb3f9
mov edx, dword [esp + 0x44]
mov ecx, 0x80000e9c
call fcn.004015c4
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
mov ebx, eax
jmp 0x4cb3f9
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x14]
mov eax, ecx
sar eax, 0x1f
add eax, 0x80000000
imul ebx, ecx, 0x800007f3
cmovo ebx, eax
jmp 0x4cb3f9
mov ebx, 0x80000cfe
sub esp, 0x1370
jmp 0x4cb3f9
mov ebx, dword [esp + 0x78]
shl ebx, 0x1f
mov eax, dword [esp + 0x80]
mov dword [esp + 0x2c], ebp
cmp eax, 0x13
je 0x4cb431
cmp eax, 0x64f
je 0x4cb422
cmp eax, 0x773
jne 0x4cb43c
mov eax, dword [esp + 0x54]
add eax, 0x773
jmp 0x4cb428
imul eax, esi, 0x64f
mov dword [esp + 0x80], eax
jmp 0x4cb43c
mov dword [esp + 0x80], 0x13000000
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
cmp edx, 0xeecde483
je 0x4cb46d
cmp edx, 0xeecdeee9
je 0x4cb465
cmp edx, 0xeecdf3f7
jne 0x4cb472
mov edx, 0xeecdf3f7
shl edx, cl
jmp 0x4cb472
lea edx, [ebx - 0x11321117]
jmp 0x4cb472
mov edx, 0xc127b377
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x4cb4af
cmp eax, 0x8cc
je 0x4cb49c
cmp eax, 0xc12
jne 0x4cb4cd
imul eax, dword [esp + 0x14], 0xc12
mov dword [esp + 0xb0], eax
jmp 0x4cb4cd
sub esp, 0x507
mov dword [esp + 0xb0], 0x8cc
jmp 0x4cb4cd
mov esi, dword [esp + 0x44]
xor eax, eax
mov ecx, esi
neg ecx
setns al
add eax, 0x7fffffff
neg esi
cmovo esi, eax
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0xc8]
mov eax, 0x38c
mov edi, dword [esp + 0x44]
lea ecx, [ebp + eax]
cmp esi, eax
mov eax, 0xad6
cmovne ecx, esi
mov esi, 0x7fffffff
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
cmovno esi, ecx
cmp edi, eax
mov eax, dword [esp + 0x10]
cmovne esi, edi
cmp eax, 1
je 0x4cb535
cmp eax, 6
je 0x4cb526
cmp eax, 0xf
mov eax, dword [esp + 0x34]
jne 0x4cb551
mov dword [esp + 0x10], 0xf000000
jmp 0x4cb551
push 6
pop eax
mov dword [esp + 0x10], eax
sub esp, 0x1304
jmp 0x4cb54d
xor ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setns al
add eax, 0x7fffffff
sub ecx, edx
cmovo ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], ebx
cmp eax, 0xa91
mov ebx, ebp
je 0x4cb5a3
cmp eax, 0xbfa
je 0x4cb58f
cmp eax, 0x303fbc38
mov eax, dword [esp + 0x20]
jne 0x4cb5bc
mov ebp, dword [esp + 0x8c]
mov ecx, 0x303fbc38
xor eax, eax
cmp ecx, ebp
setns al
add eax, 0x7fffffff
sub ecx, ebp
cmovo ecx, eax
jmp 0x4cb5b4
mov eax, 0xbfa
mov ecx, dword [esp + 0x9c]
shl eax, cl
mov dword [esp + 0x34], eax
jmp 0x4cb5b8
mov eax, dword [esp + 0x28]
mov ecx, 0x7fffffff
add eax, 0xa91
cmovno ecx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], edx
cmp ecx, 0x44b
je 0x4cb5ea
cmp ecx, 0xf14
jne 0x4cb605
mov edx, dword [esp + 0x74]
mov ecx, 0xf14
call fcn.004015c4
mov ecx, eax
mov edx, dword [esp + 0xc]
jmp 0x4cb601
mov ecx, dword [esp + 0x28]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x44b
cmovo ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
cmp eax, 0x362
je 0x4cb63c
cmp eax, 0x7db
je 0x4cb629
cmp eax, 0x93d
jne 0x4cb64e
mov eax, 0x3d090000
jmp 0x4cb64e
mov eax, ecx
mov ecx, 0x7fffffff
add eax, 0x7db
cmovno ecx, eax
mov eax, ecx
jmp 0x4cb64e
mov edx, dword [esp + 0x70]
mov ecx, 0x362
call fcn.004015c4
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x40]
mov ecx, 0x800002f9
mov dword [esp + 0x20], eax
mov dword [esp + 0xd4], esi
mov eax, 0x80000000
add esi, ecx
cmovo esi, eax
cmp edi, ecx
mov ecx, ebx
cmovne esi, edi
neg ecx
mov dword [esp + 0xd8], esi
jo 0x4cb6c4
mov edi, ebx
cmp ebx, 0x80000615
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x8c]
je 0x4cb6b6
cmp edi, 0x80000945
mov dword [esp + 0x50], edi
jne 0x4cb6d7
mov eax, dword [esp + 0x58]
mov ecx, 0x80000000
add eax, 0x80000945
cmovno ecx, eax
mov dword [esp + 0x50], ecx
jmp 0x4cb6d7
mov eax, dword [esp + 0xa4]
add eax, 0x80000615
jmp 0x4cb6d3
sub eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x9c]
mov eax, ecx
neg eax
jo 0x4cb700
cmp ecx, 0x800003e6
jne 0x4cb712
mov edx, dword [esp + 0x70]
mov ecx, 0x800003e6
call fcn.004015c4
mov edx, dword [esp + 0xc]
jmp 0x4cb70b
mov eax, 0x80000000
mov ecx, dword [esp + 0x20]
shl eax, cl
mov dword [esp + 0x9c], eax
mov ecx, 0xdb0
mov eax, 0xdb0
sub ecx, dword [esp + 0x90]
cmp ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x58]
cmovne eax, ebx
cmp dword [esp + 0x6c], 0xf6710df2
jne 0x4cb73e
add esp, 0x48d
cmp esi, 0x8000000a
mov dword [esp + 0xc4], eax
je 0x4cb79e
cmp esi, 0x80000e8f
je 0x4cb776
cmp esi, 0x80000261
je 0x4cb793
mov eax, dword [esp + 0x18]
cmp esi, 0x80000028
jne 0x4cb7b9
imul esi, dword [esp + 0x80], 0x80000028
jmp 0x4cb7b9
mov ecx, dword [esp + 0x64]
mov esi, 0x80000e8f
xor eax, eax
cmp esi, ecx
setns al
add eax, 0x7fffffff
sub esi, ecx
mov ecx, dword [esp + 0x58]
jmp 0x4cb7b2
mov eax, dword [esp + 0x18]
mov esi, 0x86400001
jmp 0x4cb7b9
mov eax, dword [esp + 4]
sar eax, 0x1f
add eax, 0x80000000
imul esi, dword [esp + 4], 0x8000000a
cmovo esi, eax
mov eax, dword [esp + 0x18]
mov ebx, edx
mov edi, esi
cmp ecx, 0xfffffff6
je 0x4cb7eb
cmp ecx, 0xfffffffe
je 0x4cb7da
cmp ecx, 6
jne 0x4cb7f2
push 6
pop eax
mov ecx, dword [esp + 0x9c]
shr eax, cl
jmp 0x4cb7e3
push 0xfffffffffffffffe
pop eax
mov ecx, dword [esp + 0x28]
shl eax, cl
mov ecx, eax
mov eax, dword [esp + 0x18]
jmp 0x4cb7f2
mov ecx, dword [esp + 0x2c]
add ecx, 0xfffffff6
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0xa4]
cmp esi, 1
mov dword [esp + 0xa0], edx
je 0x4cb858
cmp esi, 2
je 0x4cb82c
cmp esi, 0xc
je 0x4cb848
cmp esi, 0xe
mov dword [esp + 0xa0], esi
jne 0x4cb858
mov dword [esp + 0xa0], 0x70000000
jmp 0x4cb858
mov eax, dword [esp + 0x74]
mov edx, 0x7fffffff
add eax, 2
cmovno edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa0], edx
jmp 0x4cb858
push 0xc
pop edx
mov dword [esp + 0xa0], edx
add esp, 0x95c
mov ebp, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x58], ecx
je 0x4cb89c
cmp eax, 0x5e2
je 0x4cb891
cmp eax, 0xcbe
mov ebp, eax
jne 0x4cb89c
mov edx, dword [esp + 0xb8]
mov ecx, 0xcbe
call fcn.004015c4
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0xc]
mov ebp, eax
jmp 0x4cb89c
mov ebp, 0x5e2
add esp, 0x77b
mov eax, dword [esp + 0x70]
cmp eax, 0xa
je 0x4cb8c9
cmp eax, 0x10
je 0x4cb8c4
cmp eax, 0x11
jne 0x4cb8ce
push 0x11
pop ecx
mov edx, dword [esp + 0x94]
call fcn.004015c4
mov ebx, dword [esp + 0xc]
jmp 0x4cb8ce
lea eax, [ecx + 0x10]
jmp 0x4cb8ce
mov eax, 0x50000000
mov ecx, dword [esp + 0x94]
mov esi, 0x4ee
mov dword [esp + 0x70], eax
mov eax, 0x4ee
mov dword [esp + 0xe4], ebp
sub esi, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 8]
cmovne esi, ecx
mov dword [esp + 0xbc], esi
test eax, eax
je 0x4cb94b
cmp eax, 0x4f5
je 0x4cb927
mov edx, dword [esp + 0xd4]
cmp eax, 0x923
jne 0x4cb96d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0xd4]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x4f5
cmovo ecx, eax
mov dword [esp + 8], ecx
jmp 0x4cb96d
mov ebp, dword [esp + 0x3c]
xor eax, eax
mov edx, dword [esp + 0xd4]
mov ecx, ebp
neg ecx
setns al
add eax, 0x7fffffff
neg ebp
cmovo ebp, eax
mov dword [esp + 8], ebp
mov eax, dword [esp + 4]
cmp eax, 0xfffffffe
push 5
pop ecx
je 0x4cb9a8
cmp eax, 5
je 0x4cb98f
push 0xfffffffffffffffe
pop ecx
call fcn.004015c4
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x28], 0xb53
mov dword [esp + 0x8c], edi
jne 0x4cb9cf
add esp, 0x11c
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0xa38
ud2
add esp, 0xafa
ud2
add esp, 0x1074
ud2
sub esp, 0xbce
ud2
sub esp, 0xc13
ud2