Function at 0x4d2fc4
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, 0x114
call 0x4d2fd3
pop eax
mov dword [esp + 0xe4], eax
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 0x4d305d
add edx, dword [eax + ecx + 0x3c]
add ecx, 4
jmp 0x4d3050
cmp edx, 0xf9
mov dword [esp + 0xec], eax
je 0x4d307c
cmp edx, 0xc6c
jne 0x4d3082
sub esp, 0x12d5
ud2
add esp, 0x884
mov dword [esp + 0x50], edx
mov ebp, 0xd0c
mov edx, 0xb1e
mov ebx, 0x5e6
mov eax, 0x231
mov dword [esp + 4], 0x40e
mov dword [esp + 0x40], 0x8ce
mov dword [esp + 0x30], 0x13f
mov dword [esp + 0x20], 0xc3b
mov dword [esp], 0xcd
mov dword [esp + 8], 0x18b4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov edi, dword [esp + 4]
mov dword [esp + 0x14], ebx
sub eax, 1
jb 0x4d320d
bswap ebp
mov dword [esp + 8], eax
mov esi, 0xf0f0f0f
mov dword [esp + 0x24], 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 + 0x20]
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 + 0x10], ebx
mov ebx, 0x7fffffff
shr eax, 0x1f
add eax, esi
mov esi, dword [esp + 0x40]
imul edx, edi
cmovo edx, eax
lea eax, [edx + esi]
sar eax, 0x1f
xor eax, ecx
mov ecx, dword [esp]
add edx, esi
mov edi, edx
mov edx, 0x80000000
cmovo edi, eax
mov dword [esp + 4], edi
lea eax, [ecx + edi]
mov esi, ecx
sar eax, 0x1f
xor eax, edx
mov edx, dword [esp + 0x30]
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 + 0xc]
cmovo edx, eax
sar edx, cl
mov ecx, edx
mov edx, dword [esp + 0x24]
call fcn.004015c4
mov edx, dword [esp + 0x14]
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004015c4
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov ebx, eax
bswap ebx
mov edx, ebx
mov ecx, esi
imul edi, esi
call fcn.004015c4
mov edx, esi
mov dword [esp], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], esi
mov ecx, edx
mov edx, dword [esp + 0x24]
sar eax, cl
mov ecx, ebx
mov ebx, edi
shl eax, cl
imul eax, ebp
mov dword [esp + 0x50], edx
mov edx, ebp
jmp 0x4d30c9
mov eax, dword [esp + 0x50]
cmp eax, 0x3fe
je 0x4d3257
cmp eax, 0xf4d
je 0x4d323d
cmp eax, 0xfa1
je 0x4d324d
cmp eax, 0xfdd
jne 0x4d326c
sub esp, 0xab8
mov dword [esp + 0x50], 0xfdd
jmp 0x4d326c
add esp, 0xe79
mov dword [esp + 0x50], 0xf4d
jmp 0x4d326c
mov dword [esp + 0x50], 0x85f00000
jmp 0x4d326c
mov esi, dword [esp]
mov eax, 0x7fffffff
add esi, 0x3fe
cmovno eax, esi
mov dword [esp + 0x50], eax
cmp ebp, 0x120
je 0x4d3297
cmp ebp, 0x41e
jne 0x4d32a2
mov esi, dword [esp]
mov ebp, 0x41e
xor eax, eax
cmp ebp, esi
setns al
add eax, 0x7fffffff
sub ebp, esi
cmovo ebp, eax
jmp 0x4d32a2
sub esp, 0x130d
mov ebp, 0x120
cmp edi, 0x7f6
je 0x4d32cb
cmp edi, 0xe68
je 0x4d32c2
cmp edi, 0x25e
jne 0x4d32da
add esp, 0x112e
ud2
mov edi, 0xe68
sub edi, edx
jmp 0x4d32da
mov eax, edx
mov edi, 0x7fffffff
add eax, 0x7f6
cmovno edi, eax
mov eax, dword [esp + 0x40]
cmp eax, 0x23d
je 0x4d3313
cmp eax, 0x695
je 0x4d3303
cmp eax, 0x896
jne 0x4d3320
mov esi, 0x896
mov ecx, dword [esp]
shl esi, cl
mov dword [esp + 0x40], esi
jmp 0x4d3320
add esp, 0x109f
mov dword [esp + 0x40], 0x695
jmp 0x4d3320
mov eax, dword [esp + 0xc]
add eax, 0x23d
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], ebp
cmp eax, 1
je 0x4d335c
cmp eax, 0xc
je 0x4d334f
mov ebp, eax
cmp eax, 0x10
jne 0x4d335c
push 0x10
pop ecx
mov ebp, edx
mov edx, edi
call fcn.004015c4
mov ebx, dword [esp + 0x14]
mov edx, ebp
mov ebp, eax
jmp 0x4d335c
mov eax, edi
mov ebp, 0x7fffffff
add eax, 0xc
cmovno ebp, eax
cmp edx, 0xa64
mov dword [esp + 0x30], ebp
je 0x4d3387
cmp edx, 0xd42
je 0x4d3380
cmp edx, 0x78b
jne 0x4d3399
add esp, 0xda4
ud2
mov edx, 0x42b00000
jmp 0x4d3399
mov ecx, 0xa64
mov edx, ebx
call fcn.004015c4
mov ebp, dword [esp + 0x30]
mov edx, eax
mov eax, dword [esp + 0x20]
test eax, eax
cmove eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp]
cmp eax, 0x11
je 0x4d33e5
cmp eax, 0x143
je 0x4d33cd
cmp eax, 0xd54
je 0x4d33d6
cmp eax, 0x1000000
jne 0x4d33f1
mov eax, ebp
shl eax, 0x18
mov dword [esp], eax
jmp 0x4d33f1
mov dword [esp], 0x43010000
jmp 0x4d33f1
sub esp, 0x124c
mov dword [esp], 0xd54
jmp 0x4d33f1
push 0x11
pop eax
mov dword [esp], eax
sub esp, 0x6e3
test ebx, ebx
mov dword [esp + 8], edx
mov dword [esp + 0x24], edi
je 0x4d3412
cmp ebx, 0xd0b
jne 0x4d3414
sub esp, 0x998
mov ebx, 0xd0b
jmp 0x4d3414
mov ebx, edi
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp]
mov edx, 0x1b8
mov eax, 0x3f1
mov ecx, 0x1b30
mov edi, 0x919
mov dword [esp + 0x2c], 0xa6c
mov dword [esp + 0x18], 0xc4e
mov dword [esp + 0x3c], 0xbcf
mov dword [esp + 4], 0x3b9
mov dword [esp + 0x44], 0x7e6
mov dword [esp + 0x4c], 0xfc8
sub ecx, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x54], eax
jb 0x4d36f6
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x34]
mov ebp, eax
mov edx, ebx
call fcn.004015c4
mov edi, dword [esp + 0x2c]
mov ecx, ebx
sar eax, cl
mov ecx, eax
mov edx, edi
call fcn.004015c4
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], 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 + 0x10]
cmovo esi, eax
mov eax, dword [esp + 0x20]
mov edx, esi
sar eax, cl
mov ecx, eax
call fcn.004015c4
sub eax, esi
mov edx, 0xf0f0f0f
mov dword [esp + 8], esi
mov dword [esp + 0x2c], 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 + 0x4c]
mov dword [esp + 0x48], edx
lea edx, [eax + edx*2]
mov esi, edx
mov dword [esp + 0x20], esi
lea eax, [ecx + edx]
sar eax, 0x1f
xor eax, ebp
add ecx, edx
mov edx, 0x7fffffff
cmovo ecx, eax
mov dword [esp + 0x4c], 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 + 0x14]
cmovo ebx, eax
xor eax, eax
cmp ebx, esi
setns al
add eax, edx
sub ebx, esi
mov esi, dword [esp + 4]
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 + 0x18]
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 + 0x44]
mov ecx, ebx
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x2c]
shl eax, cl
mov ecx, ebp
add eax, ebx
mov ebx, dword [esp + 0x1c]
mov ebp, eax
mov dword [esp + 0x40], eax
xor eax, eax
add ecx, edi
imul ebp, esi
bswap edi
bswap ecx
sub ebp, ecx
mov dword [esp + 0x18], ecx
mov ecx, 0x7fffffff
cmp ebp, ebx
setns al
add eax, ecx
sub ebp, ebx
mov ebx, dword [esp + 0x3c]
cmovo ebp, eax
xor eax, eax
cmp ebx, esi
setns al
add eax, ecx
mov ecx, ebx
sub ecx, esi
mov esi, dword [esp + 0x30]
cmovo ecx, eax
xor eax, eax
mov dword [esp + 0x38], 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 + 0x24]
mov dword [esp + 0x50], ecx
xor ecx, ecx
add eax, edx
mov edx, 0x7fffffff
cmp eax, esi
setns cl
add ecx, edx
mov edx, dword [esp + 0x14]
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 + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x1c]
sar eax, cl
mov ecx, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
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 + 0x10]
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 + 0x44], edi
call fcn.004015c4
mov edi, dword [esp + 0x1c]
mov ecx, eax
mov edx, 0x7fffffff
mov dword [esp + 4], ebp
mov dword [esp + 0x14], esi
xor ecx, edi
shr ecx, 0x1f
add ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x40]
imul eax, edi
cmovo eax, ecx
mov ecx, dword [esp + 0x28]
imul eax, ebp
mov ebp, edi
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x50], edi
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x38]
mov edi, ebx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp]
jmp 0x4d3463
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], ebp
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 8]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x28], edx
test eax, eax
mov dword [esp], ecx
je 0x4d374c
cmp eax, 0x61c
je 0x4d373e
cmp eax, 0xf9f
mov dword [esp], eax
jne 0x4d374c
mov edx, dword [esp + 0x4c]
mov ecx, 0xf9f
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 8]
jmp 0x4d3749
mov eax, 0x61c
mov ecx, dword [esp + 0x4c]
shl eax, cl
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov eax, ecx
neg eax
jo 0x4d37a5
cmp ecx, 0x800004d5
je 0x4d377e
cmp ecx, 0x8000073a
je 0x4d3789
cmp ecx, 0x800008a9
jne 0x4d37b2
add esp, 0x55a
mov dword [esp + 0x24], 0x800008a9
jmp 0x4d37b2
mov eax, 0x800004d5
sub eax, dword [esp + 0x20]
jmp 0x4d37ae
mov ecx, 0x8000073a
xor eax, eax
cmp ecx, esi
setns al
add eax, 0x7fffffff
sub ecx, esi
cmovo ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x4d37b2
mov eax, dword [esp + 0x4c]
add eax, 0x80000000
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4d37ee
cmp eax, 0x2d3
je 0x4d37d6
mov ecx, esi
cmp eax, 0x6d9
jne 0x4d380b
mov eax, 0x6d9
mov ecx, dword [esp]
shr eax, cl
jmp 0x4d3809
mov edx, dword [esp + 0xc]
mov ecx, 0x2d3
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 8]
jmp 0x4d380b
mov eax, dword [esp + 0x50]
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 0x4d3828
cmp ebp, 0x80000ffa
jne 0x4d382d
add esp, 0xf74
mov ebp, 0x80000ffa
jmp 0x4d382d
mov ebp, 0x710e0080
cmp ecx, 0x1e7
mov dword [esp + 0x40], eax
je 0x4d3868
cmp ecx, 0x467
je 0x4d3855
cmp ecx, 0x895
jne 0x4d3875
mov eax, dword [esp + 0x44]
lea ecx, [eax + 0x895]
jmp 0x4d3875
mov eax, dword [esp + 0x2c]
mov ecx, 0x7fffffff
add eax, 0x467
cmovno ecx, eax
jmp 0x4d3875
mov eax, 0x1e7
mov ecx, dword [esp + 4]
shl eax, cl
mov ecx, eax
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x20]
mov eax, 0x80000f30
mov dword [esp + 8], ecx
add esi, eax
cmp edi, eax
cmovne esi, edi
cmp ebx, 0x175
mov dword [esp + 0x20], esi
jne 0x4d38ad
mov edx, dword [esp + 0x14]
mov ecx, 0x175
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov ebx, eax
mov ecx, dword [esp + 0x14]
mov eax, 0xa00000
cmp ecx, 0x500
cmovne eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
cmp eax, 0xabc
je 0x4d38ee
cmp eax, 0xaff
jne 0x4d38f8
mov eax, ebx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ebx, 0xaff
cmovo ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x4d38f8
add ebp, 0xabc
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x2c]
cmp eax, 0x29
je 0x4d394f
mov ebp, dword [esp + 0x18]
cmp eax, 0x651
je 0x4d392b
mov ecx, dword [esp + 8]
cmp eax, 0xc24
je 0x4d393f
cmp eax, 0xca4
jne 0x4d3964
mov eax, 0xca4
mov ecx, dword [esp + 0x40]
shl eax, cl
jmp 0x4d395c
add esp, 0x4c5
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], 0x651
jmp 0x4d3964
add esp, 0xb7a
mov dword [esp + 0x2c], 0xc24
jmp 0x4d3964
push 0x29
pop eax
mov ecx, dword [esp + 0x4c]
shr eax, cl
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], eax
cmp edx, 0xcf9
jne 0x4d3972
sub esp, 0xc61
cmp ebp, 0x83b90cd4
je 0x4d39bb
cmp ebp, 0x83b91c07
je 0x4d39a7
cmp ebp, 0x83b91a13
je 0x4d39ae
cmp ebp, 0x83b919a1
jne 0x4d39c2
mov eax, edx
sar eax, 0x1f
add eax, 0x80000000
imul ebp, edx, 0x83b919a1
cmovo ebp, eax
jmp 0x4d39c2
mov ebp, 0x71cb983
jmp 0x4d39c2
sub esp, 0x1398
mov ebp, 0x83b91a13
jmp 0x4d39c2
mov ebp, 0x83b90cd4
sar ebp, cl
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebp
cmp eax, 0xdaf
je 0x4d39fd
mov edx, dword [esp + 4]
cmp eax, 0xdbd
je 0x4d3a0a
cmp eax, 0x7fffffff
je 0x4d39f2
cmp eax, 0x16f
jne 0x4d3a19
add esp, 0xfa9
ud2
mov eax, dword [esp + 0x44]
add eax, 0x7fffffff
jmp 0x4d3a15
mov edx, dword [esp + 4]
mov eax, 0xdaf
sub eax, ebx
jmp 0x4d3a15
mov eax, 0xdbd
mov ecx, dword [esp + 8]
shr eax, cl
mov dword [esp + 0x3c], eax
mov eax, edx
neg eax
jo 0x4d3a34
cmp edx, 0x80000d5e
jne 0x4d3a3c
mov eax, dword [esp + 0x50]
add eax, 0x80000d5e
mov edx, eax
jmp 0x4d3a3c
mov edx, 0x80000000
sub edx, dword [esp]
mov esi, dword [esp + 0x44]
mov eax, 0xac1
mov edi, 0xac1
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], edx
shl edi, cl
cmp esi, eax
mov eax, dword [esp + 0x10]
cmovne edi, esi
mov dword [esp + 0x38], edi
cmp eax, 0x36a
je 0x4d3ab8
mov edi, dword [esp + 0x20]
cmp eax, 0xa4b
je 0x4d3a91
cmp eax, 0xb37
je 0x4d3a9e
cmp eax, 0x7fffffff
jne 0x4d3ac1
mov edx, dword [esp + 0x4c]
mov ecx, 0x7fffffff
call fcn.004015c4
jmp 0x4d3ac1
mov eax, 0xa4b
sub esp, 0xda2
jmp 0x4d3ac1
mov eax, dword [esp + 0x38]
mov ecx, eax
shr ecx, 0x1f
add ecx, 0x7fffffff
imul eax, eax, 0xb37
cmovo eax, ecx
jmp 0x4d3ac1
mov edi, dword [esp + 0x20]
mov eax, 0x56c00000
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov esi, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], esi
mov eax, edx
shl ecx, 0x1f
neg eax
cmovno ecx, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x54]
cmp ecx, 0x979
je 0x4d3b08
mov eax, dword [esp + 0x18]
cmp ecx, 0xe14
jne 0x4d3b14
mov edx, 0xe14
mov ecx, dword [esp + 0x40]
shl edx, cl
mov ecx, edx
jmp 0x4d3b14
imul ecx, dword [esp + 0x30], 0x979
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], 0x1ad
mov dword [esp], 0xfd8
push 0x18
pop edx
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x54], 0xcc0
mov dword [esp + 0x14], 0x9e0
mov dword [esp + 0x50], 0x1e3b
mov dword [esp + 0x4c], 0xa86
mov ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], ebx
sub eax, 1
jb 0x4d3e00
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, 0xfffff166
mov edi, dword [esp + 0x34]
mov dword [esp + 0x5c], edx
add esi, eax
mov eax, dword [esp + 0x30]
mov edx, edi
mov dword [esp + 0x34], 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 + 0x44]
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 + 0x40], 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 + 0x18], ebx
mov ebx, dword [esp + 0x34]
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 + 0x4c]
xor eax, eax
cmp edi, ecx
setns al
add eax, edx
mov edx, dword [esp + 0x24]
sub edi, ecx
mov ecx, dword [esp + 0x54]
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 + 8]
lea eax, [edx + eax*4]
mov edx, eax
shr eax, 1
add ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, 0x55555555
and edx, ecx
and eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x28]
sub edi, dword [esp + 8]
lea ebp, [eax + edx*2]
mov eax, 0xfffff166
mov edx, dword [esp + 0x14]
sub ebp, dword [esp]
add dword [esp + 0x18], eax
mov eax, 0xe9a
shl ebx, cl
mov dword [esp + 0x30], edi
mov edi, 0x7fffffff
sub ebx, dword [esp + 0x3c]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x38]
mov ecx, ebx
shl dword [esp + 0x40], cl
mov ecx, dword [esp + 4]
add ecx, eax
cmovo ecx, edi
call fcn.004015c4
mov esi, eax
mov eax, 0xe9a
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], 0xe9a
imul esi, ebp
mov ebp, dword [esp]
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 + 4], 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 + 0x10]
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 + 0x2c]
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 + 0x20]
and edx, eax
and ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
mov dword [esp], edx
mov edx, 0x7fffffff
mov ecx, esi
shl edi, cl
mov ecx, dword [esp + 0x24]
mov ebp, ecx
sar edi, cl
xor ebp, eax
shr ebp, 0x1f
add ebp, edx
imul eax, ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 8]
cmovo eax, ebp
sar eax, cl
mov ecx, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
mov eax, dword [esp]
bswap ecx
lea eax, [ebx + eax*2]
mov ebx, 0x7fffffff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
bswap eax
mov dword [esp + 0x14], eax
mov eax, edx
xor eax, edi
shr eax, 0x1f
add eax, ebx
imul edi, edx
mov edx, dword [esp + 0x28]
cmovo edi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x54], edx
push 0x1a
pop edx
mov ebp, dword [esp + 0x40]
mov dword [esp], ebp
jmp 0x4d3b4e
mov eax, dword [esp + 0x44]
mov ebx, ebp
test eax, eax
je 0x4d3e56
cmp eax, 0xb2
je 0x4d3e42
cmp eax, 0x2e2
je 0x4d3e4c
cmp eax, 0xa1a
mov dword [esp + 0x68], eax
jne 0x4d3e5e
mov ecx, dword [esp]
mov edx, 0xa1a
xor eax, eax
cmp edx, ecx
setns al
add eax, 0x7fffffff
sub edx, ecx
cmovo edx, eax
mov dword [esp + 0x68], edx
jmp 0x4d3e5e
mov dword [esp + 0x68], 0xa2714
jmp 0x4d3e5e
mov dword [esp + 0x68], 0xe2020000
jmp 0x4d3e5e
mov dword [esp + 0x68], 0xe9a
mov edx, dword [esp + 0x24]
mov ebp, 0x7f6
mov eax, 0x7f6
mov ecx, dword [esp + 0x4c]
shr ebp, cl
cmp edx, eax
mov eax, dword [esp + 8]
cmovne ebp, edx
mov edx, esi
cmp eax, 0x81b95e3f
je 0x4d3e95
cmp eax, 0x81b95ae2
jne 0x4d3ea0
mov dword [esp + 8], 0x80000000
jmp 0x4d3ea0
imul eax, dword [esp], 0x81b95e3f
mov dword [esp + 8], eax
imul eax, dword [esp + 0x20], 0x95f
mov esi, dword [esp + 0x1c]
cmp edi, 0x95f
mov ecx, dword [esp + 0x38]
cmovne eax, edi
mov edi, 0x804
mov dword [esp + 0x48], eax
mov eax, 0x804
shl edi, cl
cmp esi, eax
mov eax, dword [esp + 0x30]
cmovne edi, esi
mov esi, ebx
cmp eax, 0xfe46a690
je 0x4d3efc
cmp eax, 0xfe46abd6
je 0x4d3ef4
mov ecx, dword [esp]
cmp eax, 0xfe46b372
jne 0x4d3f05
add esp, 0xcf5
ud2
add esp, 0x1182
jmp 0x4d3f02
sub esp, 0x603
mov ecx, dword [esp]
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 + 0xc], ecx
mov ecx, dword [esp + 4]
shl ebx, cl
mov ecx, dword [esp + 0x28]
cmp edx, eax
mov eax, 0x80000000
cmovne ebx, edx
mov dword [esp + 0x40], ebx
cmp ecx, 1
cmovne eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x81ffad73
je 0x4d3f84
cmp eax, 0x81ffad15
je 0x4d3f7d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 4]
cmp eax, 0x81ffa356
jne 0x4d3f96
mov ecx, 0x81ffa356
call fcn.004015c4
mov ecx, dword [esp + 0x28]
jmp 0x4d3f96
mov eax, 0x15adff81
jmp 0x4d3f8e
mov eax, 0x81ffad73
mov ecx, dword [esp]
shl eax, cl
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 4]
cmp esi, 0x227
je 0x4dde79
cmp ebx, 0x636
mov dword [esp + 0x20], eax
je 0x4d3fbf
mov esi, ecx
cmp ebx, 0x1b5
jne 0x4d3fc8
mov ebx, 0xfffff31b
jmp 0x4d3fc8
mov ebx, 0x636
mov esi, ecx
shr ebx, cl
mov edx, 0xef1
mov ecx, dword [esp + 0x30]
mov eax, 0xef1
shr edx, cl
mov ecx, dword [esp + 0x38]
cmp ecx, eax
mov eax, dword [esp + 0x10]
cmovne edx, ecx
mov dword [esp + 0x70], edx
cmp eax, 0x54d
je 0x4d4027
mov ecx, dword [esp + 0x2c]
cmp eax, 0xa5a
je 0x4d4013
cmp eax, 0xbba
je 0x4d401d
cmp eax, 0xf22
jne 0x4d4033
mov dword [esp + 0x10], 0xdcf674
jmp 0x4d4033
mov dword [esp + 0x10], 0x5a500000
jmp 0x4d4033
mov dword [esp + 0x10], 0xfffffd20
jmp 0x4d4033
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], 0x4d050000
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4d4078
cmp eax, 0x586
je 0x4d4060
cmp eax, 0x645
je 0x4d406e
cmp eax, 0xa98
jne 0x4d4080
sub esp, 0xfd5
mov dword [esp + 0x44], 0xa98
jmp 0x4d4080
imul eax, dword [esp + 0x14], 0x586
mov dword [esp + 0x44], eax
jmp 0x4d4080
mov dword [esp + 0x44], 0xfffff7ab
jmp 0x4d4080
mov dword [esp + 0x44], 0xe9a
cmp ecx, 0xc78
jne 0x4d408e
add esp, 0x6ce
mov ecx, dword [esp + 0x34]
mov eax, 0x62060000
mov dword [esp + 0x74], edi
cmp ecx, 0x662
cmovne eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp]
cmp eax, 0xa0e
jne 0x4d40c4
mov edx, dword [esp + 0x70]
mov ecx, 0xa0e
call fcn.004015c4
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
mov dword [esp], eax
imul eax, dword [esp + 0x30], 0xf
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x50], ebx
cmp ecx, 0xf
cmovne eax, ecx
cmp edi, 0xe0090e25
mov dword [esp + 0x84], eax
je 0x4d4105
cmp edi, 0xe0090000
mov ecx, edi
jne 0x4d4118
imul ecx, dword [esp + 0x40], 0xe0090000
jmp 0x4d4118
mov eax, esi
sar eax, 0x1f
add eax, 0x80000000
imul ecx, esi, 0xe0090e25
cmovo ecx, eax
mov edx, dword [esp + 4]
mov dword [esp + 0x14], ecx
imul eax, ecx, 0xfb0
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x60], 0xe9a
mov dword [esp + 0x78], 0x432
mov dword [esp + 0x38], 0x1aa
mov dword [esp + 0x54], 0xcf5
mov dword [esp + 0x34], 0xe9a
mov dword [esp + 0x4c], 0xe9a
add edx, 0xe9a
cmp ecx, 0xfb0
cmovne eax, ecx
mov ebp, edx
mov ecx, 0xae2
mov edx, 0x2ed7
mov dword [esp + 0x18], eax
mov eax, 0xe9a
sub edx, 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], ecx
jb 0x4d457a
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov dword [esp + 4], edx
mov edx, ecx
mov eax, 0x80000000
mov edi, dword [esp + 0x34]
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 + 0x3c], ecx
setns al
add eax, esi
mov esi, dword [esp + 8]
sub edi, ecx
mov ecx, ebp
cmovo edi, eax
mov dword [esp + 0x34], edi
mov edi, 0x80000000
lea eax, [ebp + esi]
mov ebp, dword [esp + 0x18]
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 + 0x10]
mov dword [esp + 0x1c], ecx
shl esi, cl
mov ecx, dword [esp + 0x70]
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 + 0x20]
add eax, ecx
sar eax, 0x1f
xor eax, edx
add ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
cmovo ecx, eax
xor eax, eax
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x48]
cmp ecx, edx
setns al
add eax, edi
sub ecx, edx
mov edi, dword [esp + 0x24]
mov edx, 0x80000000
cmovo ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
lea eax, [edi + ecx]
sar eax, 0x1f
xor eax, edx
add edi, ecx
mov ecx, dword [esp + 0x54]
cmovo edi, eax
sar edi, cl
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x74]
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 + 0x20]
mov ecx, edi
mov dword [esp + 8], eax
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov dword [esp + 0x4c], 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 + 0x44]
lea ecx, [eax + ecx*2]
add ecx, ebx
call fcn.004015c4
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov edx, ebx
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov edi, dword [esp + 0x28]
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 + 0x54]
sar edi, cl
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x20]
mov ecx, edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
call fcn.004015c4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
mov ecx, ebx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
shl eax, cl
add edi, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x50], eax
shl esi, cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x60]
mov edx, esi
call fcn.004015c4
mov ecx, dword [esp + 0x14]
imul eax, edi
mov edx, edi
bswap ebp
mov dword [esp + 0x34], eax
mov eax, edi
mov dword [esp + 0x10], edx
add ecx, esi
mov esi, dword [esp]
xor eax, ecx
shr eax, 0x1f
bswap esi
imul esi, edi
mov edi, 0x7fffffff
add eax, edi
imul ecx, edx
mov edx, dword [esp + 0x38]
mov edi, 0xf0f0f0f
bswap esi
cmovo ecx, eax
mov eax, ebp
mov dword [esp], esi
mov dword [esp + 0x60], 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 + 0x78]
and ecx, edi
mov edi, 0x33333333
mov dword [esp + 0x14], 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 + 0x3c]
mov ecx, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x20]
sar edx, cl
mov ecx, dword [esp + 0x60]
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 + 0x78], ebp
lea edi, [edi + ecx*2]
mov ecx, dword [esp + 0x60]
shl edi, cl
mov ecx, edx
and edx, eax
shr ecx, 4
shl edx, 4
mov dword [esp + 0x38], 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 + 0x14]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x48]
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 + 0x54]
bswap eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
lea eax, [edi + edx*2]
mov edx, dword [esp + 4]
mov edi, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ebp, eax
jmp 0x4d418a
cmp ebx, 0xf
mov dword [esp + 0x3c], esi
je 0x4d45ac
cmp ebx, 0x4a7
mov edx, ebp
je 0x4d45bd
mov edi, ebx
cmp ebx, 0x4b
je 0x4ddf71
cmp edi, 0xc9f
mov dword [esp + 0x68], edi
jne 0x4d45cc
sub esp, 0x1310
ud2
push 0xf
pop esi
mov ecx, dword [esp + 0x40]
shr esi, cl
mov edx, ebp
mov dword [esp + 0x68], esi
jmp 0x4d45cc
mov ecx, edx
mov edx, 0x4a7
shl edx, cl
mov dword [esp + 0x68], edx
mov edx, ecx
mov edi, dword [esp + 0x74]
cmp edx, 0xaeac2753
mov esi, eax
je 0x4d462f
cmp edx, 0xaeac2e91
je 0x4d460c
cmp edx, 0xaeac3120
mov eax, edx
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x84]
je 0x4d4616
cmp eax, 0xaeac328c
mov dword [esp + 4], eax
jne 0x4d464c
mov dword [esp + 4], 0x314c3575
jmp 0x4d464c
mov dword [esp + 4], 0x912eacae
jmp 0x4d4641
mov eax, edx
sar eax, 0x1f
add eax, 0x80000000
imul ecx, edx, 0xaeac3120
cmovo ecx, eax
mov dword [esp + 4], ecx
jmp 0x4d464c
mov edx, dword [esp + 0x58]
mov ecx, 0xaeac2753
call fcn.004015c4
mov dword [esp + 4], eax
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + 0x24]
cmp eax, 0x718
je 0x4d4682
cmp eax, 0x9f4
je 0x4d4671
mov ecx, dword [esp + 0x58]
cmp eax, 0xe72
jne 0x4d46a4
add esp, 0x997
ud2
mov eax, ebp
mov ecx, 0x7fffffff
add eax, 0x9f4
cmovno ecx, eax
jmp 0x4d469c
mov ebx, dword [esp + 0x4c]
mov ecx, 0x718
xor eax, eax
cmp ecx, ebx
setns al
add eax, 0x7fffffff
sub ecx, ebx
cmovo ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x58]
cmp esi, 0xaeac3346
je 0x4d46e5
cmp esi, 0xaeac3586
je 0x4d46c8
cmp esi, 0xaeac3683
jne 0x4d46f4
mov eax, dword [esp + 0x14]
lea esi, [eax - 0x5153c97d]
jmp 0x4d46f4
mov ecx, dword [esp + 0x24]
mov eax, ecx
sar eax, 0x1f
add eax, 0x80000000
imul esi, ecx, 0xaeac3586
mov ecx, dword [esp + 0x58]
cmovo esi, eax
jmp 0x4d46f4
mov esi, 0xaeac3346
mov ecx, dword [esp + 0x58]
shl esi, cl
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x1c], esi
mov esi, pe_nt_image_headers32
mov eax, ebx
neg eax
cmovno esi, ebx
cmp edx, 0x211
je 0x4d4728
mov eax, dword [esp + 0x48]
cmp edx, 0x252
jne 0x4d4731
mov eax, dword [esp + 0x30]
lea edx, [eax + 0x252]
jmp 0x4d472d
mov edx, 0x88400000
mov eax, dword [esp + 0x48]
cmp eax, 0x536
je 0x4d4759
cmp eax, 0x7fffffff
je 0x4d4760
cmp eax, 0x125
je 0x4ddf79
cmp eax, 0x611
jne 0x4d4767
sub esp, 0x10f1
ud2
mov eax, 0x6ca00000
jmp 0x4d4767
mov eax, ecx
xor eax, 0x7fffffff
test edi, edi
mov dword [esp + 0x48], eax
mov dword [esp + 8], edx
je 0x4d47c3
cmp edi, 0x9b2
je 0x4d47ab
mov edx, dword [esp + 0x78]
cmp edi, 0xb10
je 0x4d47b6
cmp edi, 0xfa4
jne 0x4d47d0
mov ecx, dword [esp + 0x24]
mov edi, 0xfa4
xor eax, eax
cmp edi, ecx
setns al
add eax, 0x7fffffff
sub edi, ecx
cmovo edi, eax
jmp 0x4d47d0
mov edx, dword [esp + 0x78]
mov edi, 0x4d900000
jmp 0x4d47d0
sub esp, 0x760
mov edi, 0xb10
jmp 0x4d47d0
xor ecx, ecx
call fcn.004015c4
mov edx, dword [esp + 0x78]
mov edi, eax
mov eax, dword [esp + 0x30]
cmp eax, 0xa0
je 0x4d480c
cmp eax, 0xaff
je 0x4d47f8
cmp eax, 0xda4
mov eax, dword [esp + 0x40]
jne 0x4d4825
mov ecx, 0xda4
sub ecx, dword [esp + 0x48]
jmp 0x4d4821
sub esp, 0xa83
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], 0xaff
jmp 0x4d4825
mov eax, dword [esp + 0x1c]
mov ecx, 0x7fffffff
add eax, 0xa0
cmovno ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], edi
test ecx, ecx
cmove ecx, dword [esp + 0x24]
cmp eax, 0x464
mov dword [esp + 0xc], ecx
je 0x4d4852
cmp eax, 0x17c
mov eax, dword [esp + 0x18]
jne 0x4d4874
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 + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x28]
cmp ecx, 1
je 0x4d48ad
cmp ecx, 5
je 0x4d48c7
cmp ecx, 0xb
je 0x4d4894
cmp ecx, 8
jne 0x4d48ce
sub esp, 0x703
ud2
push 0xb
pop eax
mov edi, esi
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
shl esi, cl
mov dword [esp + 0x28], esi
mov esi, edi
jmp 0x4d48ce
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 + 0x18]
jmp 0x4d48ca
lea ecx, [eax + 5]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x51e
je 0x4d4906
cmp ecx, 0xc28
jne 0x4d4914
mov edi, dword [esp + 8]
mov ecx, 0xc28
xor eax, eax
cmp ecx, edi
setns al
add eax, 0x7fffffff
sub ecx, edi
cmovo ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
jmp 0x4d4914
sub esp, 0xaa3
mov dword [esp + 0x2c], 0x51e
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x52
je 0x4d494a
cmp ecx, 0x25b
je 0x4d493d
cmp ecx, 0x7fffffff
jne 0x4d4952
mov edi, 0x7fffffff
mov ecx, dword [esp]
shl edi, cl
mov dword [esp + 0x3c], edi
jmp 0x4d4952
imul ecx, dword [esp], 0x25b
mov dword [esp + 0x3c], ecx
jmp 0x4d4952
mov dword [esp + 0x3c], 0x52000000
mov ecx, dword [esp + 0x50]
cmp ecx, 0xec
je 0x4d4971
cmp ecx, 0x38f
jne 0x4d497c
add eax, 0x38f
mov dword [esp + 0x50], eax
jmp 0x4d497c
mov ecx, 0xec
sub ecx, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x70]
cmp eax, 0xae2
je 0x4d4996
cmp eax, 0xaa4
jne 0x4d49a5
add esp, 0xcfd
ud2
mov eax, 0xae2
mov ecx, dword [esp + 0x54]
shl eax, cl
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x10]
cmp eax, 0x2a2
je 0x4d49d4
cmp eax, 0x3e1a0c82
jne 0x4d49dc
mov ecx, dword [esp + 0x54]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x3e1a0c82
cmovo ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4d49dc
mov dword [esp + 0x10], 0x45400000
mov ecx, dword [esp + 0x44]
cmp ecx, 1
je 0x4d4a46
mov eax, dword [esp]
cmp ecx, 4
je 0x4d4a2e
mov ebp, dword [esp + 0x58]
cmp ecx, 0xb
je 0x4d4a3c
cmp ecx, 0x10
jne 0x4d4a5a
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]
cmovae ebp, ecx
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x58]
jmp 0x4d4a5a
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x44], 0x20000000
jmp 0x4d4a5a
mov dword [esp + 0x44], 0xb000000
jmp 0x4d4a5a
xor eax, eax
mov ecx, dword [esp + 0xc]
mov ebp, dword [esp + 0x58]
inc eax
shl eax, cl
mov dword [esp + 0x44], eax
mov eax, dword [esp]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x84]
cmp esi, 1
je 0x4d4a9a
cmp esi, 4
jne 0x4d4a9c
mov esi, dword [esp + 0x44]
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]
cmovae esi, ecx
jmp 0x4d4a9c
xor esi, esi
cmp ebp, 0x80100001
je 0x4d4ade
cmp ebp, 0x8010036d
je 0x4d4ac9
cmp ebp, 0x801005db
je 0x4d4ad6
cmp ebp, 0x801008f7
jne 0x4d4af8
add esp, 0x7a4
mov ebp, 0x801008f7
jmp 0x4d4af8
mov ebp, 0x8010036d
mov ecx, dword [esp + 4]
shl ebp, cl
jmp 0x4d4af8
lea ebp, [eax - 0x7feffa25]
jmp 0x4d4af8
mov ecx, dword [esp + 0x24]
mov ebp, 0x80100001
xor eax, eax
cmp ebp, ecx
setns al
add eax, 0x7fffffff
sub ebp, ecx
cmovo ebp, eax
mov ebx, dword [esp + 0x34]
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 + 0x94], edi
mov edi, dword [esp]
test edi, edi
je 0x4d4b44
mov ebp, esi
cmp edi, 0x895
jne 0x4d4b61
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edi, ecx, 0x895
cmovo edi, eax
jmp 0x4d4b61
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 + 0x60]
mov dword [esp], edi
mov eax, ebx
neg eax
jo 0x4d4ba0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x14]
cmp ebx, 0x80000114
mov esi, edx
je 0x4d4b99
cmp ebx, 0x80000b7b
jne 0x4d4bb3
add esp, 0x613
mov ebx, 0x80000b7b
jmp 0x4d4bb3
mov ebx, 0x28800001
jmp 0x4d4bb3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x14]
mov esi, edx
mov ebx, pe_nt_image_headers32
mov edx, dword [esp + 0x84]
cmp edx, 1
je 0x4d4bd7
cmp edx, 0x10
jne 0x4d4bef
mov ecx, dword [esp + 0x10]
push 0x10
pop edx
shl edx, cl
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x78]
jmp 0x4d4be8
mov eax, dword [esp + 0x50]
mov edx, 0x7fffffff
inc eax
cmovno edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x84], edx
test edi, edi
je 0x4d4c2f
cmp edi, 0x356
je 0x4d4c12
cmp edi, 0x393
je 0x4d4c1f
cmp edi, 0x4e3
jne 0x4d4c35
mov edi, 0xc7200000
jmp 0x4d4c35
sub esp, 0x8c4
mov edi, 0x356
jmp 0x4d4c35
mov ecx, dword [esp + 0x2c]
lea edi, [ecx + 0x393]
mov ecx, dword [esp + 0x38]
jmp 0x4d4c35
mov edi, dword [esp + 0x3c]
neg edi
cmp eax, 6
jne 0x4d4c40
add esp, 0x4ea
cmp dword [esp + 0x20], 0x795
jne 0x4d4c50
sub esp, 0x539
cmp esi, 0x3c5
mov dword [esp + 0x60], ebx
mov dword [esp + 0x14], edi
je 0x4d4c74
mov edx, dword [esp + 4]
cmp esi, 0x338
jne 0x4d4c86
sub esp, 0x6b3
ud2
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 4]
add edi, 0x3c5
mov dword [esp + 0x78], edi
cmp ecx, 0x165
mov dword [esp + 0x98], ebp
je 0x4d4cc3
cmp ecx, 0x449
je 0x4d4cb1
mov edi, dword [esp + 0x54]
cmp ecx, 0x1a8
jne 0x4d4cd4
sub esp, 0x11cb
ud2
mov eax, dword [esp + 0x98]
add eax, 0x449
mov dword [esp + 0x38], eax
jmp 0x4d4cd0
mov esi, 0x165
mov ecx, eax
shr esi, cl
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x94]
cmp edi, 0xf50c0000
je 0x4d4d1d
cmp edi, 0xf50c04e6
je 0x4d4d00
cmp edi, 0xf50c0a5d
jne 0x4d4d35
add esp, 0x1003
mov edi, 0xf50c0a5d
jmp 0x4d4d35
mov esi, dword [esp + 0x48]
mov ecx, 0xf50c04e6
xor ebx, ebx
cmp ecx, esi
setns bl
add ebx, 0x7fffffff
sub ecx, esi
cmovo ecx, ebx
jmp 0x4d4d33
mov esi, dword [esp]
sar esi, 0x1f
add esi, 0x80000000
imul ecx, dword [esp], 0xf50c0000
cmovo ecx, esi
mov edi, ecx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x60]
mov esi, 0x71b
mov dword [esp + 0x54], edi
mov dword [esp + 0x88], 0x234
mov dword [esp + 0x6c], 0x9bc
mov dword [esp + 0xa0], 0xf4e
mov dword [esp + 0x34], 0x660
mov dword [esp + 0x64], 0x343
mov dword [esp + 0x80], 0x22a3
mov dword [esp + 0x4c], 0xbe1
mov dword [esp + 0x5c], 0xac8
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x60], eax
sub edx, 1
mov dword [esp + 0x9c], ebp
jb 0x4d516b
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
call fcn.004015c4
bswap eax
mov edx, 0xf0f0f0f
mov ebx, dword [esp + 0x84]
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 + 0x5c]
mov edx, dword [esp + 0x60]
cmovo ecx, eax
mov dword [esp + 8], 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], edi
mov edi, dword [esp + 0xc]
sar edi, cl
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xc], edi
mov eax, ecx
sar eax, cl
mov ecx, edx
mov edx, dword [esp + 0x44]
sub esi, eax
mov dword [esp + 0x38], eax
xor eax, eax
cmp esi, edi
setns al
add eax, ebx
sub esi, edi
mov ebp, edx
mov edi, dword [esp + 4]
cmovo esi, eax
xor eax, eax
cmp edx, ecx
setns al
add eax, ebx
sub ebp, ecx
mov ecx, dword [esp + 0x14]
mov ebx, edx
mov edx, 0xf0f0f0f
cmovo ebp, eax
sub edi, dword [esp + 0x24]
mov eax, ecx
and ecx, edx
shr eax, 4
shl ecx, 4
mov dword [esp + 4], 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 + 0x28]
lea ecx, [eax + ecx*2]
sub edx, ebx
mov dword [esp + 0x28], edx
call fcn.004015c4
mov edx, dword [esp + 0x4c]
mov ecx, ebp
mov dword [esp + 0x58], eax
call fcn.004015c4
mov ecx, dword [esp + 0x54]
mov edx, edi
mov dword [esp + 0x78], eax
call fcn.004015c4
mov edx, dword [esp + 0x20]
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.004015c4
mov edx, dword [esp + 0x6c]
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 + 0x88], ecx
shl edx, cl
mov ecx, dword [esp + 0x38]
cmp edx, ecx
setns al
add eax, esi
sub edx, ecx
mov ecx, dword [esp + 0x34]
cmovo edx, eax
xor eax, eax
mov dword [esp + 0x6c], edx
mov esi, ecx
sub esi, ebx
mov ebx, dword [esp + 0x84]
cmp esi, edx
setns al
add eax, edi
sub esi, edx
cmovo esi, eax
xor eax, eax
mov edx, ebx
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x14]
cmp ebx, esi
setns al
add eax, edi
sub edx, esi
mov esi, dword [esp + 0x30]
mov edi, 0x80000000
cmovo edx, eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x48]
add edx, dword [esp + 0xa0]
lea eax, [edx + esi]
sar eax, 0x1f
xor eax, edi
add edx, esi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
cmovo edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x70]
add eax, ecx
mov ecx, edx
sar dword [esp + 0x24], cl
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
shl dword [esp + 0x1c], cl
mov ecx, dword [esp + 0x18]
sar eax, cl
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x68], eax
mov eax, edi
xor eax, ecx
shr eax, 0x1f
add eax, ebp
imul edi, ecx
mov ebp, ecx
mov ecx, dword [esp + 8]
cmovo edi, eax
mov eax, dword [esp + 0x38]
sar edx, cl
imul ebx, dword [esp + 0x50]
add esi, dword [esp + 0x98]
imul edx, dword [esp + 0x10]
bswap edi
sub eax, ebp
mov ebp, 0xf0f0f0f
sub ebx, dword [esp + 0x9c]
mov dword [esp + 0x3c], esi
add eax, dword [esp + 0x78]
bswap edx
imul edx, esi
mov dword [esp + 0x70], edx
mov edx, dword [esp + 4]
add ebx, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
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 + 0x5c]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x2c], ebx
sar esi, cl
mov ecx, ebx
shl esi, cl
mov ecx, dword [esp + 0xc]
shl dword [esp + 0x64], cl
mov ecx, dword [esp]
call fcn.004015c4
sub eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 4]
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], ebp
imul eax, edi
mov dword [esp + 0x98], ecx
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x7c], edi
mov ebp, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov eax, edi
jmp 0x4d4d9b
mov edx, dword [esp + 0x68]
mov ecx, dword [esp]
mov edi, dword [esp + 0x14]
cmp edx, 0x437
je 0x4d51cc
cmp edx, 0x833
mov ecx, edx
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 8]
je 0x4d51bc
cmp ecx, 0x3cb5b5f0
mov ecx, dword [esp]
jne 0x4d51e0
mov eax, dword [esp]
mov ecx, dword [esp]
mov edx, 0x7fffffff
add eax, 0x3cb5b5f0
cmovno edx, eax
mov dword [esp + 0x68], edx
jmp 0x4d51dc
mov ecx, 0x833
sub ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp]
jmp 0x4d51e0
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x68], 0xec200000
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x60]
cmp ebx, 0x24b
je 0x4d520d
cmp ebx, 0x777
je 0x4d5204
cmp ebx, 0xd7
jne 0x4d5216
add esp, 0x8e3
ud2
mov ebx, 0x777
shr ebx, cl
jmp 0x4d5216
mov ebx, 0x24b
mov ecx, eax
shl ebx, cl
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ebx
test eax, eax
je 0x4d5255
cmp eax, 0x7c6
je 0x4d523a
cmp eax, 0xd03
jne 0x4d525e
mov dword [esp + 0x24], 0xc0b00000
jmp 0x4d525e
mov ebx, edx
mov edx, dword [esp + 0xc]
mov ecx, 0x7c6
call fcn.004015c4
mov ebp, dword [esp + 0x9c]
mov edx, ebx
jmp 0x4d525a
mov eax, dword [esp]
neg eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4d5290
cmp eax, 0x32c
je 0x4d5298
cmp eax, 0x42f
je 0x4d5283
cmp eax, 0x27b
jne 0x4d529d
sub esp, 0x708
ud2
add esp, 0x6ff
mov eax, 0x42f
jmp 0x4d529d
mov eax, dword [esp + 0xc]
neg eax
jmp 0x4d529d
mov eax, 0x2c030000
cmp esi, 0x1c9
je 0x4d52cc
cmp esi, 0x1d4
je 0x4d52bf
cmp esi, 0x446
jne 0x4d52d7
imul esi, dword [esp + 0x70], 0x446
jmp 0x4d52d7
mov esi, 0x1d4
mov ecx, dword [esp + 0x18]
shr esi, cl
jmp 0x4d52d7
sub esp, 0x69d
mov esi, 0x1c9
cmp edx, 0x446
mov dword [esp + 0x1c], eax
je 0x4d52ff
cmp edx, 0x91
je 0x4ddf49
cmp edx, 0x199
jne 0x4d5319
sub esp, 0x9c7
ud2
mov ecx, dword [esp + 0x94]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, ecx, 0x446
cmovo edx, eax
mov eax, dword [esp + 0x48]
imul ebx, edi, 0x80000ded
mov dword [esp + 0x14], edi
mov edi, 0xdc800000
mov ecx, dword [esp + 0x40]
cmp eax, 0x80000ded
cmovne ebx, eax
mov eax, dword [esp + 0x74]
cmp eax, 0x13b
cmovne edi, eax
mov eax, dword [esp + 0x30]
cmp eax, 0x8000004d
je 0x4d5363
cmp eax, 0x80000f4d
jne 0x4d5371
mov eax, 0x80000f4d
shl eax, cl
mov dword [esp + 0x30], eax
jmp 0x4d5371
sub esp, 0x12e9
mov dword [esp + 0x30], 0x8000004d
mov eax, dword [esp + 0xc]
mov dword [esp + 8], edx
mov dword [esp + 0x7c], esi
test eax, eax
je 0x4d53e6
cmp eax, 0x1b4
je 0x4d53b4
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
cmp eax, 0x2b7
je 0x4d53be
cmp eax, 0xb7d
jne 0x4d5401
mov ecx, dword [esp + 0x58]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xb7d
jmp 0x4d53d5
imul eax, dword [esp + 0x58], 0x1b4
jmp 0x4d53f5
mov esi, dword [esp + 0x4c]
mov ecx, 0x2b7
xor eax, eax
cmp ecx, esi
setns al
add eax, 0x7fffffff
sub ecx, esi
cmovo ecx, eax
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x40]
jmp 0x4d5401
mov edx, dword [esp + 0x70]
xor ecx, ecx
call fcn.004015c4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
cmp ecx, 0xb14
je 0x4d541c
cmp ecx, 0xf16
jne 0x4d5437
mov ecx, 0xf16
sub ecx, dword [esp + 0x68]
jmp 0x4d5437
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x2c]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xb14
cmovo ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x90]
cmp edx, 0xfff74d45
je 0x4d545c
cmp edx, 0xfff75202
jne 0x4d5477
imul edx, dword [esp + 0xc], 0xfff75202
jmp 0x4d5477
mov edx, dword [esp + 0x44]
mov ecx, 0xfff74d45
call fcn.004015c4
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x2c]
mov edx, eax
cmp esi, 0xb03fc080
je 0x4d54cd
cmp esi, 0xb03fc4e8
je 0x4d549e
cmp esi, 0xb03fcb1f
je 0x4d54c0
cmp esi, 0xb03fcdb8
jne 0x4d54d8
mov esi, 0x1db3fc0d
jmp 0x4d54d8
mov ecx, dword [esp]
mov esi, 0xb03fc4e8
xor eax, eax
cmp esi, ecx
setns al
add eax, 0x7fffffff
sub esi, ecx
mov ecx, dword [esp + 0x90]
cmovo esi, eax
jmp 0x4d54d8
add esp, 0xd2f
mov esi, 0xb03fcb1f
jmp 0x4d54d8
imul esi, dword [esp + 0xa0], 0xb03fc080
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
cmp eax, 0x4c1
je 0x4d5528
cmp eax, 0x6ed
je 0x4d550f
cmp eax, 0x434a4dd4
jne 0x4d553f
mov ecx, 0x434a4dd4
mov edx, ebp
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
jmp 0x4d553f
mov ebp, dword [esp + 0x54]
mov ecx, 0x6ed
xor eax, eax
cmp ecx, ebp
setns al
add eax, 0x7fffffff
sub ecx, ebp
jmp 0x4d5538
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x4c1
cmovo ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xb4], ebx
mov eax, ecx
neg eax
jo 0x4d5598
cmp ecx, 0x8000014b
je 0x4d5576
cmp ecx, 0x8000026f
je 0x4d5584
cmp ecx, 0x8000046d
mov ecx, dword [esp + 0x70]
jne 0x4d55a7
mov dword [esp + 0x50], 0xb6200001
jmp 0x4d55a7
imul eax, dword [esp + 4], 0x8000014b
mov ecx, dword [esp + 0x70]
jmp 0x4d55a3
sub esp, 0xc73
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x50], 0x8000026f
jmp 0x4d55a7
mov ecx, dword [esp + 0x70]
mov eax, 0x80000000
sar eax, cl
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
cmp ecx, 0x52e
mov ebx, 0x2e050000
cmovne ebx, ecx
cmp eax, 0x3af
je 0x4d55e3
cmp eax, 0x6d6c2753
jne 0x4d55f1
mov ecx, dword [esp]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x6d6c2753
cmovo ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4d55f1
sub esp, 0x959
mov dword [esp + 0x10], 0x3af
mov eax, dword [esp + 0x90]
mov dword [esp + 0xa4], ebx
cmp eax, 0x3e2
je 0x4d5654
mov ebx, dword [esp + 0x8c]
cmp eax, 0x658
je 0x4d5633
cmp eax, 0xef0
je 0x4d5647
mov ecx, dword [esp + 0x58]
cmp eax, 0x6d6c2753
jne 0x4d5678
mov eax, 0x6d6c2753
mov ecx, dword [esp + 4]
shr eax, cl
jmp 0x4d5674
mov edx, dword [esp + 8]
mov ecx, 0x658
call fcn.004015c4
mov edx, dword [esp + 0x28]
jmp 0x4d5674
sub esp, 0xbcb
mov eax, 0xef0
jmp 0x4d5674
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x8c]
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 + 0x98]
mov dword [esp + 0x90], eax
cmp ebp, 0xfffffc3b
je 0x4d56cd
cmp ebp, 0xfffffe31
je 0x4d56b5
mov eax, dword [esp + 0x18]
cmp ebp, 0xffffff6a
jne 0x4d56ef
add esp, 0x12dd
mov dword [esp + 0x98], 0xffffff6a
jmp 0x4d56ef
mov eax, 0xfffffe31
mov ecx, dword [esp + 0x38]
shl eax, cl
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x98], eax
jmp 0x4d56eb
mov esi, dword [esp + 4]
mov eax, esi
sar eax, 0x1f
add eax, 0x80000000
imul ebp, esi, 0xfffffc3b
cmovo ebp, eax
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x18]
cmp ecx, 0x1c
je 0x4d574b
cmp ecx, 0x23
je 0x4d5713
cmp ecx, 0x3e
je 0x4d5736
mov eax, dword [esp + 0x18]
cmp ecx, 0x80
jne 0x4d5754
mov ecx, pe_nt_image_headers32
sub ecx, eax
jmp 0x4d5754
push 0x23
pop ebx
mov ecx, dword [esp + 0x5c]
xor eax, eax
cmp ebx, ecx
setns al
add eax, 0x7fffffff
sub ebx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x8c]
cmovo ecx, eax
jmp 0x4d5745
mov eax, dword [esp + 0x14]
mov ecx, 0x7fffffff
add eax, 0x3e
cmovno ecx, eax
mov eax, dword [esp + 0x18]
jmp 0x4d5754
push 0x1c
pop ecx
sub esp, 0xde4
mov ebp, dword [esp + 0x60]
cmp ebp, 0xbb
je 0x4d5797
cmp ebp, 0x1ab
je 0x4d57a1
cmp ebp, 0x29f
je 0x4d5780
cmp ebp, 0x259
jne 0x4d57af
sub esp, 0xb9f
ud2
mov eax, dword [esp + 0x5c]
mov ebp, 0x7fffffff
add eax, 0x29f
cmovno ebp, eax
mov eax, dword [esp + 0x18]
jmp 0x4d57ab
mov dword [esp + 0x60], 0xbb000000
jmp 0x4d57af
mov esi, dword [esp + 0x14]
lea ebp, [esi + 0x1ab]
mov dword [esp + 0x60], ebp
mov ebp, dword [esp]
cmp ebp, 0x2f9
je 0x4d57f2
cmp ebp, 0x722
je 0x4d57da
cmp ebp, 0xaf8
je 0x4d57e9
cmp ebp, 0xe72
jne 0x4d580d
lea ebp, [eax + 0xe72]
jmp 0x4d580a
add esp, 0x1134
mov dword [esp], 0x722
jmp 0x4d580d
mov dword [esp], 0x1f500000
jmp 0x4d580d
mov eax, dword [esp + 0xa4]
mov ebp, 0x7fffffff
add eax, 0x2f9
cmovno ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp], ebp
cmp ebx, 0x1c
je 0x4d582e
cmp ebx, 0x38
je 0x4d5827
cmp ebx, 0x69
jne 0x4d5843
sub esp, 0x104f
push 0x69
pop ebx
jmp 0x4d5843
push 0x38
pop ebx
sub ebx, edx
jmp 0x4d5843
mov ebx, ecx
push 0x1c
pop ecx
mov edx, dword [esp]
call fcn.004015c4
mov ecx, ebx
mov ebx, eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x58], ecx
cmp esi, 0x6a1
je 0x4d588f
cmp esi, 0x758
je 0x4d5872
cmp esi, 0xc0a
jne 0x4d589a
mov ecx, dword [esp + 0x6c]
lea esi, [ecx + 0xc0a]
jmp 0x4d589a
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 + 0x18]
jmp 0x4d589a
mov esi, 0x6a1
mov ecx, dword [esp + 0x60]
shl esi, cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], esi
cmp ecx, 0x3ef
je 0x4d58c5
cmp ecx, 0x139
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
jne 0x4d58e3
sub esp, 0x971
ud2
mov edx, dword [esp + 0x34]
mov ecx, 0x3ef
call fcn.004015c4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
cmp eax, 0x408
je 0x4d5909
cmp eax, 0x794
je 0x4d5900
cmp eax, 0x4fc03f80
jne 0x4d5914
lea eax, [ecx + 0x4fc03f80]
jmp 0x4d5914
mov eax, 0x794
sub eax, ecx
jmp 0x4d5914
mov eax, 0x408
add esp, 0x926
cmp ebp, 0xfffffc3b
je 0x4d5941
cmp ebp, 0xfffffcb3
jne 0x4d5949
mov edx, dword [esp + 0x14]
mov ecx, eax
mov eax, edx
sar eax, 0x1f
add eax, 0x80000000
imul ebp, edx, 0xfffffcb3
cmovo ebp, eax
mov eax, ecx
jmp 0x4d5949
imul ebp, dword [esp + 0x20], 0xfffffc3b
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x18], eax
cmp ecx, 0xfffffc3b
je 0x4d598f
cmp ecx, 0xfffffc92
je 0x4d5982
cmp ecx, 0xfffffde1
mov ecx, dword [esp + 0xc]
jne 0x4d59a6
mov eax, 0xfffffde1
sub eax, dword [esp + 0x64]
mov dword [esp + 0x94], eax
jmp 0x4d59a6
mov dword [esp + 0x94], 0x92fcffff
jmp 0x4d59a2
mov ecx, 0xfffffc3b
mov edx, edi
call fcn.004015c4
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x9c]
mov edx, 0x7fffffff
mov eax, esi
sub eax, 0xffffff80
cmovno edx, eax
mov eax, dword [esp + 0x38]
cmp eax, 0x80
cmovne edx, eax
cmp dword [esp + 0x54], 0x32
mov dword [esp + 0xa8], edx
je 0x4dde81
mov eax, dword [esp + 0x6c]
cmp esi, 0xee9
je 0x4d5a02
cmp esi, 0x63c
jne 0x4d5a23
mov edx, dword [esp + 0x3c]
mov eax, edx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, edx, 0x63c
jmp 0x4d5a15
mov edx, 0xee9
xor eax, eax
cmp edx, ebx
setns al
add eax, 0x7fffffff
sub edx, ebx
cmovo edx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x9c], edx
cmp eax, 0x208
mov edx, eax
mov eax, dword [esp]
mov dword [esp + 0xb0], edi
je 0x4d5a6a
cmp edx, 0xdfc
je 0x4d5a62
cmp edx, 0x4fc03f80
mov eax, edx
jne 0x4d5a6f
mov edx, 0x4fc03f80
xor eax, eax
cmp edx, ecx
setns al
add eax, 0x7fffffff
sub edx, ecx
cmovo edx, eax
mov eax, edx
jmp 0x4d5a6f
imul eax, eax, 0xdfc
jmp 0x4d5a6f
mov eax, 0x10400000
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x6c], eax
cmp edi, 0xe1
je 0x4d5ace
cmp edi, 0x3cd
je 0x4d5ab9
cmp edi, 0x74b
je 0x4d5ac6
cmp edi, 0x6d6c2753
jne 0x4d5ad3
mov ecx, dword [esp + 0xa4]
mov edi, 0x6d6c2753
xor eax, eax
cmp edi, ecx
setns al
add eax, 0x7fffffff
sub edi, ecx
cmovo edi, eax
jmp 0x4d5ad3
add esp, 0x1170
mov edi, 0x3cd
jmp 0x4d5ad3
imul edi, ebx, 0x74b
jmp 0x4d5ad3
mov edi, 0xe1000000
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], ebp
mov dword [esp + 0xa0], edi
test eax, eax
je 0x4d5b28
cmp eax, 0x1ad
je 0x4d5b14
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x64]
cmp eax, 0x23e
je 0x4d5b21
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
cmp eax, 0xbee
jne 0x4d5b46
mov eax, 0xbee
sub eax, esi
jmp 0x4d5b46
mov eax, 0x1ad
mov ecx, dword [esp + 0x30]
shr eax, cl
jmp 0x4d5b36
mov eax, 0x3e020000
jmp 0x4d5b3e
mov edx, dword [esp + 0xb0]
xor ecx, ecx
call fcn.004015c4
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
cmp ecx, 0xc18
je 0x4d5b69
cmp ecx, 0x303fbc3a
jne 0x4d5b8d
mov esi, 0x303fbc3a
mov ecx, dword [esp + 0x3c]
shl esi, cl
mov ecx, esi
mov esi, dword [esp + 0x4c]
jmp 0x4d5b8d
mov ecx, dword [esp]
mov esi, 0xc18
xor edx, edx
cmp esi, ecx
setns dl
add edx, 0x7fffffff
sub esi, ecx
mov ecx, esi
mov esi, dword [esp + 0x4c]
cmovo ecx, edx
mov edx, dword [esp + 0x64]
cmp edx, 0x6e
je 0x4d5ba7
cmp edx, 0xf0
jne 0x4d5bac
mov edx, 0xf0
sub esp, 0x8ea
jmp 0x4d5bac
mov edx, 0x76000000
cmp esi, 0x389
mov dword [esp + 0x64], edx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], eax
je 0x4d5c04
cmp esi, 0xe17
je 0x4d5bf0
cmp esi, 0xfb0
je 0x4d5bfb
mov eax, dword [esp + 0x14]
cmp esi, 0xff2
jne 0x4d5c13
sub esp, 0xc1c
mov esi, 0xff2
jmp 0x4d5c13
mov esi, 0xe17
mov ecx, edx
shl esi, cl
jmp 0x4d5c0f
mov esi, 0xfb0
sub esi, ebp
jmp 0x4d5c0f
mov esi, 0x389
add esp, 0x10a9
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x4c], esi
mov edi, 0x17d
mov esi, 0x78a
mov ebp, 0x17e
mov ecx, 0x57e
mov dword [esp + 0x70], 0xa8a
mov dword [esp + 0xac], 0xa6f
mov dword [esp + 0x80], 0x8a3
mov dword [esp + 0xbc], 0x6de
mov dword [esp + 0xb8], 0x397
mov dword [esp + 0xc8], 0x3286
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x88], esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0xd4], edi
sub eax, 1
mov dword [esp + 0x38], ebx
jb 0x4d62fc
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x98]
mov ebp, edi
bswap edx
bswap eax
add ebx, edx
mov dword [esp + 0x7c], edx
mov edx, edi
mov edi, 0xf0f0f0f
bswap ebx
mov ecx, edx
mov edx, dword [esp + 0x50]
imul ebx, dword [esp + 0xa4]
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 + 0xb4], 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 + 0x20]
imul ecx, edx
mov edx, 0x80000000
sub ecx, esi
lea eax, [ebp + ecx]
mov dword [esp + 0xc0], ecx
sar eax, 0x1f
xor eax, edx
add ebp, ecx
mov edx, ecx
mov ecx, edi
mov edi, dword [esp + 0x34]
cmovo ebp, eax
shl ebx, cl
mov ecx, edx
xor eax, eax
mov edx, 0x7fffffff
sar ebx, cl
mov ecx, 0x7fffffff
mov dword [esp + 0x2c], ebp
cmp ebx, edi
setns al
add eax, ecx
sub ebx, edi
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x4c]
cmovo ebx, eax
mov dword [esp + 0x58], ebx
mov ebx, 0x80000000
shl edi, cl
mov ecx, dword [esp + 0x74]
lea eax, [edi + ecx]
sar eax, 0x1f
xor eax, ebx
add edi, ecx
mov ecx, dword [esp + 0x48]
cmovo edi, eax
xor eax, eax
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x18]
cmp edi, ecx
setns al
add eax, edx
sub edi, ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
cmovo edi, eax
mov dword [esp + 0x18], 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 + 0x8c]
add eax, eax
mov dword [esp + 0x24], 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 + 0x60]
mov esi, 0x80000000
cmovo ecx, eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x70]
lea eax, [edx + ecx]
sar eax, 0x1f
xor eax, esi
add edx, ecx
mov ecx, dword [esp + 0x28]
cmovo edx, eax
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xb0]
imul edx, dword [esp + 0xbc]
sar edx, cl
mov ecx, dword [esp + 0xb8]
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 + 0x90]
lea ecx, [eax + ecx*2]
mov dword [esp + 0xb0], ecx
lea eax, [edx + ecx]
sar eax, 0x1f
xor eax, edi
add edx, ecx
mov ecx, dword [esp + 0x30]
cmovo edx, eax
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0xa4]
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]
lea ecx, [eax + ecx*2]
lea eax, [ecx + edx]
sar eax, 0x1f
xor eax, edi
add ecx, edx
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x68]
cmovo ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
add edx, dword [esp + 0x3c]
shl edi, cl
mov ecx, dword [esp + 0x28]
sub edi, dword [esp + 0x78]
sar edx, cl
bswap edx
mov dword [esp + 0x68], 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 + 0xc]
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 + 0x84]
lea ecx, [ecx + edx*2]
mov edx, dword [esp + 0x10]
sub ecx, dword [esp + 0x14]
sub edx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 8]
bswap edx
bswap ecx
imul ecx, esi
mov dword [esp + 8], 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 + 0x40]
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 + 0xc], eax
mov eax, ecx
shr ecx, 1
add ebx, dword [esp + 0x34]
and eax, edx
and ecx, edx
mov edx, dword [esp + 0x38]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xa8], eax
call fcn.004015c4
mov ecx, dword [esp]
mov edx, ebx
mov dword [esp + 0x60], eax
call fcn.004015c4
mov dword [esp], eax
mov eax, esi
mov ecx, 0xf0f0f0f
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], 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 + 4]
shl edi, cl
mov ecx, dword [esp + 0x80]
lea ebp, [esi + eax*4]
mov esi, dword [esp + 0x44]
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 + 0x20]
mov edi, 0x7fffffff
sub esi, dword [esp + 0x78]
sub eax, dword [esp + 0xc0]
mov dword [esp + 0x44], esi
mov esi, 0x55555555
mov dword [esp + 0x18], eax
mov eax, edx
xor eax, ecx
shr eax, 0x1f
add eax, edi
mov edi, dword [esp + 0x54]
imul edx, ecx
mov ecx, dword [esp + 0xd4]
cmovo edx, eax
bswap edx
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x70]
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 + 0x24]
shl eax, cl
lea ecx, [ebp + ebx*2]
mov dword [esp + 0x84], ecx
mov ecx, eax
call fcn.004015c4
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x54], eax
mov edx, 0x7fffffff
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x64]
mov eax, ecx
xor eax, ebp
shr eax, 0x1f
add eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x68]
imul edx, ebp
cmovo edx, eax
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x34]
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 + 0x44]
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 + 0x4c]
mov ecx, edx
shl edi, cl
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x64], edi
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x2c]
imul eax, esi
mov esi, dword [esp + 0x7c]
bswap ecx
mov dword [esp + 0x6c], ecx
sar eax, cl
mov ecx, ebx
shl edx, cl
mov dword [esp + 0x4c], eax
mov ecx, 0x7fffffff
mov eax, edx
xor eax, ebp
shr eax, 0x1f
add eax, ecx
imul edx, ebp
mov ecx, dword [esp + 0x78]
cmovo edx, eax
mov eax, dword [esp + 0x90]
add esi, ecx
add edx, eax
mov ecx, edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x70]
shl esi, cl
mov ecx, eax
shl ebp, cl
mov ecx, ebx
mov ebx, 0x7fffffff
mov dword [esp + 0xbc], ebp
mov ebp, esi
mov esi, dword [esp + 0xb8]
sub esi, edx
sub edx, esi
mov dword [esp + 0xb8], esi
sar edx, cl
mov ecx, edx
xor ecx, esi
shr ecx, 0x1f
add ecx, ebx
imul edx, esi
mov esi, dword [esp + 0xc0]
cmovo edx, ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x98], esi
bswap ecx
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x20], ecx
mov ecx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x24]
lea ecx, [ecx + eax]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x1c], edx
jmp 0x4d5c75
mov eax, dword [esp + 0x68]
cmp eax, 0xc0e82000
je 0x4d635a
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0x24]
cmp eax, 0xc0e82b11
je 0x4d6346
cmp eax, 0xc0e82fb9
je 0x4d6350
cmp eax, 0xc0e83006
jne 0x4d637d
mov eax, dword [esp + 0x38]
mov ecx, 0x80000000
add eax, 0xc0e83006
cmovno ecx, eax
mov dword [esp + 0x68], ecx
jmp 0x4d637d
mov dword [esp + 0x68], 0x88d41703
jmp 0x4d637d
mov dword [esp + 0x68], 0xb92fe8c0
jmp 0x4d637d
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0x24]
add eax, 0xc0e82000
mov dword [esp + 0x68], eax
cmp ebx, 1
je 0x4d639b
cmp ebx, 4
jne 0x4d63a4
mov eax, dword [esp + 0xac]
mov ebx, 0x7fffffff
add eax, 4
cmovno ebx, eax
jmp 0x4d63a4
xor ebx, ebx
sub esp, 0x13b7
inc ebx
mov eax, edx
neg eax
jo 0x4d6401
cmp edx, 0x800007f3
je 0x4d63d8
cmp edx, 0x80000cfe
je 0x4d63f4
cmp edx, 0x80000e9c
jne 0x4d640b
mov edx, dword [esp + 0x30]
mov ecx, 0x80000e9c
call fcn.004015c4
mov ebp, dword [esp + 8]
mov edx, eax
jmp 0x4d640b
mov ecx, dword [esp + 0x9c]
mov eax, ecx
sar eax, 0x1f
add eax, 0x80000000
imul edx, ecx, 0x800007f3
cmovo edx, eax
jmp 0x4d640b
mov edx, 0x80000cfe
sub esp, 0x1370
jmp 0x4d640b
mov edx, dword [esp + 0x88]
shl edx, 0x1f
mov eax, dword [esp + 0x7c]
cmp eax, 0x13
je 0x4d6439
cmp eax, 0x64f
je 0x4d642d
cmp eax, 0x773
jne 0x4d6441
mov eax, dword [esp + 0x5c]
add eax, 0x773
jmp 0x4d6433
imul eax, ebx, 0x64f
mov dword [esp + 0x7c], eax
jmp 0x4d6441
mov dword [esp + 0x7c], 0x13000000
mov ecx, dword [esp + 0x54]
cmp ebp, 0xeecde483
je 0x4d646e
cmp ebp, 0xeecdeee9
je 0x4d6466
cmp ebp, 0xeecdf3f7
jne 0x4d6473
mov ebp, 0xeecdf3f7
shl ebp, cl
jmp 0x4d6473
lea ebp, [edx - 0x11321117]
jmp 0x4d6473
mov ebp, 0xc127b377
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x4d64ae
cmp eax, 0x8cc
je 0x4d649b
cmp eax, 0xc12
jne 0x4d64dc
imul eax, ebx, 0xc12
mov dword [esp + 0xb4], eax
jmp 0x4d64dc
sub esp, 0x507
mov dword [esp + 0xb4], 0x8cc
jmp 0x4d64dc
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0x30]
xor eax, eax
mov ecx, esi
neg ecx
mov ecx, esi
mov esi, dword [esp + 0xb0]
setns al
add eax, 0x7fffffff
neg ecx
cmovo ecx, eax
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x50]
mov eax, 0x38c
mov edi, dword [esp + 0x30]
cmp esi, eax
lea ecx, [ecx + eax]
mov eax, 0xad6
cmovne ecx, esi
mov esi, 0x7fffffff
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
cmovno esi, ecx
cmp edi, eax
mov eax, dword [esp + 0xc]
cmovne esi, edi
cmp eax, 1
je 0x4d6540
cmp eax, 6
je 0x4d6531
cmp eax, 0xf
mov eax, dword [esp + 0x40]
jne 0x4d655c
mov dword [esp + 0xc], 0xf000000
jmp 0x4d655c
push 6
pop eax
mov dword [esp + 0xc], eax
sub esp, 0x1304
jmp 0x4d6558
xor ecx, ecx
xor eax, eax
inc ecx
cmp ecx, ebp
setns al
add eax, 0x7fffffff
sub ecx, ebp
cmovo ecx, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x40]
cmp eax, 0xa91
mov dword [esp + 0x24], edx
je 0x4d65bc
mov edx, dword [esp + 0x28]
cmp eax, 0xbfa
je 0x4d65a4
cmp eax, 0x303fbc38
mov eax, dword [esp + 0x2c]
jne 0x4d65d9
mov edx, dword [esp + 0x98]
mov ecx, 0x303fbc38
xor eax, eax
cmp ecx, edx
setns al
add eax, 0x7fffffff
sub ecx, edx
mov edx, dword [esp + 0x28]
cmovo ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x4d65b6
mov eax, 0xbfa
mov ecx, dword [esp + 0xa4]
shl eax, cl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
jmp 0x4d65d9
mov eax, dword [esp + 0x44]
mov ecx, 0x7fffffff
mov edx, dword [esp + 0x28]
add eax, 0xa91
cmovno ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
cmp edx, 0x44b
mov dword [esp + 8], ebp
je 0x4d6603
cmp edx, 0xf14
jne 0x4d661e
mov edx, dword [esp + 0x70]
mov ecx, 0xf14
call fcn.004015c4
mov edx, eax
mov ebp, dword [esp + 8]
jmp 0x4d661a
mov ecx, dword [esp + 0x44]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, ecx, 0x44b
cmovo edx, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
cmp eax, 0x362
mov dword [esp + 0x28], edx
mov dword [esp + 4], ebx
je 0x4d6659
cmp eax, 0x7db
je 0x4d6646
cmp eax, 0x93d
jne 0x4d6672
mov eax, 0x3d090000
jmp 0x4d6672
mov eax, ecx
mov ecx, 0x7fffffff
add eax, 0x7db
cmovno ecx, eax
mov eax, ecx
jmp 0x4d6672
mov edx, dword [esp + 0x8c]
mov ecx, 0x362
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x3c]
mov ecx, 0x800002f9
mov dword [esp + 0x2c], eax
mov dword [esp + 0xcc], esi
mov eax, 0x80000000
add esi, ecx
cmovo esi, eax
cmp edi, ecx
cmovne esi, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0xe0], esi
mov ecx, edi
neg ecx
jo 0x4d66df
mov ebx, dword [esp + 0x10]
cmp edi, 0x80000615
je 0x4d66d1
cmp edi, 0x80000945
jne 0x4d66eb
mov eax, dword [esp + 0x58]
mov ecx, 0x80000000
add eax, 0x80000945
cmovno ecx, eax
mov dword [esp + 0x50], ecx
jmp 0x4d66eb
mov eax, dword [esp + 0x9c]
add eax, 0x80000615
jmp 0x4d66e7
sub eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x98]
mov eax, ecx
neg eax
jo 0x4d6722
cmp ecx, 0x800003e6
jne 0x4d6734
mov edx, dword [esp + 0x8c]
mov ecx, 0x800003e6
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 8]
jmp 0x4d672d
mov eax, 0x80000000
mov ecx, dword [esp + 0x2c]
shl eax, cl
mov dword [esp + 0xa4], eax
mov ecx, 0xdb0
mov eax, 0xdb0
sub ecx, dword [esp + 0x80]
cmp ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x58]
cmovne eax, ebx
cmp dword [esp + 0x90], 0xf6710df2
jne 0x4d6763
add esp, 0x48d
mov ebx, dword [esp + 0x8c]
cmp esi, 0x8000000a
mov dword [esp + 0xc8], eax
je 0x4d67c5
cmp esi, 0x80000e8f
je 0x4d679e
cmp esi, 0x80000261
je 0x4d67bb
mov eax, dword [esp]
cmp esi, 0x80000028
jne 0x4d67df
imul esi, dword [esp + 0x7c], 0x80000028
jmp 0x4d67df
mov ecx, dword [esp + 0x68]
mov esi, 0x80000e8f
xor eax, eax
cmp esi, ecx
setns al
add eax, 0x7fffffff
sub esi, ecx
mov ecx, dword [esp + 0x58]
jmp 0x4d67d9
mov eax, dword [esp]
mov esi, 0x86400001
jmp 0x4d67df
mov eax, dword [esp + 0x18]
sar eax, 0x1f
add eax, 0x80000000
imul esi, dword [esp + 0x18], 0x8000000a
cmovo esi, eax
mov eax, dword [esp]
cmp ecx, 0xfffffff6
mov dword [esp + 0x98], esi
je 0x4d6813
cmp ecx, 0xfffffffe
je 0x4d6803
cmp ecx, 6
jne 0x4d6816
push 6
pop eax
mov ecx, dword [esp + 0xa4]
shr eax, cl
jmp 0x4d680c
push 0xfffffffffffffffe
pop eax
mov ecx, dword [esp + 0x44]
shl eax, cl
mov ecx, eax
mov eax, dword [esp]
jmp 0x4d6816
lea ecx, [edx - 0xa]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x9c]
cmp esi, 1
mov dword [esp + 0xa0], edi
je 0x4d687b
cmp esi, 2
je 0x4d6850
cmp esi, 0xc
je 0x4d686b
cmp esi, 0xe
mov dword [esp + 0xa0], esi
jne 0x4d687b
mov dword [esp + 0xa0], 0x70000000
jmp 0x4d687b
mov eax, dword [esp + 0x70]
mov edx, 0x7fffffff
add eax, 2
cmovno edx, eax
mov eax, dword [esp]
mov dword [esp + 0xa0], edx
jmp 0x4d687b
push 0xc
pop edx
mov dword [esp + 0xa0], edx
add esp, 0x95c
mov esi, dword [esp + 0xc]
test eax, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0xdc], esi
je 0x4d68d6
cmp eax, 0x5e2
je 0x4d68c5
cmp eax, 0xcbe
mov dword [esp + 0xdc], eax
jne 0x4d68d6
mov edx, dword [esp + 0xac]
mov ecx, 0xcbe
call fcn.004015c4
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 8]
mov dword [esp + 0xdc], eax
jmp 0x4d68d6
add esp, 0x77b
mov dword [esp + 0xdc], 0x5e2
cmp ebx, 0xa
je 0x4d6901
cmp ebx, 0x10
je 0x4d68fc
cmp ebx, 0x11
jne 0x4d6906
push 0x11
pop ecx
mov edx, dword [esp + 0x84]
call fcn.004015c4
mov ebp, dword [esp + 8]
mov ebx, eax
jmp 0x4d6906
lea ebx, [ecx + 0x10]
jmp 0x4d6906
mov ebx, 0x50000000
mov ecx, dword [esp + 0x84]
mov esi, 0x4ee
mov eax, 0x4ee
sub esi, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x14]
cmovne esi, ecx
mov dword [esp + 0xc0], esi
test eax, eax
je 0x4d696a
cmp eax, 0x4f5
je 0x4d6954
mov edx, dword [esp + 0xcc]
cmp eax, 0x923
jne 0x4d6992
sub esp, 0x79c
mov dword [esp + 0x14], 0x923
jmp 0x4d6992
mov ecx, dword [esp + 0x24]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x4f5
jmp 0x4d6984
mov edx, ebp
mov ebp, dword [esp + 0x24]
xor eax, eax
mov ecx, ebp
neg ecx
mov ecx, ebp
mov ebp, edx
setns al
add eax, 0x7fffffff
neg ecx
mov edx, dword [esp + 0xcc]
cmovo ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
cmp eax, 0xfffffffe
push 5
pop ecx
je 0x4d69d1
cmp eax, 5
je 0x4d69b4
mov ecx, dword [esp + 0x58]
cmp eax, 4
jne 0x4d69e1
mov edx, ebp
mov ebp, dword [esp + 0x1c]
xor eax, eax
cmp ecx, ebp
setns al
add eax, 0x7fffffff
sub ecx, ebp
mov ebp, edx
cmovo ecx, eax
mov eax, ecx
jmp 0x4d69dd
push 0xfffffffffffffffe
pop ecx
call fcn.004015c4
mov ebp, dword [esp + 8]
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x44], 0xb53
jne 0x4d69f1
sub esp, 0x42f
mov esi, dword [esp + 0x48]
mov dword [esp + 0x18], eax
cmp esi, 0x81c
je 0x4d6a1c
sub esp, 0xa38
ud2
add esp, 0xafa
ud2
add esp, 0x1074
ud2
sub esp, 0xbce
ud2
sub esp, 0xc13
ud2