Function at 0x4a0a70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4a1952
sub esp, 0x68
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x6c]
mov byte [eax + 0x7c], 0
xor ecx, ecx
mov edx, ecx
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x74]
cmp ecx, ebx
jge 0x4a0d4b
mov byte [eax + 0x7d], 1
mov ebp, dword [esp + 0x70]
mov esi, ecx
cmp ecx, ebx
jge 0x4a0ad8
jae 0x4a194b
movzx edi, byte [ebp + ecx]
xchg edi, eax
cmp al, 0x25
xchg edi, eax
je 0x4a1942
inc ecx
cmp ecx, ebx
jl 0x4a0abd
mov dword [esp + 0x30], ecx
cmp ecx, esi
jg 0x4a1838
cmp ecx, ebx
jge 0x4a182f
lea esi, [eax + 0x20]
test byte [esi], al
mov dword [eax + 0x24], 0
mov dword [eax + 0x25], 0
mov dword [eax + 0x29], 0
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, ebx
jge 0x4a0b3d
jae 0x4a1828
movzx esi, byte [ebp + ecx]
xchg esi, eax
cmp al, 0x23
xchg esi, eax
ja 0x4a17e6
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jne 0x4a174d
mov byte [eax + 0x29], 1
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, ebx
jl 0x4a0b0f
mov edi, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call fcn.004a0610
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
movzx edx, byte [esp + 0x20]
mov byte [esp + 0x27], dl
mov ebx, dword [esp + 0x74]
cmp ecx, ebx
jge 0x4a1744
jae 0x4a173d
mov ebp, dword [esp + 0x70]
movzx esi, byte [ebp + ecx]
xchg esi, eax
cmp al, 0x2a
xchg esi, eax
je 0x4a1611
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.0049ad70
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x30], eax
mov byte [ebx + 0x24], cl
movzx eax, byte [esp + 0x27]
test al, al
je 0x4a0bd8
test cl, cl
je 0x4a0bd8
mov byte [ebx + 0x7d], 0
mov ecx, dword [esp + 0x38]
lea ebp, [edx + 1]
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 0x74]
cmp ebp, esi
jge 0x4a0cb1
cmp edx, esi
jae 0x4a160a
mov edi, dword [esp + 0x70]
movzx ebp, byte [edi + edx]
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
jne 0x4a0cb1
test al, al
je 0x4a0c12
mov byte [ebx + 0x7d], 0
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
call fcn.004a0610
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
movzx edx, byte [esp + 0x20]
mov byte [esp + 0x27], dl
mov ebx, dword [esp + 0x74]
cmp ecx, ebx
jge 0x4a1601
jae 0x4a15fa
mov ebp, dword [esp + 0x70]
movzx esi, byte [ebp + ecx]
xchg esi, eax
cmp al, 0x2a
xchg esi, eax
je 0x4a14cf
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.0049ad70
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x34], eax
mov byte [ebx + 0x25], cl
test cl, cl
je 0x4a14bf
movzx eax, byte [esp + 0x27]
mov ecx, dword [esp + 0x38]
test al, al
je 0x4a1486
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x74]
cmp edx, eax
jge 0x4a13c4
ja 0x4a13bd
sub eax, edx
lea esi, [eax - 1]
sar esi, 0x1f
xor esi, 0xffffffff
and esi, edx
mov edi, dword [esp + 0x70]
add esi, edi
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0044df60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
add ecx, edx
mov dword [esp + 0x30], ecx
cmp eax, 0x25
jne 0x4a1303
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
lea esi, [ebx + 1]
cmp esi, edx
jg 0x4a129b
lea edx, [ebx + 1]
mov dword [eax + 4], edx
mov byte [ebp + ebx], 0x25
mov edx, dword [esp + 0x38]
mov eax, edx
mov edx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x74]
cmp ecx, ebx
jl 0x4a0aaf
mov ecx, eax
mov eax, edx
mov dword [esp + 0x38], eax
movzx edx, byte [ecx + 0x7c]
test dl, dl
jne 0x4a0fdc
mov edx, dword [esp + 0x7c]
cmp eax, edx
jge 0x4a0fdc
lea ebx, [ecx + 0x20]
test byte [ebx], al
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x25], 0
mov dword [ecx + 0x29], 0
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [esp + 0x44], esi
lea edi, [esi + 9]
mov dword [esp + 0x40], edi
cmp edi, ebx
ja 0x4a125c
mov dword [esp + 0x44], ebx
mov dword [esp + 0x5c], ebp
cmp edi, ebx
ja 0x4a1255
add esi, ebp
mov dword [esp], esi
lea esi, [0x705f55]
mov dword [esp + 4], esi
mov dword [esp + 8], 9
call fcn.0044aa80
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a1232
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
cmp eax, edx
ja 0x4a122b
sub edx, eax
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x80]
sub ebx, eax
shl eax, 3
dec ebx
sar ebx, 0x1f
xor ebx, 0xffffffff
and eax, ebx
mov ebx, dword [esp + 0x78]
lea eax, [ebx + eax]
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], eax
cmp ebx, edx
jge 0x4a0fc3
mov ebp, dword [eax + 4]
mov dword [esp + 0x54], ebp
mov esi, dword [eax]
mov dword [esp + 0x50], esi
test ebx, ebx
jle 0x4a0eb4
mov edi, dword [ecx]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x40], ebx
lea eax, [ebx + 2]
mov dword [esp + 0x3c], eax
cmp eax, edx
ja 0x4a11ec
mov dword [esp + 0x5c], edi
mov dword [esp + 0x40], edx
cmp eax, edx
ja 0x4a11e5
add ebx, edi
mov dword [esp], ebx
lea ebx, [0x70405d]
mov dword [esp + 4], ebx
mov dword [esp + 8], 2
call fcn.0044aa80
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a11cc
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4a110f
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x54]
mov dword [esp + 0x64], edx
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x4a1106
lea ebp, [0x84dea0]
mov ebp, dword [ebp + 0x84]
mov dword [esp], ebx
call ebp
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x40], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x2c], ebp
lea esi, [ebx + ebp]
mov dword [esp + 0x3c], esi
mov edi, dword [ecx]
cmp esi, edx
ja 0x4a10c7
mov dword [esp + 0x5c], edi
mov dword [esp + 0x40], edx
cmp esi, edx
ja 0x4a10c0
add ebx, edi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0044aa80
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a10a7
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov ebx, dword [ecx + 8]
lea ebp, [eax + 1]
cmp ebp, ebx
jg 0x4a1043
lea ebx, [eax + 1]
mov dword [ecx + 4], ebx
mov byte [edx + eax], 0x3d
mov dword [esp], ecx
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x76
call fcn.0049d5a0
mov ebp, dword [esp + 0x58]
lea eax, [ebp + 8]
mov ebp, dword [esp + 0x34]
lea ebx, [ebp + 1]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], eax
cmp ebx, edx
jl 0x4a0e36
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
lea ebp, [edx + 1]
cmp ebp, eax
jg 0x4a0fe0
lea eax, [edx + 1]
mov dword [ecx + 4], eax
mov byte [ebx + edx], 0x29
add esp, 0x68
ret
lea esi, [0x6b4b60]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
call fcn.00437660
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 8], edx
mov edx, dword [0x884700]
test edx, edx
jne 0x4a102d
mov dword [ebx], eax
mov eax, dword [ebx]
mov ecx, ebx
mov edx, dword [esp + 0x44]
mov ebx, eax
jmp 0x4a0fd2
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x6c]
jmp 0x4a1021
lea esi, [0x6b4b60]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00437660
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 8], edx
mov edx, dword [0x884700]
test edx, edx
jne 0x4a1091
mov dword [ebx], eax
mov edx, dword [ebx]
mov ecx, ebx
mov eax, dword [esp + 0x40]
jmp 0x4a0f73
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
jmp 0x4a1084
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x6c]
jmp 0x4a0f60
call fcn.004246e0
ud2
lea ecx, [0x6b4b60]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
call fcn.00437660
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp 0x4a0f18
xor ebp, ebp
xor ebx, ebx
jmp 0x4a0ede
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 4]
mov dword [esp + 0x40], edx
mov ebx, dword [ecx]
lea ebp, [edx + 5]
mov dword [esp + 0x3c], ebp
cmp ebp, eax
ja 0x4a1195
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], ebx
cmp ebp, eax
ja 0x4a118e
add edx, ebx
mov dword [esp], edx
lea edx, [0x704c34]
mov dword [esp + 4], edx
mov dword [esp + 8], 5
call fcn.0044aa80
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a1175
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
jmp 0x4a0f9d
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x6c]
jmp 0x4a0f9d
call fcn.004246e0
ud2
lea esi, [0x6b4b60]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
call fcn.00437660
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
jmp 0x4a1126
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x6c]
jmp 0x4a0eb4
call fcn.004246e0
ud2
lea ebp, [0x6b4b60]
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.00437660
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
jmp 0x4a0e62
call fcn.004246e0
ud2
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
cmp eax, edx
mov ecx, dword [esp + 0x6c]
jmp 0x4a0dfc
call fcn.004246e0
ud2
lea eax, [0x6b4b60]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
call fcn.00437660
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
jmp 0x4a0da0
lea edi, [0x6b4b60]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
call fcn.00437660
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 8], edx
mov edx, dword [0x884700]
test edx, edx
jne 0x4a12ed
mov dword [ebx], eax
mov ebp, dword [ebx]
mov eax, ebx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
jmp 0x4a0d24
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x6c]
jmp 0x4a12dc
mov edx, dword [esp + 0x6c]
movzx ebx, byte [edx + 0x7d]
test bl, bl
je 0x4a13a0
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jge 0x4a1383
cmp eax, 0x76
jne 0x4a137f
movzx esi, byte [edx + 0x28]
xchg esi, eax
mov byte [edx + 0x2c], al
xchg esi, eax
mov byte [edx + 0x28], 0
movzx esi, byte [edx + 0x27]
xchg esi, eax
mov byte [edx + 0x2b], al
xchg esi, eax
mov byte [edx + 0x27], 0
cmp ebx, ebp
jae 0x4a1378
shl ebx, 3
mov edi, dword [esp + 0x78]
mov ebp, dword [edi + ebx + 4]
mov ebx, dword [edi + ebx]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp], edx
mov dword [esp + 0xc], eax
call fcn.0049d5a0
mov eax, dword [esp + 0x38]
lea edx, [eax + 1]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x30]
jmp 0x4a0d33
call fcn.00424680
ud2
cmp ebx, ebp
jmp 0x4a1340
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004a08b0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
jmp 0x4a0d33
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004a06f0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
jmp 0x4a0d33
call fcn.004246e0
ud2
mov eax, dword [ebx + 4]
mov dword [esp + 0x44], eax
mov edx, dword [ebx]
mov ebp, dword [ebx + 8]
lea esi, [eax + 0xa]
mov dword [esp + 0x40], esi
cmp esi, ebp
ja 0x4a144b
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], ebp
cmp esi, ebp
ja 0x4a1444
add eax, edx
mov dword [esp], eax
lea eax, [0x706475]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
call fcn.0044aa80
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a142e
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
jmp 0x4a0d4f
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x6c]
jmp 0x4a1425
call fcn.004246e0
ud2
lea edi, [0x6b4b60]
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00437660
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
jmp 0x4a13db
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
call fcn.004a0610
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
jmp 0x4a0cb9
mov dword [ebx + 0x34], 0
mov byte [ebx + 0x25], 1
jmp 0x4a0ca8
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov esi, dword [esp + 0x7c]
mov dword [esp + 4], esi
mov edi, dword [esp + 0x80]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.004a0380
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x34], eax
mov byte [ebx + 0x25], cl
mov eax, dword [ebx + 0x34]
test eax, eax
jge 0x4a151f
mov dword [ebx + 0x34], 0
mov byte [ebx + 0x25], 0
movzx eax, byte [ebx + 0x25]
test al, al
je 0x4a1539
mov ebp, dword [esp + 0x30]
inc ebp
xor eax, eax
mov edx, ebp
mov ecx, dword [esp + 0x38]
jmp 0x4a0cb1
mov eax, dword [ebx + 4]
mov dword [esp + 0x44], eax
mov ecx, dword [ebx]
mov ebp, dword [ebx + 8]
lea esi, [eax + 0xb]
mov dword [esp + 0x40], esi
cmp esi, ebp
ja 0x4a15bf
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x44], ebp
cmp esi, ebp
ja 0x4a15b8
add eax, ecx
mov dword [esp], eax
lea eax, [0x706a04]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
call fcn.0044aa80
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a15a2
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov edx, dword [esp + 0x38]
mov ebx, ecx
jmp 0x4a1527
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x6c]
jmp 0x4a159a
call fcn.004246e0
ud2
lea edi, [0x6b4b60]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00437660
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
jmp 0x4a1550
call fcn.00424680
ud2
mov ebp, dword [esp + 0x70]
jmp 0x4a0c75
call fcn.00424680
ud2
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov esi, dword [esp + 0x7c]
mov dword [esp + 4], esi
mov edi, dword [esp + 0x80]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.004a0380
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x30], eax
mov byte [ebx + 0x24], cl
test cl, cl
je 0x4a1679
mov eax, dword [ebx + 0x30]
test eax, eax
jge 0x4a1667
neg eax
mov dword [ebx + 0x30], eax
mov byte [ebx + 0x26], 1
mov byte [ebx + 0x2a], 0
mov ebp, dword [esp + 0x30]
inc ebp
mov edx, ebp
xor eax, eax
mov ecx, dword [esp + 0x38]
jmp 0x4a0bdc
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x44], ecx
mov ebp, dword [ebx]
lea esi, [ecx + 0xc]
mov dword [esp + 0x40], esi
cmp esi, eax
ja 0x4a1702
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], ebp
cmp esi, eax
ja 0x4a16fb
add ecx, ebp
mov dword [esp], ecx
lea ecx, [0x707009]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
call fcn.0044aa80
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a16e5
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov edx, dword [esp + 0x38]
mov ebx, ecx
jmp 0x4a1653
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x6c]
jmp 0x4a16da
call fcn.004246e0
ud2
lea edi, [0x6b4b60]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
call fcn.00437660
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
jmp 0x4a1690
call fcn.00424680
ud2
mov ebp, dword [esp + 0x70]
jmp 0x4a0b9c
xchg esi, eax
cmp al, 0x23
xchg esi, eax
jne 0x4a175d
mov byte [eax + 0x28], 1
jmp 0x4a0b34
lea edi, [esi - 0x61]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x4a17dd
mov edi, dword [esp + 0x7c]
cmp edx, edi
jge 0x4a0b41
xchg esi, eax
cmp al, 0x76
xchg esi, eax
jne 0x4a17d9
movzx ebp, byte [eax + 0x28]
xchg ebp, ebx
mov byte [eax + 0x2c], bl
xchg ebp, ebx
mov byte [eax + 0x28], 0
movzx ebp, byte [eax + 0x27]
xchg ebp, ebx
mov byte [eax + 0x2b], bl
xchg ebp, ebx
mov byte [eax + 0x27], 0
cmp edx, edi
jae 0x4a17d2
shl edx, 3
mov edi, dword [esp + 0x78]
mov ebx, dword [edi + edx + 4]
mov edx, dword [edi + edx]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp], eax
xchg esi, eax
movzx edx, al
xchg esi, eax
mov dword [esp + 0xc], edx
call fcn.0049d5a0
mov eax, dword [esp + 0x38]
inc eax
mov ecx, dword [esp + 0x30]
inc ecx
jmp 0x4a0d35
call fcn.00424680
ud2
cmp edx, edi
jmp 0x4a179a
mov edi, dword [esp + 0x7c]
jmp 0x4a0b41
xchg esi, eax
cmp al, 0x2b
xchg esi, eax
jne 0x4a17f6
mov byte [eax + 0x27], 1
jmp 0x4a0b34
xchg esi, eax
cmp al, 0x2d
xchg esi, eax
jne 0x4a180a
mov byte [eax + 0x26], 1
mov byte [eax + 0x2a], 0
jmp 0x4a0b34
xchg esi, eax
cmp al, 0x30
xchg esi, eax
jne 0x4a175d
movzx esi, byte [eax + 0x26]
xor esi, 1
xchg esi, ebx
mov byte [eax + 0x2a], bl
xchg esi, ebx
jmp 0x4a0b34
call fcn.00424680
ud2
mov ecx, eax
mov eax, edx
jmp 0x4a0d4f
cmp esi, ecx
ja 0x4a18fc
cmp ecx, ebx
ja 0x4a18fc
sub ecx, esi
mov dword [esp + 0x28], ecx
lea edx, [ecx - 1]
sar edx, 0x1f
xor edx, 0xffffffff
and esi, edx
lea edx, [esi + ebp]
mov dword [esp + 0x4c], edx
mov esi, dword [eax + 4]
mov dword [esp + 0x44], esi
lea ebp, [ecx + esi]
mov dword [esp + 0x40], ebp
mov ebx, dword [eax + 8]
mov edi, dword [eax]
cmp ebp, ebx
ja 0x4a1903
mov dword [esp + 0x5c], edi
mov dword [esp + 0x44], ebx
cmp ebp, ebx
ja 0x4a18fc
add esi, edi
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0044aa80
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], eax
mov eax, dword [0x884700]
test eax, eax
jne 0x4a18dc
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x74]
cmp eax, edx
mov ecx, eax
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
jmp 0x4a0ae6
mov dword [esp], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x74]
cmp eax, edx
mov ecx, dword [esp + 0x6c]
jmp 0x4a18c5
call fcn.004246e0
ud2
lea eax, [0x6b4b60]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00437660
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
jmp 0x4a187b
mov dword [esp + 0x30], ecx
jmp 0x4a0adc
call fcn.00424680
ud2
call fcn.004486b0
jmp fcn.004a0a70