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

Disassembly:
push 0xffffffffffffffff
push 0x7504eb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x4c], ebx
call fcn.005a9a10
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x5aab13
mov eax, dword [ebx + 0x2c0]
test eax, eax
je 0x5abb02
mov ecx, dword [ebx + 0x2c4]
sub ecx, eax
test ecx, 0xffffffc0
je 0x5abb02
mov eax, dword [ebx + 0x2f0]
test eax, eax
jne 0x5abb02
mov eax, dword [ebx + 0x2c0]
test eax, eax
jne 0x5a9c27
xor ecx, ecx
jmp 0x5a9c32
mov ecx, dword [ebx + 0x2c4]
sub ecx, eax
sar ecx, 6
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [ebx + 0x2c0]
mov esi, edx
shr esi, 2
test ecx, ecx
jne 0x5a9c4c
xor eax, eax
jmp 0x5a9c57
mov eax, dword [ebx + 0x2c4]
sub eax, ecx
sar eax, 6
xor edx, edx
mov ecx, 5
div ecx
test edx, edx
jbe 0x5a9c65
inc esi
mov ecx, dword [ebx + 0x2dc]
lea eax, [esi - 1]
cmp ecx, eax
jbe 0x5a9c78
mov dword [ebx + 0x2dc], eax
mov eax, dword [ebx + 0x2dc]
lea edi, [eax + eax*4]
mov eax, dword [ebx + 0x2c0]
test eax, eax
mov dword [esp + 0x18], edi
je 0x5abb02
mov edx, dword [ebx + 0x2c4]
sub edx, eax
sar edx, 6
cmp edi, edx
jae 0x5abb02
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x30], al
call fcn.00404760
lea ecx, [esp + 0x2c]
mov dword [esp + 0x148], 0
push ecx
push 0x3072
call fcn.006a8c20
mov eax, dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x5a9ce3
mov eax, 0x765608
mov edx, dword [ebx + 0x2dc]
push esi
inc edx
push edx
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.00727335
mov eax, dword [ebx + 0x190]
add esp, 0x10
test eax, eax
je 0x5a9d98
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x40], cl
lea ecx, [esp + 0x40]
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x40]
push ebp
call fcn.00401450
test al, al
je 0x5a9d66
mov edi, dword [esp + 0x40]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
call fcn.00404970
mov ecx, dword [ebx + 0x190]
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x14c], 1
mov eax, dword [ecx]
call dword [eax + 0x9c]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c], 0
call fcn.00404760
mov edi, dword [esp + 0x18]
mov esi, dword [ebx + 0x2c0]
mov eax, dword [ebx + 0x2c4]
test edi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0xdc], eax
jle 0x5a9dbc
shl edi, 6
add esi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], 0
cmp esi, dword [esp + 0xdc]
je 0x5aaab8
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
add esi, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + 8]
push 0x7c4d88
push ecx
push eax
mov ecx, esi
call fcn.0040af30
test eax, eax
jne 0x5a9eb6
mov eax, dword [esp + 0x1c]
lea edx, [eax + eax*8]
mov eax, dword [ebx + edx*4 + 0xcc]
test eax, eax
lea ebp, [ebx + edx*4]
je 0x5a9fb0
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xd0]
mov byte [esp + 0xd0], al
call fcn.00404760
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
lea ecx, [esp + 0xd4]
call fcn.00401450
test al, al
je 0x5a9e82
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xd0]
mov ecx, eax
mov esi, 0x7c4d88
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xd0]
call fcn.00404970
mov ecx, dword [ebp + 0xcc]
lea edx, [esp + 0xcc]
push edx
mov byte [esp + 0x14c], 2
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0xd0]
jmp 0x5a9fab
lea eax, [esp + 0x2c]
push eax
push 0x3073
call fcn.006a8c20
mov esi, dword [esi + 4]
add esp, 8
test esi, esi
jne 0x5a9ed4
mov esi, 0x765608
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x5a9ee1
mov eax, 0x765608
push esi
lea ecx, [esp + 0x114]
push eax
push ecx
call fcn.00727335
mov eax, dword [esp + 0x28]
add esp, 0xc
lea edx, [eax + eax*8]
mov eax, dword [ebx + edx*4 + 0xcc]
test eax, eax
lea ebp, [ebx + edx*4]
je 0x5a9fb0
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xac]
mov byte [esp + 0xac], al
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
lea ecx, [esp + 0xb0]
call fcn.00401450
test al, al
je 0x5a9f7c
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xac]
mov ecx, eax
lea esi, [esp + 0x110]
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xac]
call fcn.00404970
mov ecx, dword [ebp + 0xcc]
lea edx, [esp + 0xa8]
push edx
mov byte [esp + 0x14c], 3
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0xac]
call fcn.00404760
mov esi, dword [esp + 0x14]
cmp byte [esi], 1
jne 0x5a9fd7
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*8 + 0x36]
mov ebx, dword [ebx + eax*4]
test ebx, ebx
je 0x5aa0cd
mov edx, dword [ebx]
push 0
mov ecx, ebx
jmp 0x5aa0ca
lea eax, [esp + 0x2c]
push eax
push 0x3070
call fcn.006a8c20
mov eax, dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x5a9ff6
mov eax, 0x765608
movsx ecx, word [esi + 0x3c]
push ecx
lea edx, [esp + 0x114]
push eax
push edx
call fcn.00727335
mov eax, dword [esp + 0x28]
add esp, 0xc
lea eax, [eax + eax*8 + 0x36]
lea ebx, [ebx + eax*4]
cmp dword [ebx], 0
je 0x5aa0cd
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0xbc], cl
lea ecx, [esp + 0xbc]
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
lea ecx, [esp + 0xbc]
push edi
mov dword [esp + 0x20], edi
call fcn.00401450
test al, al
je 0x5aa094
mov ecx, edi
mov edi, dword [esp + 0xbc]
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xbc]
call fcn.00404970
mov esi, dword [esp + 0x14]
mov ecx, dword [ebx]
lea eax, [esp + 0xb8]
push eax
mov byte [esp + 0x14c], 4
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0xbc]
mov byte [esp + 0x14c], 0
call fcn.00404760
mov ecx, dword [ebx]
push 1
mov edx, dword [ecx]
call dword [edx + 0x44]
mov edi, dword [esi + 0xc]
lea eax, [esp + 0x2c]
push eax
push 0x3074
call fcn.006a8c20
mov ecx, dword [esp + 0x38]
add esp, 8
test ecx, ecx
jne 0x5aa0ef
mov ecx, 0x765608
mov eax, edi
mov ebx, 0x64
cdq
idiv ebx
mov eax, edi
mov ebx, 0x2710
push edx
cdq
idiv ebx
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
push edx
mov edi, 0xf4240
cdq
idiv edi
mov eax, 0x68db8bad
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push ecx
lea ecx, [esp + 0x120]
push ecx
call fcn.00727335
mov eax, dword [ebp + 0xd0]
add esp, 0x14
test eax, eax
je 0x5aa1de
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x7c], dl
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x7c]
push ebx
call fcn.00401450
test al, al
je 0x5aa1b0
mov edi, dword [esp + 0x7c]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x7c]
call fcn.00404970
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd0]
lea eax, [esp + 0x78]
push eax
mov byte [esp + 0x14c], 5
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0x7c]
mov byte [esp + 0x14c], 0
call fcn.00404760
mov eax, dword [esi + 0x10]
cmp eax, 1
jle 0x5aa29b
push eax
lea ecx, [esp + 0x114]
push 0x7a3f58
push ecx
call fcn.00727335
mov eax, dword [ebp + 0xd4]
add esp, 0xc
test eax, eax
je 0x5aa332
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x6c], dl
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x6c]
push ebx
call fcn.00401450
test al, al
je 0x5aa26d
mov edi, dword [esp + 0x6c]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x6c]
call fcn.00404970
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd4]
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x14c], 6
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0x6c]
jmp 0x5aa32d
mov eax, dword [ebp + 0xd4]
test eax, eax
je 0x5aa332
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x5c], cl
lea ecx, [esp + 0x5c]
call fcn.00404760
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x5c]
push ebx
call fcn.00401450
test al, al
je 0x5aa304
mov edi, dword [esp + 0x5c]
mov ecx, ebx
mov edx, ecx
mov esi, 0x7c4d88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x5c]
call fcn.00404970
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x14c], 7
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0x5c]
call fcn.00404760
mov ecx, dword [esi + 8]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
je 0x5aa6d6
mov eax, 0x10624dd3
mov edi, dword [0x93c8a8]
mul ecx
shr edx, 6
lea ecx, [esp + 0x50]
lea eax, [edx + edx*4]
lea edx, [esp + 0xc8]
push ecx
push edx
lea eax, [eax + eax*4]
lea ecx, [edi + 0x14]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [esp + 0x58], eax
call fcn.0045e410
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0xc8]
cmp eax, edi
jne 0x5aa47b
xor ebx, ebx
mov dword [esp + 0x28], ebx
xor eax, eax
test ebx, ebx
mov dword [esp + 0x24], eax
je 0x5aa6d6
test eax, eax
je 0x5aa6d6
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xf4]
mov byte [esp + 0xf4], dl
call fcn.00404760
mov al, byte [esp + 0x13]
mov byte [esp + 0x148], 8
push 0
lea ecx, [esp + 0xe4]
mov byte [esp + 0xe4], al
call fcn.00404760
mov eax, dword [0x93c98c]
mov byte [esp + 0x148], 9
mov ecx, dword [eax + 0x48c]
mov edx, dword [eax + 0x494]
push ecx
lea eax, [esp + 0x140]
push edx
lea ecx, [esp + 0x140]
push eax
lea edx, [esp + 0xec]
push ecx
mov ecx, dword [esi + 8]
lea eax, [esp + 0x100]
push edx
push eax
push ecx
push ebx
call fcn.006a9350
push 0x40
call fcn.00726f70
mov ebx, eax
add esp, 0x24
mov dword [esp + 0x18], ebx
test ebx, ebx
mov byte [esp + 0x148], 0xa
je 0x5aa4dc
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], dl
call fcn.00404760
mov al, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0xb
push esi
mov byte [ecx], al
call fcn.00404760
mov byte [esp + 0x148], 0xa
jmp 0x5aa4e0
lea ebx, [eax + 0x10]
test ebx, ebx
mov dword [esp + 0x28], ebx
je 0x5aa394
mov cl, byte [ebx + 4]
cmp cl, 0x18
jae 0x5aa394
mov eax, dword [esi + 8]
xor edx, edx
mov edi, 0x3e8
and ecx, 0xff
div edi
mov edi, dword [ecx*4 + 0x93c8ac]
lea eax, [esp + 0x20]
lea ecx, [esp + 0x54]
push eax
push ecx
lea ecx, [edi + 0x14]
mov dword [esp + 0x28], edx
call fcn.0045e480
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x5aa394
add eax, 0x10
jmp 0x5aa396
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 9
je 0x5aaacc
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5aa549
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 0x24]
lea eax, [ebx + 0x20]
mov edx, ecx
mov esi, 0x7c4d88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call fcn.00404970
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], edi
mov edx, dword [0x76560c]
lea eax, [esp + 0xe0]
push edx
push 0
push eax
lea ecx, [ebx + 4]
call fcn.00404560
mov ecx, dword [esp + 0x14]
push 0x100
mov edx, dword [ecx + 0x10]
mov dword [ebx + 0x38], edx
movsx eax, word [esi + 0x4e]
movsx ecx, word [edi + 0x3e]
add eax, ecx
mov dword [ebx + 0x3c], eax
mov dword [ebp + 0xe4], ebx
call fcn.00726f70
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x148], 0xd
je 0x5aa5b3
mov ecx, eax
call fcn.004f2790
jmp 0x5aa5b5
xor eax, eax
mov edx, dword [ebp + 0xe4]
mov byte [esp + 0x148], 9
mov dword [edx], eax
mov eax, dword [ebp + 0xe4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x4c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x70]
mov eax, dword [ebp + 0xe4]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040b630
mov edx, dword [ebp + 0xe4]
push 0x3f340000
push 0x3f340000
push 0
mov ecx, dword [edx]
push 0
call fcn.0040bcf0
mov eax, dword [ebp + 0xe4]
push 0x110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0xe4]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [ebp + 0xdc]
test eax, eax
je 0x5aa6a3
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0x88], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x8c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x90], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0x94], edx
mov ecx, dword [eax]
lea eax, [esp + 0x88]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0xe4]
mov edx, dword [esp + 0x88]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x94]
mov dword [eax + 0xc], ecx
push 1
lea ecx, [esp + 0xe4]
mov byte [esp + 0x14c], 8
call fcn.00404760
push 1
lea ecx, [esp + 0xf4]
mov byte [esp + 0x14c], 0
call fcn.00404760
xor esi, esi
jmp 0x5aa953
push 0x40
call fcn.00726f70
mov ebx, eax
add esp, 4
mov dword [esp + 0x50], ebx
test ebx, ebx
mov byte [esp + 0x148], 0xe
je 0x5aa724
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], dl
call fcn.00404760
mov al, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0xf
push esi
mov byte [ecx], al
call fcn.00404760
mov byte [esp + 0x148], 0xe
jmp 0x5aa728
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 0
je 0x5aaaf8
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5aa793
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 0x24]
lea eax, [ebx + 0x20]
mov edx, ecx
mov esi, 0x7c4d88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call fcn.00404970
xor esi, esi
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
mov eax, dword [edx + 0x34]
lea edx, [ebx + 4]
cmp eax, esi
jne 0x5aa7e9
mov edi, 0x7a80ac
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5aa833
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 8]
lea eax, [ebx + 4]
mov edx, ecx
mov esi, 0x7a80ac
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
jmp 0x5aa829
mov edi, 0x7a8090
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5aa833
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 8]
lea eax, [ebx + 4]
mov edx, ecx
mov esi, 0x7a8090
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call fcn.00404970
xor esi, esi
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], esi
push 0x100
mov dword [ebp + 0xe4], ebx
call fcn.00726f70
add esp, 4
mov dword [esp + 0x50], eax
cmp eax, esi
mov byte [esp + 0x148], 0x11
je 0x5aa865
mov ecx, eax
call fcn.004f2790
jmp 0x5aa867
xor eax, eax
mov edx, dword [ebp + 0xe4]
mov byte [esp + 0x148], 0
mov dword [edx], eax
mov eax, dword [ebp + 0xe4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x4c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x70]
mov eax, dword [ebp + 0xe4]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040b630
mov edx, dword [ebp + 0xe4]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040bcf0
mov eax, dword [ebp + 0xe4]
push 0x110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0xe4]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [ebp + 0xdc]
cmp eax, esi
je 0x5aa953
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xa0], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0xa4], edx
mov ecx, dword [eax]
lea eax, [esp + 0x98]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0xe4]
mov edx, dword [esp + 0x98]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp + 0xc8]
cmp ecx, esi
je 0x5aaa93
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x5aa9ac
mov edi, dword [esp + 0x28]
cmp edi, esi
je 0x5aa9ac
mov edx, dword [esp + 0x24]
xor eax, eax
mov al, byte [edx + 0x34]
cmp eax, 4
je 0x5aa99b
cmp eax, 3
je 0x5aa99b
cmp eax, 6
je 0x5aa99b
mov eax, dword [ecx]
add edi, 8
push edi
call dword [eax + 0x9c]
jmp 0x5aaa93
mov eax, dword [ecx]
add edx, 4
push edx
call dword [eax + 0x9c]
jmp 0x5aaa93
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x38], 2
jne 0x5aaa87
lea ecx, [esp + 0x2c]
push ecx
push 0x3071
call fcn.006a8c20
mov eax, dword [edi + 0x28]
add esp, 8
cmp eax, esi
mov ecx, 0x765608
je 0x5aa9da
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x5aa9e7
mov eax, 0x765608
push ecx
lea edx, [esp + 0x114]
push eax
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3c], al
push esi
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x40]
push ebx
call fcn.00401450
test al, al
je 0x5aaa57
mov edi, dword [esp + 0x40]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebx
xor esi, esi
mov byte [ebx + eax], 0
mov ecx, dword [ebp + 0xc8]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x14c], 0x12
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c], 0
call fcn.00404760
jmp 0x5aaa93
mov edx, dword [ecx]
add edi, 0x24
push edi
call dword [edx + 0x9c]
mov ebp, dword [ebp + 0xc4]
cmp ebp, esi
je 0x5aaaa7
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x44]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
add eax, 0x40
mov dword [esp + 0x14], eax
mov esi, eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 5
mov dword [esp + 0x1c], eax
jl 0x5a9dc4
jmp 0x5aaaf8
push 1
lea ecx, [esp + 0xe4]
mov byte [esp + 0x14c], 8
call fcn.00404760
push 1
lea ecx, [esp + 0xf4]
mov byte [esp + 0x14c], 0
call fcn.00404760
push 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x14c], 0xffffffff
call fcn.00404760
jmp 0x5abb02
cmp eax, 1
jne 0x5abb02
mov eax, dword [ebx + 0x2d0]
test eax, eax
je 0x5abb02
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
je 0x5abb02
cmp dword [ebx + 0x2f0], 1
jne 0x5abb02
mov eax, dword [ebx + 0x2d0]
test eax, eax
jne 0x5aab64
xor edx, edx
jmp 0x5aab7d
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [ebx + 0x2d0]
mov edi, edx
shr edi, 2
test eax, eax
jne 0x5aab97
xor edx, edx
jmp 0x5aabb0
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, edx
xor edx, edx
mov ecx, 5
div ecx
test edx, edx
jbe 0x5aabc0
inc edi
mov ecx, dword [ebx + 0x2dc]
lea eax, [edi - 1]
cmp ecx, eax
jbe 0x5aabd3
mov dword [ebx + 0x2dc], eax
mov eax, dword [ebx + 0x2dc]
lea esi, [eax + eax*4]
mov eax, dword [ebx + 0x2d0]
test eax, eax
mov dword [esp + 0x54], esi
je 0x5abb02
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jae 0x5abb02
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0xe4], cl
lea ecx, [esp + 0xe4]
call fcn.00404760
lea edx, [esp + 0xe0]
mov dword [esp + 0x148], 0x13
push edx
push 0x3072
call fcn.006a8c20
mov eax, dword [esp + 0xec]
add esp, 8
test eax, eax
jne 0x5aac58
mov eax, 0x765608
mov ecx, dword [ebx + 0x2dc]
push edi
inc ecx
lea edx, [esp + 0x114]
push ecx
push eax
push edx
call fcn.00727335
mov eax, dword [ebx + 0x268]
add esp, 0x10
test eax, eax
je 0x5aad0f
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x40]
mov byte [esp + 0x40], al
call fcn.00404760
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x40]
push ebp
call fcn.00401450
test al, al
je 0x5aacdd
mov edi, dword [esp + 0x40]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
mov byte [eax + ebp], 0
mov ecx, dword [ebx + 0x268]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x14c], 0x14
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c], 0x13
call fcn.00404760
mov esi, dword [esp + 0x54]
mov edi, dword [ebx + 0x2d0]
mov ecx, dword [ebx + 0x2d4]
test esi, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x54], ecx
jle 0x5aad35
mov edx, esi
shl edx, 4
add edx, esi
lea edi, [edi + edx*4]
mov dword [esp + 0x14], edi
mov ecx, dword [ebx + 0x24c]
test ecx, ecx
je 0x5aad46
mov eax, dword [ecx]
push 2
call dword [eax + 0x3c]
xor esi, esi
mov dword [esp + 0x28], esi
cmp edi, dword [esp + 0x54]
je 0x5ab9da
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x30], cl
lea ecx, [esp + 0x30]
call fcn.00404760
mov edi, dword [edi + 0xc]
lea edx, [esp + 0x2c]
push edx
push 0x3075
mov byte [esp + 0x150], 0x15
call fcn.006a8c20
mov ecx, dword [esp + 0x38]
add esp, 8
test ecx, ecx
jne 0x5aad93
mov ecx, 0x765608
mov eax, edi
mov ebp, 0x64
cdq
idiv ebp
mov eax, edi
mov ebp, 0x2710
push edx
cdq
idiv ebp
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
push edx
mov edi, 0xf4240
cdq
idiv edi
mov eax, 0x68db8bad
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push ecx
lea ecx, [esp + 0x100]
push ecx
call fcn.00727335
lea edx, [esi + esi*8]
xor esi, esi
add esp, 0x14
mov eax, dword [ebx + edx*4 + 0x1a8]
lea ebp, [ebx + edx*4]
cmp eax, esi
je 0x5aaea7
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
mov byte [esp + 0xb8], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xbc], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xc0], esi
push ecx
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xcc], esi
call fcn.004047b0
mov ecx, dword [ebp + 0x1a8]
lea eax, [esp + 0xb8]
push eax
mov byte [esp + 0x14c], 0x16
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0xbc]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5aae92
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5aae89
cmp al, 0xff
je 0x5aae89
dec al
mov byte [ecx], al
jmp 0x5aae92
push ecx
call fcn.00726ea6
add esp, 4
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], esi
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
je 0x5aaece
movsx ecx, word [eax + 0x14]
mov edi, 4
sub edi, ecx
mov ecx, dword [ebp + 0x19c]
cmp ecx, esi
je 0x5aaee3
mov edx, dword [ecx]
push 1
call dword [edx + 0x44]
jmp 0x5aaee3
mov ecx, dword [ebp + 0x19c]
movsx edi, word [eax + 0x14]
cmp ecx, esi
je 0x5aaee3
mov eax, dword [ecx]
push 1
call dword [eax + 0x44]
lea ecx, [esp + 0x2c]
push ecx
push 0x3070
call fcn.006a8c20
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, esi
jne 0x5aaf02
mov eax, 0x765608
push edi
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.00727335
mov eax, dword [ebp + 0x1ac]
add esp, 0xc
cmp eax, esi
je 0x5aafcb
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
mov byte [esp + 0xa8], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xac], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xb0], esi
push ecx
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0xbc], esi
call fcn.004047b0
mov ecx, dword [ebp + 0x1ac]
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x14c], 0x17
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5aafb6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5aafad
cmp al, 0xff
je 0x5aafad
dec al
mov byte [ecx], al
jmp 0x5aafb6
push ecx
call fcn.00726ea6
add esp, 4
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], esi
mov ecx, dword [esp + 0x14]
mov edi, 0x7c4d88
xor eax, eax
lea ebx, [ecx + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edx, dword [ebx + 8]
not ecx
dec ecx
push ecx
push 0x7c4d88
push edx
push esi
mov ecx, ebx
call fcn.0040af30
cmp eax, esi
jne 0x5ab0c8
cmp dword [ebp + 0x1a4], esi
je 0x5ab1bc
mov al, byte [esp + 0x13]
mov edi, 0x7c4d88
mov byte [esp + 0x98], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x9c], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xa0], esi
push ecx
push 0x7c4d88
lea ecx, [esp + 0xa0]
mov dword [esp + 0xac], esi
call fcn.004047b0
mov ecx, dword [ebp + 0x1a4]
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x14c], 0x18
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0x9c]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5ab0ae
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ab0a5
cmp al, 0xff
je 0x5ab0a5
dec al
mov byte [ecx], al
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
jmp 0x5ab1bc
push ecx
call fcn.00726ea6
add esp, 4
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
jmp 0x5ab1bc
lea ecx, [esp + 0x2c]
push ecx
push 0x3073
call fcn.006a8c20
mov ebx, dword [ebx + 4]
add esp, 8
cmp ebx, esi
jne 0x5ab0e6
mov ebx, 0x765608
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x5ab0f3
mov eax, 0x765608
push ebx
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.00727335
mov eax, dword [ebp + 0x1a4]
add esp, 0xc
cmp eax, esi
je 0x5ab1bc
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
mov byte [esp + 0x88], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x8c], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x90], esi
push ecx
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0x9c], esi
call fcn.004047b0
mov ecx, dword [ebp + 0x1a4]
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x14c], 0x19
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0x8c]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5ab1a7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ab19e
cmp al, 0xff
je 0x5ab19e
dec al
mov byte [ecx], al
jmp 0x5ab1a7
push ecx
call fcn.00726ea6
add esp, 4
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], esi
mov ecx, dword [ecx + 8]
cmp ecx, esi
je 0x5ab5b7
mov eax, 0x10624dd3
mov edi, dword [0x93c8a8]
mul ecx
shr edx, 6
lea ecx, [esp + 0xc8]
lea edx, [edx + edx*4]
lea eax, [edx + edx*4]
lea edx, [eax + eax*4]
lea eax, [esp + 0x20]
push eax
push ecx
shl edx, 3
lea ecx, [edi + 0x14]
mov dword [esp + 0x28], edx
call fcn.0045e410
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0xc8]
cmp eax, edi
jne 0x5ab304
xor ebx, ebx
mov dword [esp + 0x24], ebx
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x1c], eax
je 0x5ab5b7
cmp eax, esi
je 0x5ab5b7
mov dl, byte [esp + 0x13]
mov dword [esp + 0x7c], esi
mov byte [esp + 0x78], dl
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov al, byte [esp + 0x13]
mov byte [esp + 0x148], 0x1a
mov byte [esp + 0x58], al
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov eax, dword [0x93c98c]
mov byte [esp + 0x148], 0x1b
mov ecx, dword [eax + 0x48c]
mov edx, dword [eax + 0x494]
push ecx
lea eax, [esp + 0x13c]
push edx
lea ecx, [esp + 0x144]
push eax
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x8c]
mov edx, dword [ecx + 8]
push eax
push edx
push ebx
call fcn.006a9350
push 0x40
call fcn.00726f70
mov ebx, eax
add esp, 0x24
mov dword [esp + 0x18], ebx
cmp ebx, esi
mov byte [esp + 0x148], 0x1c
je 0x5ab36f
mov al, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], al
call fcn.00404760
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0x1d
push esi
mov byte [ecx], dl
call fcn.00404760
mov byte [esp + 0x148], 0x1c
jmp 0x5ab373
lea ebx, [eax + 0x10]
cmp ebx, esi
mov dword [esp + 0x24], ebx
je 0x5ab220
mov cl, byte [ebx + 4]
cmp cl, 0x18
jae 0x5ab220
mov edx, dword [esp + 0x14]
mov edi, 0x3e8
and ecx, 0xff
mov eax, dword [edx + 8]
xor edx, edx
div edi
mov edi, dword [ecx*4 + 0x93c8ac]
lea eax, [esp + 0x50]
lea ecx, [esp + 0xdc]
push eax
push ecx
lea ecx, [edi + 0x14]
mov dword [esp + 0x58], edx
call fcn.0045e480
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0xdc]
cmp eax, edi
je 0x5ab220
add eax, 0x10
jmp 0x5ab222
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 0x1b
je 0x5aba1f
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5ab3de
mov edx, dword [esp + 0x18]
mov edi, dword [ebx + 0x24]
mov ecx, edx
mov esi, 0x7c4d88
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x28], edx
add eax, edx
xor esi, esi
mov byte [eax], 0
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], edi
mov edx, dword [0x76560c]
lea eax, [esp + 0x58]
push edx
push esi
push eax
lea ecx, [ebx + 4]
call fcn.00404560
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x38], 1
movsx eax, word [edi + 0x3e]
movsx edx, word [ecx + 0x4e]
add edx, eax
push 0x100
mov dword [ebx + 0x3c], edx
mov dword [ebp + 0x1b8], ebx
call fcn.00726f70
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, esi
mov byte [esp + 0x148], 0x1f
je 0x5ab445
mov ecx, eax
call fcn.004f2790
jmp 0x5ab447
xor eax, eax
mov ecx, dword [ebp + 0x1b8]
mov edi, dword [esp + 0x4c]
mov byte [esp + 0x148], 0x1b
push edi
mov dword [ecx], eax
mov edx, dword [ebp + 0x1b8]
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [ebp + 0x1b8]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040b630
mov edx, dword [ebp + 0x1b8]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040bcf0
mov eax, dword [ebp + 0x1b8]
push 0x4110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0x1b8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*8 + 0x6c]
mov eax, dword [edi + eax*4]
cmp eax, esi
je 0x5ab538
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xd4], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x1b8]
mov dword [esp + 0xd8], edx
mov ecx, dword [eax]
lea eax, [esp + 0xcc]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0x1b8]
mov edx, dword [esp + 0xcc]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0xd0]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xd4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xd8]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x148], 0x1a
cmp eax, esi
je 0x5ab565
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ab55c
cmp al, 0xff
je 0x5ab55c
dec al
mov byte [ecx], al
jmp 0x5ab565
push ecx
call fcn.00726ea6
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
cmp eax, esi
mov byte [esp + 0x148], 0x15
je 0x5ab59e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ab595
cmp al, 0xff
je 0x5ab595
dec al
mov byte [ecx], al
jmp 0x5ab59e
push ecx
call fcn.00726ea6
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
xor esi, esi
jmp 0x5ab80b
push 0x40
call fcn.00726f70
mov ebx, eax
add esp, 4
mov dword [esp + 0x20], ebx
cmp ebx, esi
mov byte [esp + 0x148], 0x20
je 0x5ab605
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], dl
call fcn.00404760
mov al, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0x21
push esi
mov byte [ecx], al
call fcn.00404760
mov byte [esp + 0x148], 0x20
jmp 0x5ab609
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 0x15
je 0x5aba97
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x24], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5ab674
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 0x24]
mov ecx, eax
mov esi, 0x7c4d88
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x28], eax
add eax, ecx
xor esi, esi
mov byte [eax], 0
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
lea edx, [ebx + 4]
cmp dword [eax + 0x38], esi
jne 0x5ab6b7
mov edi, 0x7a80ac
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5ab701
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 8]
mov ecx, eax
mov esi, 0x7a80ac
jmp 0x5ab6e6
mov edi, 0x7a8090
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], ecx
push ecx
mov ecx, edx
call fcn.00401450
test al, al
je 0x5ab701
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 8]
mov ecx, eax
mov esi, 0x7a8090
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 8]
add eax, ecx
xor esi, esi
mov byte [eax], 0
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], esi
push 0x100
mov dword [ebp + 0x1b8], ebx
call fcn.00726f70
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, esi
mov byte [esp + 0x148], 0x23
je 0x5ab733
mov ecx, eax
call fcn.004f2790
jmp 0x5ab735
xor eax, eax
mov ecx, dword [ebp + 0x1b8]
mov edi, dword [esp + 0x4c]
mov byte [esp + 0x148], 0x15
push edi
mov dword [ecx], eax
mov edx, dword [ebp + 0x1b8]
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [ebp + 0x1b8]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040b630
mov edx, dword [ebp + 0x1b8]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040bcf0
mov eax, dword [ebp + 0x1b8]
push 0x4110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0x1b8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*8 + 0x6c]
mov eax, dword [edi + eax*4]
cmp eax, esi
je 0x5ab80b
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x1b8]
mov dword [esp + 0x48], edx
mov ecx, dword [eax]
lea eax, [esp + 0x3c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0x1b8]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp + 0x1a0]
mov ebx, dword [esp + 0x14]
cmp ecx, esi
je 0x5ab96d
cmp byte [ebx], 0
je 0x5ab85e
mov edi, dword [esp + 0x24]
cmp edi, esi
je 0x5ab85e
mov edx, dword [esp + 0x1c]
xor eax, eax
mov al, byte [edx + 0x34]
cmp eax, 4
je 0x5ab84d
cmp eax, 3
je 0x5ab84d
cmp eax, 6
je 0x5ab84d
mov edx, dword [ecx]
add edi, 8
push edi
jmp 0x5ab967
mov eax, dword [ecx]
add edx, 4
push edx
call dword [eax + 0x9c]
jmp 0x5ab96d
cmp dword [ebx + 0x3c], 2
jne 0x5ab961
lea ecx, [esp + 0x2c]
push ecx
push 0x3071
call fcn.006a8c20
mov eax, dword [ebx + 0x2c]
add esp, 8
cmp eax, esi
mov ecx, 0x765608
je 0x5ab888
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x5ab895
mov eax, 0x765608
push ecx
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
lea edi, [esp + 0xfc]
mov byte [esp + 0x74], al
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x6c]
push ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
call fcn.00401450
test al, al
je 0x5ab907
mov edi, dword [esp + 0x6c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xf0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], ebx
xor esi, esi
mov byte [eax + ebx], 0
mov ecx, dword [ebp + 0x1a0]
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x14c], 0x24
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5ab94f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ab946
cmp al, 0xff
je 0x5ab946
dec al
mov byte [ecx], al
jmp 0x5ab94f
push ecx
call fcn.00726ea6
add esp, 4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
jmp 0x5ab96d
mov edx, dword [ecx]
lea eax, [ebx + 0x28]
push eax
call dword [edx + 0x9c]
mov ecx, dword [ebp + 0x19c]
push 2
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov ebp, dword [ebp + 0x198]
cmp ebp, esi
je 0x5ab98e
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x44]
mov eax, dword [esp + 0x30]
add ebx, 0x44
cmp eax, esi
mov dword [esp + 0x14], ebx
mov byte [esp + 0x148], 0x13
je 0x5ab9c2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ab9b9
cmp al, 0xff
je 0x5ab9b9
dec al
mov byte [ecx], al
jmp 0x5ab9c2
push ecx
call fcn.00726ea6
add esp, 4
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x28]
inc esi
cmp esi, 5
mov dword [esp + 0x28], esi
jl 0x5aad4c
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x148], 0xffffffff
test ecx, ecx
je 0x5abb02
mov al, byte [ecx - 1]
test al, al
je 0x5abaf8
cmp al, 0xff
je 0x5abaf8
dec al
mov byte [ecx - 1], al
jmp 0x5abb02
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x148], 0x1a
cmp eax, esi
je 0x5aba4c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5aba43
cmp al, 0xff
je 0x5aba43
dec al
mov byte [ecx], al
jmp 0x5aba4c
push ecx
call fcn.00726ea6
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
cmp eax, esi
mov byte [esp + 0x148], 0x15
je 0x5aba85
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5aba7c
cmp al, 0xff
je 0x5aba7c
dec al
mov byte [ecx], al
jmp 0x5aba85
push ecx
call fcn.00726ea6
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0x30]
mov byte [esp + 0x148], 0x13
cmp eax, esi
je 0x5abac4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5ababb
cmp al, 0xff
je 0x5ababb
dec al
mov byte [ecx], al
jmp 0x5abac4
push ecx
call fcn.00726ea6
add esp, 4
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
cmp ecx, esi
mov dword [esp + 0x148], 0xffffffff
je 0x5abb02
mov al, byte [ecx - 1]
test al, al
je 0x5abaf8
cmp al, 0xff
je 0x5abaf8
dec al
mov byte [ecx - 1], al
jmp 0x5abb02
dec ecx
push ecx
call fcn.00726ea6
add esp, 4
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret 4