Function at 0x4a867c
Capabilities:
Access peb ldr_data
Check http status code
Check os version
Encrypt data using speck
Get process heap flags
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x104
cmp dword [ecx], 0xffffffff
call 0x4a868e
pop eax
mov dword [esp + 0x9c], eax
je 0x4afe45
mov esi, ecx
mov dword [esp + 0xc8], edx
push 0x20
pop ecx
call fcn.004016e1
xor edx, edx
mov dword [eax], 0xae9
mov dword [eax + 4], 0x6c
mov dword [eax + 8], 0xb29
mov dword [eax + 0xc], 0x128
mov dword [eax + 0x10], 0x53c
mov dword [eax + 0x14], 0x333
mov dword [eax + 0x18], 0xabc
mov dword [eax + 0x1c], 0x7e0
push 0xffffffffffffffe0
pop ecx
test ecx, ecx
je 0x4a86f6
add edx, dword [eax + ecx + 0x20]
add ecx, 4
jmp 0x4a86e9
mov edi, edx
cmp edx, 0xd8a
mov dword [esp + 0xc4], eax
jne 0x4a870d
sub esp, 0x600
push 0x38
pop ecx
call fcn.004016e1
mov edx, 0xbbc
mov ecx, 0xa8f
xor ebx, ebx
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], 0xeb4
mov dword [eax + 0xc], 0xceb
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 0xe60
mov dword [eax + 0x18], 0xe06
mov dword [eax + 0x1c], 0x26a
mov dword [eax + 0x20], 0xd6
mov dword [eax + 0x24], 0x89b
mov dword [eax + 0x28], 0x3c8
mov dword [eax + 0x2c], 0x8fd
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], 0x4a0
push 0xffffffffffffffc8
pop ecx
mov edx, edi
test ecx, ecx
je 0x4a8784
add ebx, dword [eax + ecx + 0x38]
add ecx, 4
jmp 0x4a8777
cmp edx, 0x390
je 0x4a87cc
cmp edx, 0xeb5
je 0x4a87b6
cmp edx, 0xeed
je 0x4a87bf
cmp edx, 0x32b1
jne 0x4a87d5
mov ecx, ebx
mov edx, 0x7fffffff
add ecx, 0x32b1
cmovno edx, ecx
jmp 0x4a87d5
mov edx, 0xeb5
sub edx, ebx
jmp 0x4a87d5
mov edx, 0xeed
add esp, 0x9f9
jmp 0x4a87d5
mov edx, 0x390
mov ecx, ebx
shr edx, cl
cmp ebx, 0x282
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc0], eax
je 0x4a8811
cmp ebx, 0xf5f
je 0x4a8804
mov edi, edx
cmp ebx, 0x81db
jne 0x4a881a
mov ebx, 0xdb810000
jmp 0x4a881a
mov ebx, 0xf5f
mov ecx, edx
mov edi, edx
shl ebx, cl
jmp 0x4a881a
mov ebx, 0x282
mov edi, edx
sub ebx, edx
push 8
pop ecx
call fcn.004016e1
xor esi, esi
mov dword [eax], 0xc92
mov dword [eax + 4], 0x13e
push 0xfffffffffffffff8
pop ecx
mov edx, edi
test ecx, ecx
je 0x4a8843
add esi, dword [eax + ecx + 8]
add ecx, 4
jmp 0x4a8836
cmp edx, 0x54e
mov dword [esp + 0xbc], eax
je 0x4a8861
cmp edx, 0xb48c
jne 0x4a8877
mov edx, 0x8cb40000
jmp 0x4a8877
mov edx, 0x54e
xor eax, eax
cmp edx, esi
setns al
add eax, 0x7fffffff
sub edx, esi
cmovo edx, eax
mov ecx, 0xdb810695
xor eax, eax
mov edi, 0xdb810695
cmp ecx, edx
setns al
add eax, 0x7fffffff
sub edi, edx
cmovo edi, eax
cmp ebx, ecx
cmovne edi, ebx
cmp esi, 0x580
mov dword [esp + 0x10], edi
jne 0x4a88b6
mov eax, edx
shr eax, 0x1f
add eax, 0x7fffffff
imul esi, edx, 0x580
cmovo esi, eax
mov ecx, 0x265
mov ebp, 0xa56
mov edi, 0x2f73
mov dword [esp + 4], 0x453
mov ebx, esi
sub edi, 1
jb 0x4a895e
mov esi, ebx
mov edx, dword [esp + 4]
bswap esi
lea eax, [esi + ebx]
sar eax, 0x1f
add eax, 0x80000000
add esi, ebx
cmovo esi, eax
mov eax, ecx
mov ecx, dword [esp + 0x10]
sub ecx, edx
imul ecx, eax
call fcn.004015c4
mov dword [esp + 0x10], eax
mov eax, esi
bswap ebp
mov ecx, 0xf0f0f0f
mov edx, 0x55555555
mov dword [esp + 4], ebx
xor eax, ebx
shr eax, 0x1f
add eax, 0x7fffffff
imul esi, ebx
cmovo esi, eax
mov eax, ebp
and ebp, ecx
shr eax, 4
shl ebp, 4
and eax, ecx
mov ecx, 0x33333333
or ebp, eax
mov eax, ebp
shr ebp, 2
and eax, ecx
and ebp, ecx
lea eax, [ebp + eax*4]
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
mov edx, ebx
lea ebp, [eax + ecx*2]
mov ecx, ebx
shl ebp, cl
mov ecx, ebx
jmp 0x4a88cd
mov esi, ebp
cmp edx, 0x4fb
je 0x4a89a2
cmp edx, 0xb3f
je 0x4a8982
cmp edx, 0x7fffffff
jne 0x4a89a7
mov edx, esi
xor edx, 0x7fffffff
jmp 0x4a89a7
mov edi, ecx
mov ecx, dword [esp + 0x10]
mov edx, 0xb3f
xor eax, eax
cmp edx, ecx
setns al
add eax, 0x7fffffff
sub edx, ecx
mov ecx, edi
cmovo edx, eax
jmp 0x4a89a7
mov edx, 0xfb040000
mov eax, dword [esp + 0x10]
cmp eax, 0xb4c
je 0x4a89ea
cmp eax, 0xdaa
je 0x4a89fd
cmp eax, 0xe18
je 0x4a89cf
cmp eax, 0xd5
jne 0x4a8a16
add esp, 0xab9
ud2
mov edi, ecx
mov ecx, dword [esp + 4]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xe18
cmovo ecx, eax
jmp 0x4a8a10
mov edi, ecx
mov eax, 0xb4c
mov ecx, edx
shr eax, cl
mov ecx, edi
mov dword [esp + 0x10], eax
jmp 0x4a8a16
mov eax, dword [esp + 4]
mov edi, ecx
mov ecx, 0x7fffffff
add eax, 0xdaa
cmovno ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, edi
mov eax, esi
cmp ebx, 0xfee
je 0x4a8a37
cmp ebx, 0x7fffffff
jne 0x4a8a46
mov edi, ecx
mov ebx, 0x7fffffff
mov ecx, edx
shl ebx, cl
mov ecx, edi
jmp 0x4a8a46
add eax, 0xfee
mov ebx, 0x7fffffff
cmovno ebx, eax
mov eax, esi
cmp ecx, 0x365
je 0x4a8a63
cmp ecx, 0x7fffffff
jne 0x4a8a69
mov edi, 0x7fffffff
mov ecx, eax
shl edi, cl
mov ecx, edi
jmp 0x4a8a69
lea ecx, [ebx + 0x365]
mov eax, dword [esp + 4]
mov ebp, ecx
cmp eax, 0x7fffffff
je 0x4a8a85
cmp eax, 0x959
jne 0x4a8a96
sub esp, 0x63b
ud2
mov eax, 0x7fffffff
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, ebp
mov dword [esp + 4], eax
cmp esi, 0x3c7
je 0x4a8abb
mov edi, esi
mov esi, edx
cmp edi, 0x4c1
jne 0x4a8ac8
mov eax, ecx
mov edi, 0x7fffffff
add eax, 0x4c1
cmovno edi, eax
jmp 0x4a8ac8
mov esi, edx
sub esp, 0x114e
mov edi, 0x3c7
push 0x30
pop ecx
call fcn.004016e1
xor ecx, ecx
mov dword [eax], 0x279
mov dword [eax + 4], 0x356
mov dword [eax + 8], 0x973
mov dword [eax + 0xc], 0xe1
mov dword [eax + 0x10], 0xc38
mov dword [eax + 0x14], 0x3a
mov dword [eax + 0x18], 0x6d1
mov dword [eax + 0x1c], 0xfbb
mov dword [eax + 0x20], 0xfd4
mov dword [eax + 0x24], 0xe92
mov dword [eax + 0x28], 0x573
mov dword [eax + 0x2c], 0xbbf
push 0xffffffffffffffd0
pop edx
test edx, edx
je 0x4a8b35
add ecx, dword [eax + edx + 0x30]
add edx, 4
jmp 0x4a8b28
cmp esi, 0x5c3
je 0x4a8b62
mov edx, dword [esp + 0x10]
cmp esi, 0x7fffffff
je 0x4a8b59
cmp esi, 0x282
jne 0x4a8b6d
sub esp, 0x1249
ud2
mov esi, 0x7fffffff
shr esi, cl
jmp 0x4a8b6d
mov edx, dword [esp + 0x10]
mov esi, 0x5c3
shl esi, cl
cmp edx, 0xb17
mov dword [esp + 0x20], esi
je 0x4a8b9b
cmp edx, 0xb31
je 0x4a8b91
cmp edx, 0xec5
jne 0x4a8ba9
sub esp, 0x8b3
ud2
mov dword [esp + 0x10], 0x8cd00000
jmp 0x4a8ba9
sub esp, 0xcce
mov dword [esp + 0x10], 0xb17
mov edx, ebx
neg edx
jo 0x4a8bc2
cmp ebx, 0x80000328
jne 0x4a8bc5
mov ebx, 0x80000328
sub ebx, dword [esp + 0x10]
jmp 0x4a8bc5
xor ebx, ebx
inc ebx
mov edx, dword [esp + 0x20]
cmp ebp, 0x7c7
je 0x4a8c0e
mov esi, ebp
cmp ebp, 0xa43
je 0x4a8c01
cmp esi, 0x7fffffff
jne 0x4a8c13
mov esi, dword [esp + 4]
mov edx, esi
shr edx, 0x1f
add edx, 0x7fffffff
imul ebp, esi, 0x7fffffff
cmovo ebp, edx
mov edx, dword [esp + 0x20]
jmp 0x4a8c13
sub esp, 0x1052
mov ebp, 0xa43
jmp 0x4a8c13
mov ebp, 0xc7070000
mov esi, dword [esp + 4]
mov dword [esp + 0xb8], eax
cmp esi, 0x150
je 0x4a8c48
cmp esi, 0xce9
je 0x4a8c40
mov edx, esi
cmp esi, 0x7fffffff
jne 0x4a8c57
imul edx, ecx, 0x7fffffff
jmp 0x4a8c57
lea edx, [edi + 0xce9]
jmp 0x4a8c57
mov eax, edx
mov edx, 0x7fffffff
add eax, 0x150
cmovno edx, eax
mov dword [esp + 4], edx
imul edx, ebp, 0x6df
cmp edi, 0x6df
mov eax, 0x62b9
mov esi, 0x7fffffff
mov dword [esp + 0x14], 0x770
cmovne edx, edi
mov dword [esp + 0xc], edx
add edx, eax
cmovo edx, esi
cmp ecx, eax
mov eax, dword [esp + 0x10]
cmovne edx, ecx
mov ecx, ebp
mov ebp, 0x242
mov dword [esp + 8], edx
mov edx, 0x311a
sub edx, 1
mov dword [esp], ebp
jb 0x4a8dc2
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x20]
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 8]
mov esi, 0xf0f0f0f
mov edi, 0x33333333
sar edx, cl
lea ecx, [edx + ebx]
sar ecx, 0x1f
add ecx, 0x80000000
add edx, ebx
cmovo edx, ecx
mov ecx, ebp
bswap ecx
mov dword [esp + 0x20], edx
mov ebp, ecx
and ecx, esi
shr ebp, 4
shl ecx, 4
and ebp, esi
or ecx, ebp
mov ebp, ecx
shr ecx, 2
and ebp, edi
and ecx, edi
mov edi, 0x55555555
lea ecx, [ecx + ebp*4]
mov ebp, ecx
shr ecx, 1
and ebp, edi
and ecx, edi
mov edi, 0x7fffffff
lea ebp, [ecx + ebp*2]
xor ecx, ecx
cmp ebp, edx
setns cl
add ecx, edi
sub ebp, edx
cmovo ebp, ecx
imul ebx, eax
mov eax, 0x33333333
bswap ebx
mov ecx, ebx
and ebx, esi
shr ecx, 4
shl ebx, 4
and ecx, esi
mov esi, dword [esp + 0x1c]
or ebx, ecx
mov ecx, ebx
shr ebx, 2
and ecx, eax
and ebx, eax
mov eax, 0x55555555
lea ecx, [ebx + ecx*4]
mov ebx, ecx
shr ecx, 1
and ebx, eax
and ecx, eax
mov eax, dword [esp + 0xc]
lea ebx, [ecx + ebx*2]
mov ecx, edx
mov edx, dword [esp + 4]
sar ebx, cl
xor ecx, ecx
imul ebx, esi
bswap eax
cmp eax, ebx
setns cl
add ecx, edi
sub eax, ebx
cmovo eax, ecx
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
cmp edx, eax
setns cl
add ecx, edi
sub edx, eax
cmovo edx, ecx
mov ecx, dword [esp + 8]
xor eax, eax
shl edx, cl
cmp edx, ecx
setns al
add eax, edi
sub edx, ecx
cmovo edx, eax
mov eax, dword [esp]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x10]
sub ecx, eax
imul ebp, eax
mov dword [esp + 0x14], eax
mov eax, esi
bswap ecx
mov dword [esp + 8], ecx
xor ecx, ecx
jmp 0x4a8c9e
mov ecx, dword [esp + 0x20]
cmp ecx, 0xa
jne 0x4a8de0
mov ecx, dword [esp + 8]
mov edx, ecx
shr edx, 0x1f
add edx, 0x7fffffff
imul ecx, ecx, 0xa
cmovo ecx, edx
mov ebp, dword [esp + 0xc]
cmp eax, 0xabd
mov edi, ecx
jne 0x4a8dfb
mov ecx, 0xabd
mov edx, edi
call fcn.004015c4
mov ecx, edi
mov esi, dword [esp + 4]
mov dword [esp + 0x10], eax
xor eax, eax
mov edx, esi
neg edx
mov edx, esi
setns al
add eax, 0x7fffffff
neg esi
cmovo esi, eax
cmp edx, 0x97a9c610
mov dword [esp + 0x18], esi
je 0x4a8e5a
cmp edx, 0x97a9c463
je 0x4a8e45
cmp edx, 0x97a9c52c
je 0x4a8e52
cmp edx, 0x97a9c038
jne 0x4a8e65
imul edx, dword [esp], 0x97a9c038
jmp 0x4a8e65
add esp, 0x1252
mov edx, 0x97a9c463
jmp 0x4a8e65
lea edx, [ecx - 0x68563ad4]
jmp 0x4a8e65
sub esp, 0x5ad
mov edx, 0x97a9c610
cmp ebp, 0xffffff7f
je 0x4a8e94
cmp ebp, 0xffffff92
je 0x4a8e7e
cmp ebp, 0xffffff96
jne 0x4a8e9b
imul ebp, dword [esp + 0x10], 0xffffff96
jmp 0x4a8e9b
push 0xffffffffffffff92
pop ecx
mov esi, edx
mov edx, dword [esp + 0x10]
call fcn.004015c4
mov edx, esi
mov ecx, edi
mov ebp, eax
jmp 0x4a8e9b
mov ebp, 0xffffff7f
sub ebp, ecx
mov esi, 0xcd2
mov eax, 0xcd2
shl esi, cl
mov ecx, dword [esp + 8]
cmp ecx, eax
mov eax, dword [esp + 0x14]
cmovne esi, ecx
mov dword [esp + 8], esi
cmp eax, 0xad1
je 0x4a8ee9
cmp eax, 0xfae
je 0x4a8edf
cmp eax, 0x33080000
jne 0x4a8efb
mov esi, edx
mov ecx, 0x33080000
mov edx, ebx
call fcn.004015c4
mov edx, esi
jmp 0x4a8efb
mov eax, dword [esp]
add eax, 0xfae
jmp 0x4a8efb
mov ecx, dword [esp + 0x18]
mov eax, 0x7fffffff
add ecx, 0xad1
cmovno eax, ecx
mov ecx, dword [esp]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x14], eax
cmp ecx, 0x58b
je 0x4a8f35
cmp ecx, 0x977
je 0x4a8f2b
cmp ecx, 0x5d680000
mov eax, ecx
jne 0x4a8f3a
mov eax, 0x5d680000
mov ecx, edx
shr eax, cl
jmp 0x4a8f3a
imul eax, dword [esp + 0x10], 0x977
jmp 0x4a8f3a
mov eax, 0xd1a00000
mov ebp, edx
mov dword [esp], eax
push 0x40
pop ecx
call fcn.004016e1
mov esi, eax
xor ecx, ecx
mov dword [eax], 0xf58
mov dword [eax + 4], 0x2d1
mov dword [eax + 8], 0x4b1
mov dword [eax + 0xc], 0x246
mov dword [eax + 0x10], 0xecc
mov dword [eax + 0x14], 0x35b
mov dword [eax + 0x18], 0x73d
mov dword [eax + 0x1c], 0x6ca
mov dword [eax + 0x20], 0x8aa
mov dword [eax + 0x24], 0xe03
mov dword [eax + 0x28], 0x8ea
mov dword [eax + 0x2c], 0xc05
mov dword [eax + 0x30], 0xebe
mov dword [eax + 0x34], 0x144
mov dword [eax + 0x38], 0x373
mov dword [eax + 0x3c], 0x2b3
push 0xffffffffffffffc0
pop eax
mov edx, dword [esp + 8]
test eax, eax
je 0x4a8fce
add ecx, dword [esi + eax + 0x40]
add eax, 4
jmp 0x4a8fc1
cmp edi, 4
push 5
pop eax
mov dword [esp + 0x1c], ecx
je 0x4a900a
cmp edi, 5
mov edx, ebp
je 0x4a9004
cmp edi, 0xc
jne 0x4a9030
xor eax, eax
push 0xc
pop edi
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp edi, ebp
setns al
add eax, 0x7fffffff
sub edi, ebp
cmovo edi, eax
jmp 0x4a9030
mov edi, eax
sub edi, ecx
jmp 0x4a9030
mov edi, edx
lea eax, [edx - 0x20000000]
lea ecx, [edx*4]
mov edx, ebp
shr edi, 0x1f
add edi, 0x7fffffff
cmp eax, 0xc0000000
cmovae edi, ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4a9050
cmp eax, 0x863
jne 0x4a9054
mov eax, 0x863
mov ecx, dword [esp + 0x18]
shl eax, cl
mov dword [esp + 0x10], eax
jmp 0x4a9054
mov dword [esp + 0x10], ecx
mov ecx, 0x865
xor eax, eax
mov ebp, 0x865
cmp ecx, edx
setns al
add eax, 0x7fffffff
sub ebp, edx
cmovo ebp, eax
cmp ebx, ecx
mov ecx, dword [esp + 0x18]
cmovne ebp, ebx
imul ebx, edi, 0x68564715
mov dword [esp + 0x20], ebp
cmp ecx, 0x68564715
cmovne ebx, ecx
cmp edx, 0x97a9b8eb
je 0x4a90a8
cmp edx, 0x97a9bebb
jne 0x4a90b3
sub esp, 0x1016
mov edx, 0x97a9bebb
jmp 0x4a90b3
mov edx, 0x97a9b8eb
mov ecx, dword [esp + 8]
shl edx, cl
cmp dword [esp + 0xc], 0xffffff80
mov ebp, edi
mov dword [esp + 4], edx
jne 0x4a90d0
push 0xffffffffffffff80
pop ecx
mov edx, dword [esp + 0x10]
call fcn.004015c4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
cmp eax, 0x15474e35
je 0x4a910a
cmp eax, 0x1007
je 0x4a90f8
cmp eax, 0x91
jne 0x4a911c
mov eax, 0x89000000
jmp 0x4a911c
mov ecx, 0x1007
mov edx, ebx
call fcn.004015c4
mov ecx, dword [esp + 0x10]
jmp 0x4a911c
mov edx, dword [esp + 0x20]
mov eax, 0x7fffffff
add edx, 0x15474e35
cmovno eax, edx
mov dword [esp + 8], eax
push 0xb
pop ebx
xor edx, edx
cmp ebx, eax
setns dl
add edx, 0x7fffffff
sub ebx, eax
mov eax, dword [esp + 0x14]
cmovo ebx, edx
cmp eax, 0xb
cmovne ebx, eax
mov eax, dword [esp]
mov dword [esp + 0x14], ebx
cmp eax, 0x20a
je 0x4a919a
cmp eax, 0x5f6
je 0x4a9175
mov ebx, dword [esp + 0x18]
cmp eax, 0x66c
je 0x4a9182
cmp eax, 0xb3b
jne 0x4a91ab
add esp, 0x796
mov dword [esp], 0xb3b
jmp 0x4a91ab
mov ebx, dword [esp + 0x18]
mov dword [esp], 0x6fa00000
jmp 0x4a91ab
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, ecx, 0x66c
cmovo edx, eax
mov dword [esp], edx
jmp 0x4a91ab
add esp, 0x1355
mov ebx, dword [esp + 0x18]
mov dword [esp], 0x20a
mov eax, dword [esp + 0x1c]
cmp eax, 0x7db
je 0x4a91d7
cmp eax, 0xcd9
je 0x4a91cf
cmp eax, 0x7b12
jne 0x4a91dd
mov eax, 0x7b12
mov ecx, ebx
shl eax, cl
jmp 0x4a91dd
lea eax, [ecx + 0xcd9]
jmp 0x4a91dd
imul eax, ecx, 0x7db
mov dword [esp + 0x1c], eax
push 0x30
pop ecx
call fcn.004016e1
xor edi, edi
mov dword [eax], 0x7b5
mov dword [eax + 4], 0x961
mov dword [eax + 8], 0xcac
mov dword [eax + 0xc], 0x84e
mov dword [eax + 0x10], 0xd10
mov dword [eax + 0x14], 0xc7a
mov dword [eax + 0x18], 0x2d8
mov dword [eax + 0x1c], 0x5af
mov dword [eax + 0x20], 0xadd
mov dword [eax + 0x24], 0xe30
mov dword [eax + 0x28], 0xa13
mov dword [eax + 0x2c], 0x5cf
push 0xffffffffffffffd0
pop ecx
test ecx, ecx
je 0x4a924e
add edi, dword [eax + ecx + 0x30]
add ecx, 4
jmp 0x4a9241
mov ecx, dword [esp + 8]
mov edx, ebx
mov ebx, 0x7fffffff
add ecx, 0xe
cmovno ebx, ecx
cmp ebp, 0xe
cmovne ebx, ebp
cmp dword [esp + 0x10], 0xbfc
mov dword [esp + 0x24], ebx
je 0x4afe78
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0xc]
cmp ecx, 0x284
je 0x4a92ac
mov ebx, edx
mov edx, dword [esp + 4]
cmp ecx, 0xf48
je 0x4a92a5
cmp ecx, 0x84b
jne 0x4a92c1
add esp, 0x9a8
ud2
mov ecx, 0x480f0000
jmp 0x4a92c1
mov ebx, 0x284
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
shr ebx, cl
mov ecx, ebx
mov ebx, dword [esp + 0x18]
cmp ebx, 0x97a9b93a
mov dword [esp + 0xb4], eax
mov dword [esp + 0x20], ecx
je 0x4a9313
cmp ebx, 0x97a9bad4
je 0x4a92f3
cmp ebx, 0x97a9bc0b
je 0x4a92fa
cmp ebx, 0x97a9c89c
jne 0x4a9319
mov ebx, 0x9cc8a997
jmp 0x4a9319
mov ebx, 0x2b5d95e9
jmp 0x4a9319
mov edx, dword [esp]
mov ecx, 0x97a9bc0b
call fcn.004015c4
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
mov ebx, eax
jmp 0x4a9319
lea ebx, [ecx - 0x685646c6]
cmp edx, 0x95c
je 0x4a9366
cmp edx, 0xcc2
je 0x4a934d
cmp edx, 0xf23
je 0x4a9355
cmp edx, 0x1d600000
jne 0x4a9371
mov ecx, 0x1d600000
mov edx, ebp
call fcn.004015c4
mov ecx, dword [esp + 0x20]
mov edx, eax
jmp 0x4a9371
imul edx, ebx, 0xcc2
jmp 0x4a9371
mov eax, ecx
mov edx, 0x7fffffff
add eax, 0xf23
cmovno edx, eax
jmp 0x4a9371
sub esp, 0x7e4
mov edx, 0x95c
test ebp, ebp
je 0x4a93c1
cmp ebp, 0x1bf
je 0x4a93ad
mov edx, dword [esp + 8]
cmp ebp, 0x250
je 0x4a93b5
cmp ebp, 0xf3b
jne 0x4a93c7
mov ecx, dword [esp]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ebp, ecx, 0xf3b
mov ecx, dword [esp + 0x20]
cmovo ebp, eax
jmp 0x4a93c7
imul ebp, ebx, 0x1bf
jmp 0x4a93c3
mov eax, dword [esp + 0x14]
lea ebp, [eax + 0x250]
jmp 0x4a93c7
mov ebp, edx
mov edx, dword [esp + 8]
cmp edx, 0xc56
mov dword [esp + 0xc], ebp
je 0x4a93f8
cmp edx, 0xe2f
je 0x4a93eb
cmp edx, 0x15474e35
jne 0x4a9403
lea edx, [ecx + 0x15474e35]
jmp 0x4a9403
sub esp, 0xc2c
mov edx, 0xe2f
jmp 0x4a9403
sub esp, 0xc3d
mov edx, 0xc56
mov eax, dword [esp + 0x14]
xor ebp, ebp
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], edx
inc ebp
shl ebp, cl
cmp eax, 1
cmovne ebp, eax
mov eax, dword [esp]
cmp eax, 0x1f5
je 0x4a9450
cmp eax, 0xeb2
je 0x4a943d
cmp eax, 0xbad00
jne 0x4a9462
mov eax, dword [esp + 0x24]
add eax, 0xbad00
jmp 0x4a944b
mov edx, dword [esp + 0xc]
mov ecx, 0xeb2
call fcn.004015c4
mov dword [esp], eax
jmp 0x4a9462
mov eax, ebx
mov ecx, 0x7fffffff
add eax, 0x1f5
cmovno ecx, eax
mov dword [esp], ecx
cmp edi, 0xa59
je 0x4a9482
cmp edi, 0xdd2
jne 0x4a9488
mov edx, dword [esp + 0xc]
mov ecx, 0xdd2
call fcn.004015c4
jmp 0x4a9488
add esp, 0xafe
push 0x18
pop ecx
call fcn.004016e1
mov dword [eax], 0x8c4
mov dword [eax + 4], 0xe15
mov dword [eax + 8], 0x772
mov dword [eax + 0xc], 0xff5
mov dword [eax + 0x10], 0x2b5
mov dword [esp + 0xb0], eax
mov dword [eax + 0x14], 0x765
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a9509
cmp eax, 0x486
je 0x4a94fa
mov edi, dword [esp + 0xc]
mov ebp, dword [esp]
cmp eax, 0x508
je 0x4a9501
cmp eax, 0x67e
jne 0x4a9519
mov ecx, edi
shr ecx, 0x1f
add ecx, 0x7fffffff
imul eax, edi, 0x67e
cmovo eax, ecx
jmp 0x4a9519
mov eax, 0x86040000
jmp 0x4a9512
lea eax, [ebx + 0x508]
jmp 0x4a9519
xor ecx, ecx
mov edx, ebp
call fcn.004015c4
mov edi, dword [esp + 0xc]
mov ebp, dword [esp]
cmp ebx, 0x97a9c0e4
je 0x4a9535
mov eax, dword [esp + 8]
cmp ebx, 0x97a9bcbb
jne 0x4a9545
add esp, 0xf08
ud2
mov edx, eax
mov ecx, 0x97a9c0e4
call fcn.004015c4
mov eax, dword [esp + 8]
cmp edi, 9
jne 0x4a9558
push 9
pop ecx
mov edx, ebp
call fcn.004015c4
mov eax, dword [esp + 8]
cmp eax, 0x235
jne 0x4a9565
sub esp, 0x122d
cmp ebp, 0xb74
mov dword [esp + 0xac], esi
jne 0x4a957a
add esp, 0xea7
mov edx, 0x75e
mov ecx, 0x7dc
mov esi, 0xea1
mov edi, 0x1a0
mov eax, 0x515
mov ebp, 0x2b00
mov dword [esp + 4], 0x3a7
mov dword [esp + 8], 0x223
mov ebx, eax
sub ebp, 1
jb 0x4a967d
mov esi, dword [esp + 4]
mov dword [esp + 0x10], ebp
mov ebp, edi
mov ecx, ebx
mov dword [esp + 0x18], edx
mov edx, edi
sub ebp, ebx
mov eax, esi
sub eax, edi
sar eax, cl
mov ecx, 0x7fffffff
add ebp, eax
xor eax, eax
cmp edi, ebp
setns al
add eax, ecx
mov ecx, dword [esp + 0x18]
sub edi, ebp
cmovo edi, eax
call fcn.004015c4
mov edx, eax
xor eax, eax
mov ecx, 0x7fffffff
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x10]
cmp edx, esi
setns al
add eax, ecx
mov ecx, dword [esp + 8]
sub edx, esi
mov esi, 0xf0f0f0f
cmovo edx, 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
lea esi, [eax + ecx*2]
xor eax, eax
mov ecx, 0x7fffffff
cmp esi, edx
setns al
add eax, ecx
sub esi, edx
mov ecx, edx
cmovo esi, eax
xor ecx, ebx
mov eax, 0x7fffffff
imul edi, ebx
shr ecx, 0x1f
add esi, ebx
add ecx, eax
mov eax, ebx
sub edi, esi
mov dword [esp + 8], esi
imul eax, edx
cmovo eax, ecx
mov ecx, ebx
jmp 0x4a95a8
cmp edx, 0xf72
mov ebp, edi
mov dword [esp], ebx
mov dword [esp + 0x1c], ecx
je 0x4a96ac
cmp edx, 0x7fffffff
jne 0x4a96b7
mov edx, dword [esp + 8]
mov ecx, 0x7fffffff
call fcn.004015c4
mov ecx, dword [esp + 0x1c]
mov edx, eax
jmp 0x4a96b7
add esp, 0x5b7
mov edx, 0xf72
cmp ecx, 0xa64
jne 0x4a96c5
add esp, 0x755
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 4]
mov ecx, 0x80000ca4
mov eax, 0x80000000
add edi, ecx
cmovo edi, eax
cmp ebx, ecx
cmovne edi, ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x44], edi
cmp ebx, 0xd3542acc
je 0x4a9734
cmp ebx, 0xd3542fd3
mov edi, ebp
je 0x4a9716
cmp ebx, 0xd3543216
je 0x4a971d
cmp ebx, 0xd354334e
jne 0x4a9743
mov ebx, 0xd354334e
mov ecx, edx
sar ebx, cl
jmp 0x4a9741
mov ebx, 0xcbf42acb
jmp 0x4a9743
mov edi, edx
mov edx, dword [esp]
mov ecx, 0xd3543216
call fcn.004015c4
mov edx, edi
mov edi, ebp
mov ebx, eax
jmp 0x4a9743
mov ebx, dword [esp + 0x44]
add ebx, 0xd3542acc
cmovo ebx, eax
mov edi, ebp
cmp esi, 0xd3543062
je 0x4a975d
mov ecx, dword [esp]
cmp esi, 0xd35435de
jne 0x4a9771
mov esi, 0xde3554d3
jmp 0x4a9771
mov eax, dword [esp + 0x44]
mov ecx, dword [esp]
mov esi, 0x80000000
add eax, 0xd3543062
cmovno esi, eax
cmp edi, 0x77d
je 0x4a97bf
cmp edi, 0x803
je 0x4a9799
cmp edi, 0xbce
je 0x4a97b2
cmp edi, 0x2cabd534
jne 0x4a97c6
imul edi, esi, 0x2cabd534
jmp 0x4a97c6
mov edi, edx
mov edx, dword [esp + 0x1c]
mov ecx, 0x803
call fcn.004015c4
mov ecx, dword [esp]
mov edx, edi
mov edi, eax
jmp 0x4a97c6
add esp, 0x110f
mov edi, 0xbce
jmp 0x4a97c6
mov edi, 0x77d
sub edi, ebx
cmp ecx, 0x5d1
mov dword [esp + 8], ebx
mov dword [esp + 0x20], edi
je 0x4a9802
cmp ecx, 0x61f
je 0x4a97f5
cmp ecx, 0xef1
jne 0x4a981e
mov eax, 0xef1
mov ecx, dword [esp + 0x20]
shl eax, cl
mov ecx, eax
jmp 0x4a981e
mov ecx, 0x61f
sub esp, 0x12ed
jmp 0x4a981e
mov ecx, dword [esp + 0x1c]
mov ebx, 0x5d1
xor eax, eax
cmp ebx, ecx
setns al
add eax, 0x7fffffff
sub ebx, ecx
mov ecx, ebx
cmovo ecx, eax
mov dword [esp], ecx
mov eax, 0x798
mov ebp, 0xa51
mov ecx, 0x201
mov ebx, 0x455
mov dword [esp + 0x24], 0xeed
mov dword [esp + 0x10], 0x6e6
mov dword [esp + 0x40], 0x965
mov dword [esp + 0x30], 0x3077
sub dword [esp + 0x30], 1
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], ecx
jb 0x4a9b00
sar edx, cl
mov edi, ecx
mov ecx, edx
mov edx, esi
call fcn.004015c4
mov edx, ebp
mov ecx, eax
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 4], ebx
bswap edi
mov ebp, dword [esp + 0x10]
bswap esi
bswap edx
sar edx, cl
mov ecx, 0x7fffffff
cmp ebx, edx
mov dword [esp + 0x40], edx
setns al
mov dword [esp + 0x10], ebp
add eax, ecx
sub ebx, edx
mov ecx, dword [esp + 0x20]
cmovo ebx, eax
add edi, edx
lea eax, [edi + edx]
mov dword [esp + 0x3c], ebx
mov ebx, 0x80000000
sar eax, 0x1f
xor eax, ebx
add edi, edx
mov edx, dword [esp + 0x14]
cmovo edi, eax
mov dword [esp + 0x38], edi
mov edi, ecx
lea eax, [ecx + edx]
sar eax, 0x1f
xor eax, ebx
add edi, edx
mov edx, 0x7fffffff
cmovo edi, eax
xor eax, eax
cmp edi, ebp
setns al
add eax, edx
mov edx, dword [esp + 8]
sub edi, ebp
cmovo edi, eax
imul edx, dword [esp + 0x18]
lea eax, [edx + ecx]
sar eax, 0x1f
xor eax, ebx
add edx, ecx
mov ecx, dword [esp + 4]
cmovo edx, eax
shl edi, cl
mov ecx, dword [esp + 0x14]
lea eax, [edi + edx]
mov dword [esp + 8], edx
sar eax, 0x1f
xor eax, ebx
add edi, edx
cmovo edi, eax
lea eax, [ecx + edi]
sar eax, 0x1f
xor eax, ebx
add ecx, edi
mov ebx, 0x55555555
cmovo ecx, eax
mov eax, esi
mov dword [esp + 0x20], ecx
mov ecx, 0xf0f0f0f
shr eax, 4
and esi, ecx
and eax, ecx
mov ecx, 0x33333333
shl esi, 4
or esi, eax
mov eax, esi
shr esi, 2
and eax, ecx
and esi, ecx
lea eax, [esi + eax*4]
mov esi, 0x55555555
mov ecx, eax
shr eax, 1
and ecx, esi
and eax, esi
lea esi, [eax + ecx*2]
xor eax, eax
mov ecx, 0x7fffffff
imul esi, edx
mov edx, dword [esp]
cmp esi, edx
setns al
add eax, ecx
sub esi, edx
mov edx, dword [esp + 0x1c]
mov ecx, 0xf0f0f0f
cmovo esi, eax
mov dword [esp + 0xc], esi
mov esi, 0x33333333
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, 0x55555555
lea eax, [edx + eax*4]
mov edx, eax
shr eax, 1
and edx, ecx
and eax, ecx
mov ecx, 0xf0f0f0f
lea eax, [eax + edx*2]
sub eax, dword [esp + 0x28]
bswap eax
mov edx, eax
and eax, ecx
shr edx, 4
shl eax, 4
and edx, ecx
mov ecx, dword [esp + 0x44]
or eax, edx
mov edx, eax
shr eax, 2
and edx, esi
and eax, esi
mov esi, dword [esp + 0x24]
lea eax, [eax + edx*4]
mov edx, eax
shr eax, 1
and edx, ebx
and eax, ebx
add ecx, esi
lea eax, [eax + edx*2]
mov edx, 0x7fffffff
imul ecx, dword [esp + 0x14]
add eax, ebp
mov dword [esp + 0x1c], eax
mov eax, ecx
xor eax, ebp
shr eax, 0x1f
add eax, edx
imul ecx, ebp
mov edx, 0xf0f0f0f
cmovo ecx, eax
bswap ecx
mov eax, ecx
and ecx, edx
shr eax, 4
shl ecx, 4
and eax, edx
mov edx, 0x33333333
or ecx, eax
mov eax, ecx
shr ecx, 2
and eax, edx
and ecx, edx
lea eax, [ecx + eax*4]
mov ecx, 0x55555555
mov edx, eax
shr eax, 1
and edx, ecx
and eax, ecx
mov ecx, dword [esp]
lea eax, [eax + edx*2]
mov edx, edi
mov dword [esp + 0x44], eax
call fcn.004015c4
mov edx, dword [esp + 4]
mov ecx, eax
mov ebx, dword [esp + 0x18]
mov ebp, 0x7fffffff
bswap esi
xor ecx, edx
shr ecx, 0x1f
add ecx, ebp
imul eax, edx
mov edx, dword [esp + 0x2c]
cmovo eax, ecx
sub esi, ebx
mov ecx, dword [esp + 4]
mov dword [esp], eax
mov eax, esi
xor eax, edx
shr eax, 0x1f
add eax, ebp
imul esi, edx
mov ebp, dword [esp + 0x40]
cmovo esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x10]
sub dword [esp + 0x20], eax
shl esi, cl
mov ecx, 0x7fffffff
bswap esi
mov eax, esi
xor eax, edx
shr eax, 0x1f
add eax, ecx
imul esi, edx
mov edx, ebx
mov ebx, dword [esp + 0x3c]
cmovo esi, eax
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x38]
mov eax, esi
xor eax, ebx
shr eax, 0x1f
add eax, ecx
imul ebx, esi
mov ecx, esi
cmovo ebx, eax
mov eax, dword [esp + 0xc]
mov esi, eax
add ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], edi
jmp 0x4a9855
cmp edx, 0xe63
je 0x4a9b30
mov ecx, dword [esp + 0x20]
cmp edx, 0xf8d
jne 0x4a9b3f
mov ebp, dword [esp + 0x24]
mov edx, 0xf8d
xor eax, eax
cmp edx, ebp
setns al
add eax, 0x7fffffff
sub edx, ebp
cmovo edx, eax
jmp 0x4a9b3f
sub esp, 0x4dd
mov ecx, dword [esp + 0x20]
mov edx, 0xe63
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
cmp eax, 0xfe27d8b2
je 0x4a9b89
cmp eax, 0xfe27da87
je 0x4a9b7c
cmp eax, 0xfe27dc36
jne 0x4a9b97
mov ebp, dword [esp + 0x18]
mov edx, 0xfe27dc36
xor eax, eax
cmp edx, ebp
setns al
add eax, 0x7fffffff
sub edx, ebp
cmovo edx, eax
mov dword [esp + 0x1c], edx
jmp 0x4a9b97
mov eax, 0xfe27da87
sub eax, edx
mov dword [esp + 0x1c], eax
jmp 0x4a9b97
add esp, 0xa6d
mov dword [esp + 0x1c], 0xfe27d8b2
mov eax, dword [esp + 0x44]
cmp eax, 0x389
je 0x4a9bef
cmp eax, 0x3b7
je 0x4a9bc9
cmp eax, 0x57d
je 0x4a9bdd
cmp eax, 0x8a0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
jne 0x4a9c0a
mov dword [esp + 0x44], 0x5100000
jmp 0x4a9c0a
mov edx, dword [esp + 0x2c]
mov ecx, 0x3b7
call fcn.004015c4
mov ecx, dword [esp + 0x20]
jmp 0x4a9be5
imul eax, dword [esp + 0x24], 0x57d
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], eax
jmp 0x4a9c06
mov edx, dword [esp + 0x18]
mov ebp, 0x7fffffff
mov eax, edx
add eax, 0x389
cmovno ebp, eax
mov dword [esp + 0x44], ebp
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 8]
cmp ebp, 0x800007a8
je 0x4a9c3e
cmp ebp, 0x80000d12
jne 0x4a9c4c
mov ebp, 0x80000d12
xor eax, eax
cmp ebp, ecx
setns al
add eax, 0x7fffffff
sub ebp, ecx
cmovo ebp, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], ebp
jmp 0x4a9c4c
add esp, 0x125a
mov dword [esp + 8], 0x800007a8
cmp esi, 0x800001ea
je 0x4a9c83
cmp esi, 0x8000091b
je 0x4a9c8b
cmp esi, 0x8000097e
je 0x4a9c74
cmp esi, 0x800006b4
jne 0x4a9c96
sub esp, 0x12f0
ud2
mov esi, 0x8000097e
mov ecx, ebx
sar esi, cl
mov ecx, dword [esp + 0x20]
jmp 0x4a9c96
lea esi, [eax - 0x7ffffe16]
jmp 0x4a9c96
sub esp, 0x8da
mov esi, 0x8000091b
mov edi, dword [esp + 0x24]
mov eax, ecx
neg eax
jo 0x4a9cd6
cmp ecx, 0x80000a07
je 0x4a9ce6
cmp ecx, 0x80000e55
je 0x4a9cc0
cmp ecx, 0x80000bb1
jne 0x4a9cf1
sub esp, 0xf38
ud2
mov ecx, dword [esp + 8]
mov eax, ecx
sar eax, 0x1f
add eax, 0x80000000
imul ecx, ecx, 0x80000e55
jmp 0x4a9ce1
mov ecx, dword [esp + 0x28]
mov eax, 0x80000000
add ecx, eax
cmovo ecx, eax
jmp 0x4a9cf1
sub esp, 0xcf9
mov ecx, 0x80000a07
mov eax, dword [esp]
mov dword [esp + 0xc], esi
cmp eax, 0x836
je 0x4a9d39
cmp eax, 0xc1b
je 0x4a9d2e
mov esi, dword [esp + 0x40]
cmp eax, 0xd9f
jne 0x4a9d57
mov edx, dword [esp + 0x1c]
mov esi, 0xd9f
xor eax, eax
cmp esi, edx
setns al
add eax, 0x7fffffff
sub esi, edx
mov edx, dword [esp + 0x18]
jmp 0x4a9d4d
lea eax, [edx + 0xc1b]
mov dword [esp], eax
jmp 0x4a9d53
mov esi, dword [esp + 0x28]
mov eax, esi
shr eax, 0x1f
add eax, 0x7fffffff
imul esi, esi, 0x836
cmovo esi, eax
mov dword [esp], esi
mov esi, dword [esp + 0x40]
cmp edi, 0xfffacd2f
je 0x4a9d86
mov eax, dword [esp + 0x14]
cmp edi, 0xfffad06f
je 0x4a9d7c
cmp edi, 0xfffad425
jne 0x4a9d8f
mov edi, 0xfffad425
sub edi, esi
jmp 0x4a9d8f
imul edi, dword [esp + 0x28], 0xfffad06f
jmp 0x4a9d8f
mov eax, dword [esp + 0x14]
mov edi, 0x2fcdfaff
test eax, eax
mov dword [esp + 0x20], ecx
je 0x4a9dd7
cmp eax, 0xd6
je 0x4a9de8
mov ecx, dword [esp]
cmp eax, 0x4ab
je 0x4a9db7
cmp eax, 0x5e4
jne 0x4a9df2
add esp, 0xc8a
ud2
mov esi, 0x4ab
xor eax, eax
cmp esi, ecx
setns al
add eax, 0x7fffffff
sub esi, ecx
cmovo esi, eax
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x40]
jmp 0x4a9df2
mov edx, dword [esp + 8]
xor ecx, ecx
call fcn.004015c4
mov edx, dword [esp + 0x18]
jmp 0x4a9dee
imul eax, edi, 0xd6
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp eax, 0x316
je 0x4a9e23
cmp eax, 0x8e6
je 0x4a9e19
cmp eax, 0x510a0000
jne 0x4a9e30
imul eax, dword [esp + 8], 0x510a0000
jmp 0x4a9e2c
mov dword [esp + 0x2c], 0xe6080000
jmp 0x4a9e30
mov eax, dword [esp + 0x10]
add eax, 0x316
mov dword [esp + 0x2c], eax
cmp esi, 0x420
je 0x4a9e47
cmp esi, 0x95d
jne 0x4a9e56
mov esi, 0x5d090000
jmp 0x4a9e56
mov eax, ebx
mov esi, 0x7fffffff
add eax, 0x420
cmovno esi, eax
cmp ecx, 0x457
je 0x4a9e97
cmp ecx, 0x4d5
je 0x4a9e87
cmp ecx, 0xdf7
jne 0x4a9ea2
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0xdf7
cmovo ecx, eax
jmp 0x4a9ea2
mov edx, dword [esp + 0x1c]
mov ecx, 0x4d5
call fcn.004015c4
jmp 0x4a9ea0
mov eax, 0x457
mov ecx, edx
shr eax, cl
mov ecx, eax
cmp ebx, 0xffffffff
mov dword [esp + 0x24], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x28], ecx
je 0x4a9ed3
cmp ebx, 5
je 0x4a9ec8
cmp ebx, 0xc
jne 0x4a9ee0
push 0xc
pop ebx
mov ecx, dword [esp + 0x2c]
shl ebx, cl
jmp 0x4a9ee0
add esp, 0x1029
push 5
pop ebx
jmp 0x4a9ee0
mov eax, dword [esp + 0x1c]
mov ebx, 0x80000000
dec eax
cmovno ebx, eax
mov dword [esp + 4], ebx
push 0x3c
pop ecx
call fcn.004016e1
mov edi, eax
xor esi, esi
mov dword [eax], 0xf94
mov dword [eax + 4], 0x254
mov dword [eax + 8], 0xf80
mov dword [eax + 0xc], 0x538
mov dword [eax + 0x10], 0x5f2
mov dword [eax + 0x14], 0x6bc
mov dword [eax + 0x18], 0x316
mov dword [eax + 0x1c], 0x829
mov dword [eax + 0x20], 0xc17
mov dword [eax + 0x24], 0xe04
mov dword [eax + 0x28], 0xf4e
mov dword [eax + 0x2c], 0x258
mov dword [eax + 0x30], 0x50
mov dword [eax + 0x34], 0xdc7
mov dword [eax + 0x38], 0x73
push 0xffffffffffffffc4
pop eax
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x4a9f6c
add esi, dword [edi + eax + 0x3c]
add eax, 4
jmp 0x4a9f5f
cmp ecx, 0xfe27d4ac
je 0x4a9f91
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp ecx, 0xfe27d6b6
jne 0x4a9f9e
sub esp, 0x885
mov ecx, 0xfe27d6b6
jmp 0x4a9f9e
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, 0xacd427fe
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
and ecx, 0x1f
push 0x57
pop ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
shl ebx, cl
cmp ebp, 0x57
cmovne ebx, ebp
mov ebp, dword [esp + 8]
mov dword [esp + 0x30], ebx
cmp ebp, 0x800006e8
je 0x4a9ffd
mov ecx, dword [esp + 0x20]
cmp ebp, 0x80000bef
je 0x4a9ff3
cmp ebp, 0x80000faf
jne 0x4aa00c
mov ebx, 0x80000faf
mov ecx, eax
shl ebx, cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], ebx
jmp 0x4aa00c
mov dword [esp + 8], 0xef0b0080
jmp 0x4aa00c
mov ecx, dword [esp + 0x20]
mov eax, 0x800006e8
sar eax, cl
mov dword [esp + 8], eax
mov ebx, dword [esp + 0xc]
mov ebp, edx
shl ebp, 0x1f
mov eax, ebx
neg eax
cmovno ebp, ebx
cmp ecx, 9
mov ebx, esi
jne 0x4aa029
add esp, 0x129d
mov eax, dword [esp]
mov ecx, dword [esp + 0x1c]
cmp eax, 0x430
je 0x4aa05f
cmp eax, 0x5ad
je 0x4aa04e
cmp eax, 0x996
jne 0x4aa06a
mov dword [esp], 0x69900000
jmp 0x4aa06a
mov eax, 0x5ad
mov ecx, dword [esp + 0x14]
shl eax, cl
mov ecx, dword [esp + 0x1c]
jmp 0x4aa067
imul eax, dword [esp + 4], 0x430
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], ebp
cmp eax, 0x2c3
je 0x4aa0b6
cmp eax, 0x567
je 0x4aa09a
cmp eax, 0x2fcdfaff
jne 0x4aa0cd
mov eax, dword [esp + 4]
mov ebx, 0x7fffffff
add eax, 0x2fcdfaff
cmovno ebx, eax
jmp 0x4aa0c9
mov edx, dword [esp + 4]
mov ecx, 0x567
call fcn.004015c4
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jmp 0x4aa0cd
mov eax, ebx
shr eax, 0x1f
add eax, 0x7fffffff
imul ebx, ebx, 0x2c3
cmovo ebx, eax
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x14]
cmp eax, 0x240
je 0x4aa110
cmp eax, 0xce3
mov ebx, esi
je 0x4aa103
mov esi, dword [esp + 0x40]
cmp eax, 0xe84
jne 0x4aa121
mov eax, edx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, edx, 0xe84
cmovo edx, eax
mov eax, edx
jmp 0x4aa121
mov esi, dword [esp + 0x40]
mov eax, 0xce3
sub eax, ebx
jmp 0x4aa121
sub esp, 0x81d
mov ebx, esi
mov esi, dword [esp + 0x40]
mov eax, 0x240
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, 0xc8
je 0x4aa143
mov edx, dword [esp + 4]
cmp eax, 0xc8b
jne 0x4aa14d
sub esp, 0xc58
jmp 0x4aa14d
add esp, 0x737
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
cmp eax, 0x594
je 0x4aa18e
cmp eax, 0x6c6
je 0x4aa181
cmp eax, 0xfa6
jne 0x4aa1a1
mov eax, dword [esp + 0x30]
mov edx, 0x7fffffff
add eax, 0xfa6
cmovno edx, eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 4]
jmp 0x4aa1a1
mov eax, 0x6c6
mov ecx, dword [esp + 0x1c]
shl eax, cl
jmp 0x4aa199
mov eax, 0x594
mov ecx, dword [esp + 0x3c]
shr eax, cl
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp esi, 0x5b8
je 0x4aa1e5
cmp esi, 0x510a0000
je 0x4aa1cb
mov eax, dword [esp + 8]
mov ebp, ecx
cmp esi, 0xeef
jne 0x4aa1f1
add esp, 0x1363
ud2
mov edx, dword [esp + 0x30]
mov ecx, 0x510a0000
call fcn.004015c4
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x1c]
mov esi, eax
jmp 0x4aa1ed
mov ebp, ecx
lea esi, [eax + 0x5b8]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
cmp ecx, 0xe7
je 0x4aa212
cmp ecx, 0x24d
jne 0x4aa218
mov ecx, 0x24d
add esp, 0x856
jmp 0x4aa218
imul ecx, ebp, 0xe7
cmp edx, 0xfe27d2be
mov dword [esp + 0x28], ecx
je 0x4aa273
cmp edx, 0xfe27d4da
je 0x4aa24c
mov ecx, dword [esp]
cmp edx, 0xfe27daaa
je 0x4aa257
cmp edx, 0xfe27dc6c
jne 0x4aa281
sub esp, 0x4ba
mov edx, 0xfe27dc6c
jmp 0x4aa281
mov edx, 0xfe27d4da
sub edx, dword [esp + 0x24]
jmp 0x4aa27e
mov edx, 0xfe27daaa
xor eax, eax
cmp edx, esi
setns al
add eax, 0x7fffffff
sub edx, esi
cmovo edx, eax
mov eax, dword [esp + 8]
jmp 0x4aa281
mov edx, 0xfe27d2be
mov ecx, dword [esp + 0x20]
shl edx, cl
mov ecx, dword [esp]
cmp ebx, 0x69c
mov dword [esp + 4], edx
mov dword [esp + 0x40], esi
je 0x4aa2bb
cmp ebx, 0xb08
je 0x4aa2b3
cmp ebx, 0x78d8
jne 0x4aa2c1
mov edx, dword [esp + 0x30]
mov ecx, 0x78d8
call fcn.004015c4
mov ebx, eax
jmp 0x4aa2c1
lea ebx, [eax + 0xb08]
jmp 0x4aa2c1
imul ebx, ecx, 0x69c
push 0x18
pop ecx
call fcn.004016e1
mov esi, eax
xor ecx, ecx
mov dword [eax], 0x18b
mov dword [eax + 4], 0x460
mov dword [eax + 8], 0xa13
mov dword [eax + 0xc], 0xa93
mov dword [eax + 0x10], 0xe3a
mov dword [eax + 0x14], 0x940
push 0xffffffffffffffe8
pop eax
mov edx, dword [esp + 0x5c]
test eax, eax
je 0x4aa30a
add ecx, dword [esi + eax + 0x18]
add eax, 4
jmp 0x4aa2fd
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
test eax, eax
je 0x4aa368
cmp eax, 0x513
je 0x4aa340
cmp eax, 0xbde
je 0x4aa358
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
cmp eax, 0xdc9
jne 0x4aa389
mov eax, 0xdc9
sub eax, ebx
mov dword [esp + 0x18], eax
jmp 0x4aa389
mov edx, dword [esp + 0x14]
mov ecx, 0x513
call fcn.004015c4
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
jmp 0x4aa381
add esp, 0xbe7
mov dword [esp + 0x18], 0xbde
jmp 0x4aa381
xor eax, eax
mov ebp, ecx
neg ecx
setns al
mov ecx, ebp
add eax, 0x7fffffff
neg ecx
cmovo ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
cmp eax, 0xfe27d2bf
je 0x4aa3b8
cmp eax, 0xfe27d9eb
je 0x4aa3ad
cmp eax, 0xfe27db54
jne 0x4aa3c4
mov eax, 0xfe27db54
sub eax, dword [esp + 8]
jmp 0x4aa3c0
mov eax, dword [esp + 0x40]
add eax, 0xfe27d9eb
jmp 0x4aa3c0
imul eax, dword [esp + 8], 0xfe27d2bf
mov dword [esp + 0x1c], eax
cmp ebp, 0x1c9
je 0x4aa3f8
mov eax, dword [esp + 8]
cmp ebp, 0x835
je 0x4aa3e8
cmp ebp, 0xf25
jne 0x4aa405
sub esp, 0x6bf
ud2
mov ebp, 0x835
mov ecx, dword [esp]
shr ebp, cl
mov ecx, dword [esp + 0x20]
jmp 0x4aa405
mov ebp, 0x1c9
mov eax, dword [esp + 8]
sub ebp, dword [esp + 0x2c]
cmp eax, 0x800001e5
mov dword [esp + 0x34], ebx
je 0x4aa443
cmp eax, 0x800008ac
je 0x4aa425
cmp eax, 0x80000e67
jne 0x4aa44e
mov eax, 0x670e0080
jmp 0x4aa44e
mov ebx, ebp
mov ebp, 0x800008ac
xor eax, eax
cmp ebp, ebx
setns al
add eax, 0x7fffffff
sub ebp, ebx
cmovo ebp, eax
mov eax, ebp
mov ebp, ebx
jmp 0x4aa44e
sub esp, 0x8e4
mov eax, 0x800001e5
test edx, edx
mov dword [esp + 8], eax
cmove edx, dword [esp + 0x10]
cmp ecx, 9
mov dword [esp + 0x5c], edx
jne 0x4aa49b
mov eax, dword [esp]
lea ecx, [eax + eax*8]
mov eax, dword [esp]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x4aa4d1
cmp eax, 0x7bf
je 0x4aa4b9
cmp eax, 0x985
jne 0x4aa4d8
mov eax, dword [esp + 8]
mov ebx, ebp
mov ebp, 0x7fffffff
add eax, 0x985
cmovno ebp, eax
mov dword [esp], ebp
mov ebp, ebx
jmp 0x4aa4d8
cmp ecx, 0xffffffff
je 0x4afe5a
cmp ecx, 8
je 0x4afe50
cmp ecx, 0xb
jne 0x4aa468
mov ecx, 0xb000000
jmp 0x4aa468
mov edx, dword [esp + 0x20]
mov ecx, 0x7bf
call fcn.004015c4
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
jmp 0x4aa4d5
mov eax, ecx
neg eax
mov dword [esp], eax
mov ebx, dword [esp + 0x24]
cmp ebx, 0x2ef
je 0x4aa51a
mov eax, dword [esp + 0x14]
cmp ebx, 0xae3
je 0x4aa505
cmp ebx, 0x2df5cdbd
jne 0x4aa526
mov ebx, 0x2df5cdbd
mov ecx, dword [esp + 0x18]
shl ebx, cl
jmp 0x4aa510
mov ebx, 0xae3
mov ecx, dword [esp + 8]
shr ebx, cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
jmp 0x4aa526
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], 0xef020000
mov ebx, dword [esp + 0x34]
test eax, eax
je 0x4aa54e
cmp eax, 0x684
je 0x4aa547
cmp eax, 0x8ca
jne 0x4aa554
mov eax, dword [esp + 0x28]
add eax, 0x8ca
jmp 0x4aa554
mov eax, 0x21600000
jmp 0x4aa554
mov eax, dword [esp + 0x28]
neg eax
cmp dword [esp + 0x10], 0x85c
mov dword [esp + 0x14], eax
jne 0x4aa57c
mov edx, dword [esp + 0x14]
mov ecx, 0x85c
call fcn.004015c4
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], ebp
cmp eax, 0x5b6
je 0x4aa5a0
cmp eax, 0x30a
jne 0x4aa5ae
imul eax, dword [esp + 0x10], 0x30a
mov dword [esp + 0x2c], eax
jmp 0x4aa5ae
sub esp, 0x11a9
mov dword [esp + 0x2c], 0x5b6
mov eax, dword [esp + 0x40]
and ecx, 0x1f
xor ebp, ebp
inc ebp
mov dword [esp + 0x44], ecx
shr ebp, cl
mov ecx, dword [esp + 0x28]
cmp eax, 1
cmovne ebp, eax
mov eax, 0x7fffffff
add edx, eax
cmovo edx, eax
cmp ecx, eax
cmovne edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 4]
cmp edx, 0x3a
je 0x4aa61c
cmp edx, 0x918
je 0x4aa60a
cmp edx, 0xfd6
jne 0x4aa626
mov ecx, dword [esp + 0x38]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul edx, ecx, 0xfd6
jmp 0x4aa623
mov edx, dword [esp + 0x48]
mov ecx, 0x918
call fcn.004015c4
mov edx, eax
jmp 0x4aa626
mov edx, dword [esp + 8]
add edx, 0x3a
cmovo edx, eax
cmp ebx, 1
je 0x4aa661
cmp ebx, 9
je 0x4aa649
mov ecx, dword [esp + 0x1c]
cmp ebx, 0xa
je 0x4aa65a
cmp ebx, 0xf
jne 0x4aa66e
push 0xf
pop ebx
add esp, 0xa4b
jmp 0x4aa66e
mov eax, dword [esp + 0x30]
mov ebx, 0x7fffffff
add eax, 9
cmovno ebx, eax
jmp 0x4aa66a
mov ebx, 0xa000000
jmp 0x4aa66e
xor ebx, ebx
mov ecx, dword [esp + 0x44]
inc ebx
shl ebx, cl
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov dword [esp + 4], edx
cmp eax, 0x6d1
je 0x4aa6a4
cmp eax, 0xa44
je 0x4aa699
cmp eax, 0x320b
jne 0x4aa6bb
mov ecx, 0x320b
mov edx, ebx
call fcn.004015c4
jmp 0x4aa6bb
mov eax, 0xa44
mov ecx, edx
shr eax, cl
jmp 0x4aa6bb
mov eax, 0x6d1
xor edx, edx
cmp eax, ecx
setns dl
add edx, 0x7fffffff
sub eax, ecx
cmovo eax, edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x48], eax
push 0x14
pop ecx
call fcn.004016e1
xor ebx, ebx
mov dword [eax], 0xc29
mov dword [eax + 4], 0x96d
mov dword [eax + 8], 0xb79
mov dword [eax + 0xc], 0x5be
mov dword [eax + 0x10], 0x426
push 0xffffffffffffffec
pop ecx
mov edx, dword [esp + 0x18]
test ecx, ecx
je 0x4aa703
add ebx, dword [eax + ecx + 0x14]
add ecx, 4
jmp 0x4aa6f6
cmp edx, 0xffffcfdd
je 0x4aa72b
cmp edx, 0xffffdb05
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
jne 0x4aa73b
add esp, 0xef4
mov dword [esp + 0x18], 0xffffdb05
jmp 0x4aa73b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], 0xbbf3ffff
cmp ecx, 0x800005c6
je 0x4aa752
cmp ecx, 0x800008bf
jne 0x4aa75d
mov ecx, 0xbf080080
jmp 0x4aa75d
sub esp, 0x776
mov ecx, 0x800005c6
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], ebp
cmp ecx, 0x164
je 0x4aa788
cmp ecx, 0xb1d
mov ebp, ecx
jne 0x4aa79a
mov ebp, 0xb1d
mov ecx, dword [esp + 0x34]
shl ebp, cl
jmp 0x4aa79a
mov ecx, dword [esp + 0x24]
mov ebp, 0x7fffffff
add ecx, 0x164
cmovno ebp, ecx
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 8]
mov ecx, ebp
neg ecx
jo 0x4aa7d9
cmp ebp, 0x800005f9
je 0x4aa7c8
cmp ebp, 0x80000ca5
jne 0x4aa7e1
mov ecx, dword [esp + 0x30]
add ecx, 0x80000ca5
mov dword [esp + 8], ecx
jmp 0x4aa7e1
mov ebp, 0x800005f9
mov ecx, dword [esp + 0x10]
shl ebp, cl
mov dword [esp + 8], ebp
jmp 0x4aa7e1
mov dword [esp + 8], pe_nt_image_headers32
mov ebp, dword [esp + 0xc]
test edx, edx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], esi
je 0x4aa82b
cmp edx, 0x7f
je 0x4aa817
mov eax, dword [esp]
cmp edx, 0x182
je 0x4aa81e
cmp edx, 0xabd
jne 0x4aa83b
imul edx, ebx, 0xabd
jmp 0x4aa83b
mov edx, 0xfe000000
jmp 0x4aa838
mov edx, 0x182
mov ecx, dword [esp + 0x10]
shl edx, cl
jmp 0x4aa838
mov edx, dword [esp + 0x34]
xor ecx, ecx
call fcn.004015c4
mov edx, eax
mov eax, dword [esp]
cmp eax, 2
push 6
pop esi
mov dword [esp + 0x5c], edx
je 0x4aa885
cmp eax, 5
je 0x4aa864
cmp eax, 6
je 0x4aa86f
cmp eax, 0x10
jne 0x4aa88a
push 0x10
pop ecx
mov edx, dword [esp + 0x20]
call fcn.004015c4
jmp 0x4aa88a
push 5
pop eax
mov ecx, dword [esp + 0x34]
shr eax, cl
jmp 0x4aa88a
xor ecx, ecx
cmp esi, edx
mov eax, esi
setns cl
add ecx, 0x7fffffff
sub eax, edx
cmovo eax, ecx
jmp 0x4aa88a
mov eax, 0x40000000
mov edx, dword [esp + 8]
mov ecx, 0xb7a00fd3
mov dword [esp], eax
xor eax, eax
mov esi, 0xb7a00fd3
mov dword [esp + 0x50], ebx
cmp ecx, edx
setns al
add eax, 0x7fffffff
sub esi, edx
cmovo esi, eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
cmovne esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], esi
cmp eax, 0x80000001
je 0x4aa8db
mov ebx, dword [esp + 0x10]
cmp eax, 0x80000790
jne 0x4aa8e4
sub esp, 0x106d
ud2
mov ebx, dword [esp + 0x10]
mov eax, 0x1000080
mov ecx, dword [esp]
cmp ebx, 0x308
mov dword [esp + 0x14], eax
je 0x4aa91b
cmp ebx, 0x104
je 0x4aa911
test ebx, ebx
jne 0x4aa924
mov edx, dword [esp + 0x48]
xor ecx, ecx
call fcn.004015c4
mov ecx, dword [esp]
mov ebx, eax
jmp 0x4aa924
imul ebx, dword [esp + 0x50], 0x104
jmp 0x4aa924
mov ebx, 0x308
sub ebx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
cmp eax, 0x7c8
je 0x4afe80
cmp eax, 0xdf6
je 0x4afe88
cmp ebp, 0xda2
je 0x4aa95a
mov eax, dword [esp + 0x38]
cmp ebp, 0x8b0
jne 0x4aa974
sub esp, 0xd8a
ud2
mov ebp, 0xda2
xor eax, eax
cmp ebp, ecx
setns al
add eax, 0x7fffffff
sub ebp, ecx
cmovo ebp, eax
mov eax, dword [esp + 0x38]
cmp eax, 0x3b7
je 0x4aa995
cmp eax, 0xfc5
jne 0x4aa99a
mov eax, ebp
mov ecx, 0x7fffffff
add eax, 0xfc5
cmovno ecx, eax
mov eax, ecx
jmp 0x4aa99a
mov eax, 0xb7030000
mov edx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov eax, 0x21f
mov esi, 0x21f
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 4]
cmp ecx, esi
cmovne eax, ecx
cmp edx, 0x800002de
je 0x4aa9de
mov esi, dword [esp + 0x48]
cmp edx, 0x80000384
jne 0x4aa9ee
mov edx, 0x80000384
mov ecx, dword [esp + 0x4c]
shl edx, cl
mov dword [esp + 0x34], edx
jmp 0x4aa9ea
imul ecx, dword [esp + 0x2c], 0x800002de
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x48]
cmp esi, 1
mov dword [esp + 0xc], ebp
je 0x4aaa15
cmp esi, 6
je 0x4aaa0a
cmp esi, 7
jne 0x4aaa1a
push 7
pop esi
sub esi, dword [esp + 0x5c]
jmp 0x4aaa1a
sub esp, 0x9d3
push 6
pop esi
jmp 0x4aaa1a
mov esi, 0x80000000
mov ebp, dword [esp + 0x50]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x10], ebx
cmp ebp, 0x20c
je 0x4aaa8c
cmp ebp, 0x654
je 0x4aaa6b
mov ecx, dword [esp]
cmp ebp, 0xc2a
je 0x4aaa75
cmp ebp, 0x2af3
jne 0x4aaa9e
mov edx, dword [esp + 0x2c]
mov ecx, 0x2af3
call fcn.004015c4
mov ecx, dword [esp]
mov dword [esp + 0x50], eax
jmp 0x4aaa9e
mov dword [esp + 0x50], 0x54060000
jmp 0x4aaa9b
mov eax, dword [esp + 0x1c]
mov esi, 0x7fffffff
add eax, 0xc2a
cmovno esi, eax
mov dword [esp + 0x50], esi
jmp 0x4aaa9e
mov eax, 0x20c
mov ecx, dword [esp + 0x4c]
shr eax, cl
mov dword [esp + 0x50], eax
mov ecx, dword [esp]
mov dword [esp + 4], 0xeb7
mov dword [esp + 0x3c], 0x24e
push 0x24
pop eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], 0xcb1
push 0x13
pop eax
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x58], eax
mov eax, 0x50b
mov dword [esp + 0x6c], 0x234e
mov dword [esp + 0x54], 0xe27
mov dword [esp + 0x24], 0x235
mov esi, dword [esp + 0x34]
sub dword [esp + 0x6c], 1
mov dword [esp], eax
mov dword [esp + 0x44], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x40], esi
jb 0x4aae92
mov ebp, dword [esp + 8]
xor eax, eax
mov esi, 0x7fffffff
mov edx, dword [esp + 0x38]
mov ebx, dword [esp]
cmp ebp, ecx
setns al
add eax, esi
sub ebp, ecx
mov ecx, edi
mov edi, 0x80000000
cmovo ebp, eax
mov eax, ebp
xor eax, edx
shr eax, 0x1f
add eax, esi
imul ebp, edx
cmovo ebp, eax
bswap ebp
sar ebp, cl
lea eax, [ebx + ebp]
mov dword [esp + 8], ebp
sar eax, 0x1f
xor eax, edi
mov edi, dword [esp + 4]
add ebx, ebp
mov ebp, 0xf0f0f0f
cmovo ebx, eax
xor eax, eax
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x60]
cmp edx, edi
setns al
add eax, esi
sub edx, edi
mov edi, dword [esp + 0x2c]
cmovo edx, eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x58]
bswap edi
mov eax, edi
and edi, ebp
shr eax, 4
shl edi, 4
and eax, ebp
mov ebp, 0x33333333
or edi, eax
mov eax, edi
shr edi, 2
and eax, ebp
and edi, ebp
mov ebp, 0x55555555
lea eax, [edi + eax*4]
mov edi, eax
shr eax, 1
and edi, ebp
and eax, ebp
lea ebp, [eax + edi*2]
mov edi, dword [esp + 0x48]
xor eax, eax
cmp ebp, edi
setns al
add eax, esi
sub ebp, edi
mov edi, dword [esp + 0x30]
cmovo ebp, eax
mov dword [esp + 0x2c], ebp
mov eax, edi
xor eax, edx
shr eax, 0x1f
add eax, esi
imul edi, edx
mov edx, 0x80000000
cmovo edi, eax
lea eax, [edi + ecx]
sar eax, 0x1f
xor eax, edx
mov edx, dword [esp + 0x1c]
add edi, ecx
mov ecx, ebx
cmovo edi, eax
shl edx, cl
mov eax, edx
xor eax, ebx
shr eax, 0x1f
add eax, esi
imul edx, ebx
mov esi, dword [esp + 0x4c]
cmovo edx, eax
mov ecx, edx
mov edx, dword [esp + 0x3c]
bswap esi
call fcn.004015c4
mov edx, dword [esp + 0x28]
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.004015c4
mov edi, eax
mov eax, esi
mov ecx, 0xf0f0f0f
mov edx, 0x55555555
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
lea eax, [esi + eax*4]
mov esi, 0xf0f0f0f
mov ecx, eax
shr eax, 1
and ecx, edx
and eax, edx
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], edx
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
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x1c]
sar eax, cl
mov ecx, eax
call fcn.004015c4
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov esi, 0x7fffffff
mov ebp, dword [esp + 0x18]
mov eax, edx
xor eax, ecx
shr eax, 0x1f
add eax, esi
imul edx, ecx
mov esi, dword [esp + 0x14]
cmovo edx, eax
sub edx, dword [esp + 4]
mov eax, esi
mov ecx, edx
mov dword [esp + 0x38], edx
mov edx, 0x7fffffff
bswap ecx
xor eax, ecx
shr eax, 0x1f
add eax, edx
imul ecx, esi
mov esi, dword [esp + 0x10]
mov edx, 0x80000000
cmovo ecx, eax
mov dword [esp + 0x34], ecx
sub esi, dword [esp + 0x2c]
lea eax, [esi + ecx]
sar eax, 0x1f
xor eax, edx
add esi, ecx
mov ecx, dword [esp + 4]
cmovo esi, eax
shl ebp, cl
mov eax, edi
mov ecx, 0x7fffffff
xor eax, ebp
mov dword [esp + 0x10], esi
mov esi, 0x7fffffff
mov dword [esp + 0x18], ebp
shr eax, 0x1f
add eax, ecx
imul edi, ebp
mov ecx, ebx
cmovo edi, eax
xor eax, eax
mov edx, edi
mov edi, dword [esp + 4]
mov dword [esp + 0x30], edx
imul edi, dword [esp]
shl edi, cl
mov ecx, 0x7fffffff
bswap edi
cmp edi, edx
setns al
add eax, ecx
sub edi, edx
mov ecx, dword [esp + 0x54]
cmovo edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], edi
add eax, ecx
xor ecx, ecx
cmp eax, edi
setns cl
add ecx, esi
sub eax, edi
mov edi, dword [esp + 0x3c]
cmovo eax, ecx
lea ecx, [ebx + edx]
mov dword [esp], eax
sar ecx, 0x1f
mov eax, 0x80000000
xor ecx, eax
mov eax, dword [esp + 0x20]
add ebx, edx
mov edx, dword [esp + 0x14]
cmovo ebx, ecx
mov ecx, dword [esp + 0x54]
bswap ebx
sub eax, dword [esp + 8]
shl eax, cl
mov ecx, eax
mov dword [esp + 0x20], eax
sar edi, cl
mov ecx, edi
xor ecx, ebp
shr ecx, 0x1f
add ecx, esi
imul edi, ebp
mov ebp, dword [esp + 0x28]
cmovo edi, ecx
xor ecx, ecx
cmp edi, edx
setns cl
add ecx, esi
sub edi, edx
mov edx, 0xf0f0f0f
mov esi, dword [esp + 0x10]
cmovo edi, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x44]
shl edi, cl
mov ecx, dword [esp + 0x38]
shl ebp, cl
mov ecx, ebx
and ebx, edx
shr ecx, 4
shl ebx, 4
sub ebp, dword [esp + 0x64]
bswap edi
and ecx, edx
mov edx, 0x33333333
or ebx, ecx
mov ecx, ebx
shr ebx, 2
and ecx, edx
and ebx, edx
lea edx, [ebx + ecx*4]
mov ebx, dword [esp + 0x48]
mov ecx, ebp
mov ebp, 0x55555555
bswap ecx
mov dword [esp + 0x28], ecx
shl dword [esp + 0x50], cl
mov ecx, edx
shr edx, 1
and ecx, ebp
and edx, ebp
mov ebp, 0x7fffffff
sub ebx, dword [esp + 0x2c]
lea edx, [edx + ecx*2]
add ecx, ecx
xor ecx, eax
shr ecx, 0x1f
add ecx, ebp
imul edx, eax
mov ebp, dword [esp + 0x14]
mov eax, ebx
cmovo edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], ebx
sub esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], edx
mov edx, dword [esp]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
shl edx, cl
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 4]
imul ecx, ebp
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
mov eax, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x64], esi
jmp 0x4aaae9
mov ebp, ecx
mov ecx, dword [esp]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, 0xeb8
mov edx, dword [esp + 0x5c]
add ecx, eax
cmp edi, eax
lea eax, [ebx - 1]
cmovne ecx, edi
ror eax, 1
cmp eax, 6
mov dword [esp + 0x70], ecx
ja 0x4aaef3
mov eax, dword [eax*4 + 0x4aff18]
add eax, dword [esp + 0x9c]
jmp eax
mov ecx, dword [esp]
mov esi, dword [esp + 0x30]
mov eax, 0x160
mov edi, 0x7fffffff
add ecx, eax
cmovno edi, ecx
cmp esi, eax
mov eax, dword [esp + 8]
cmovne edi, esi
mov dword [esp + 0x34], edi
cmp eax, 0x125
je 0x4aaf34
cmp eax, 0x29d
jne 0x4aaf52
sub esp, 0xdeb
mov dword [esp + 8], 0x29d
jmp 0x4aaf52
mov edi, dword [esp + 4]
mov ecx, 0x125
xor eax, eax
cmp ecx, edi
setns al
add eax, 0x7fffffff
sub ecx, edi
cmovo ecx, eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
cmp edx, 0x19d
je 0x4aaf85
cmp edx, 0x328
je 0x4aaf7b
mov edi, dword [esp + 0x20]
cmp edx, 0x7ea
jne 0x4aaf92
mov edx, 0x7ea
shl edx, cl
jmp 0x4aaf8e
imul edx, dword [esp + 0x54], 0x328
jmp 0x4aaf8e
mov edx, 0x19d
mov ecx, ebx
shr edx, cl
mov edi, dword [esp + 0x20]
cmp edi, 0x341
mov dword [esp + 0x5c], edx
je 0x4aafce
cmp edi, 0x74e
je 0x4aafc1
cmp edi, 0x4002
jne 0x4aafd3
mov eax, dword [esp + 0x4c]
mov edi, 0x7fffffff
add eax, 0x4002
cmovno edi, eax
jmp 0x4aafd3
add esp, 0xba1
mov edi, 0x74e
jmp 0x4aafd3
mov edi, 0x82c00000
mov ecx, 0x875
xor eax, eax
mov edx, edi
cmp ecx, edi
mov edi, 0x875
mov dword [esp + 0x20], edx
setns al
add eax, 0x7fffffff
sub edi, edx
cmovo edi, eax
mov eax, dword [esp + 0x4c]
cmp ebp, ecx
cmovne edi, ebp
mov dword [esp + 0x84], edi
cmp eax, 0xb7a00000
je 0x4ab042
cmp eax, 0xb7a005dc
je 0x4ab030
cmp eax, 0xb7a0070d
mov eax, dword [esp + 0x20]
jne 0x4ab04a
mov ecx, 0xb7a005dc
mov edx, ebx
call fcn.004015c4
mov dword [esp + 0x4c], eax
jmp 0x4ab04a
mov dword [esp + 0x4c], 0xa0b7
mov eax, dword [esp + 0xc]
cmp eax, 0x30
je 0x4ab07f
cmp eax, 0x55b
je 0x4ab06f
mov ecx, dword [esp + 0x84]
mov eax, ecx
shr eax, 0x1f
add eax, 0x7fffffff
imul ecx, ecx, 0x30
cmovo ecx, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x10]
cmp eax, 0x153
je 0x4ab0cc
add esp, 0x104
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x10000000
jmp 0x4aa468
mov edx, dword [esp + 0x18]
xor ecx, ecx
dec ecx
call fcn.004015c4
mov edx, dword [esp + 0x5c]
mov ecx, eax
jmp 0x4aa468
add esp, 0x782
ud2
add esp, 0x1350
ud2
add esp, 0x5ca
ud2