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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
mov edx, dword [esp + 0xc]
push 0x756bab
push eax
mov dword fs:[0], esp
sub esp, 0x194
test edx, edx
push ebx
push ebp
push esi
push edi
mov ebx, ecx
je 0x6095c0
mov ecx, dword [0x93c97c]
mov eax, dword [ecx + 0x2fc]
cmp eax, 4
je 0x6095c0
cmp eax, 5
je 0x6095c0
mov eax, dword [edx]
mov ebp, dword [esp + 0x1b4]
cmp eax, 0x7a146
jne 0x607b7e
cmp ebp, 0xffffffff
mov dword [ebx + 0xdc], ebp
je 0x607b1f
cmp ebp, 0xfffffffe
jne 0x607c0a
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.00404760
lea ecx, [esp + 0x18]
mov dword [esp + 0x1ac], 0
push ecx
push 0x1dc0
call fcn.006a8c20
mov ecx, dword [ebx + 0x18]
add esp, 8
lea edx, [esp + 0x18]
push 0xffffff00
push edx
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp eax, 0x7a513
jne 0x607bf4
cmp ebp, 0xffffffff
mov dword [ebx + 0xdc], ebp
je 0x607b95
cmp ebp, 0xfffffffe
jne 0x607c0a
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.00404760
lea ecx, [esp + 0x18]
mov dword [esp + 0x1ac], 1
push ecx
push 0x1e00
call fcn.006a8c20
mov ecx, dword [ebx + 0x18]
add esp, 8
lea edx, [esp + 0x18]
push 0xffffff00
push edx
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp eax, 0x1fbdd
je 0x609b6d
cmp eax, 0x1fbde
je 0x609b6d
cmp dword [edx + 0x5c], 0xf0
jne 0x607d34
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.00404760
lea ecx, [esp + 0x18]
mov dword [esp + 0x1ac], 5
push ecx
push 0x1132
call fcn.006a8c20
mov edx, dword [esp + 0x1c0]
add esp, 8
mov eax, dword [edx + 0x18]
test eax, eax
jne 0x607c5a
mov eax, 0x765608
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x607c67
mov ecx, 0x765608
push eax
lea eax, [esp + 0x158]
push ecx
push eax
call fcn.00727335
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x38], cl
lea ecx, [esp + 0x38]
push 0
call fcn.00404760
lea edi, [esp + 0x154]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x3c]
push ebp
call fcn.00401450
test al, al
je 0x607cd4
mov edi, dword [esp + 0x3c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x154]
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 + 0x3c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x38]
push 0xffffff00
push eax
mov byte [esp + 0x1b4], 6
call fcn.00663960
push 1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1b0], 5
call fcn.00404760
mov ecx, dword [0x93cc60]
push 0
push ecx
call fcn.006fa950
add esp, 8
mov byte [ebx + 0x1a4], 1
lea ecx, [esp + 0x18]
mov dword [esp + 0x1ac], 0xffffffff
push 1
call fcn.00404760
jmp 0x6092c8
lea edx, [esp + 0x1b8]
lea eax, [esp + 0x50]
push edx
lea ecx, [ebx + 0x78]
push eax
call fcn.00613f30
mov eax, dword [ebx + 0x7c]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x1b8]
cmp ecx, eax
je 0x607d75
fild dword [esi + 0x7c]
fmul dword [0x766340]
fcomp dword [esi + 0x80]
fnstsw ax
test ah, 0x41
je 0x6095c0
mov eax, dword [esi]
cmp eax, 0x77a80
je 0x607dac
cmp eax, 0x77a81
je 0x607dac
cmp eax, 0x77a82
je 0x607dac
cmp eax, 0x77a83
je 0x607dac
cmp eax, 0x77a84
je 0x607dac
cmp eax, 0x77a85
je 0x607dac
cmp eax, 0x77a86
jne 0x607e32
mov edi, 0x77a80
mov esi, dword [0x93c904]
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x48]
push ecx
push edx
lea ecx, [esi + 0x14]
mov dword [esp + 0x54], edi
call fcn.0047a4e0
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x607ddc
xor eax, eax
jmp 0x607ddf
add eax, 0x10
test eax, eax
mov dword [esp + 0x14], eax
je 0x607e22
lea eax, [esp + 0x14]
lea ecx, [esp + 0x38]
push eax
push ecx
lea ecx, [ebx + 0x78]
call fcn.00613f30
mov eax, dword [ebx + 0x7c]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
je 0x607e22
mov eax, dword [esp + 0x14]
fild dword [eax + 0x7c]
fmul dword [0x766340]
fcomp dword [eax + 0x80]
fnstsw ax
test ah, 0x41
je 0x607faa
inc edi
cmp edi, 0x77a86
jle 0x607db1
mov esi, dword [esp + 0x1b8]
mov edi, dword [0x93c97c]
mov al, byte [edi + 0x4a8]
test al, al
jne 0x608328
cmp dword [edi + 0x4ac], 0xffffffff
jne 0x608328
mov ecx, dword [esi + 0x38]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0xb
je 0x607e7f
cmp edx, 0xc
je 0x607e7f
cmp edx, 0xd
je 0x607e7f
cmp edx, 0xe
jne 0x608ecc
mov eax, ecx
mov ecx, 0xa
cdq
idiv ecx
cmp edx, 1
je 0x6080c2
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
call fcn.00404760
lea eax, [esp + 0x28]
mov dword [esp + 0x1ac], 9
push eax
push 0xfa4
call fcn.006a8c20
mov cl, byte [0x7c4d78]
xor eax, eax
mov byte [esp + 0x5c], cl
mov ecx, 0x3f
lea edi, [esp + 0x5d]
mov edx, dword [esp + 0x1c0]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [edx + 0x18]
add esp, 8
test eax, eax
jne 0x607eef
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x607efc
mov ecx, 0x765608
push eax
lea eax, [esp + 0x58]
push ecx
push eax
call fcn.00727335
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x607f60
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0xa
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 9
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
call fcn.00404760
lea eax, [esp + 0x28]
mov dword [esp + 0x1ac], 7
push eax
push 0xfa4
call fcn.006a8c20
mov cl, byte [0x7c4d78]
xor eax, eax
mov byte [esp + 0x5c], cl
mov ecx, 0x3f
lea edi, [esp + 0x5d]
mov edx, dword [esp + 0x1c0]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [edx + 0x18]
add esp, 8
test eax, eax
jne 0x608007
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608014
mov ecx, 0x765608
push eax
lea eax, [esp + 0x58]
push ecx
push eax
call fcn.00727335
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x608078
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 8
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 7
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov ecx, dword [esi]
mov eax, dword [edi + 0x8a0]
cmp ecx, 0x6ddd5
jne 0x608208
cmp eax, 0x3d
je 0x608ecc
cmp eax, 0x3e
je 0x608ecc
cmp eax, 0x3f
je 0x608ecc
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0xb
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x60814d
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x60815a
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x6081be
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0xc
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0xb
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp eax, 0x1e
je 0x608ecc
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0xd
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x60826d
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x60827a
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x6082de
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0xe
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0xd
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov ecx, dword [esi + 0x38]
mov eax, 0x66666667
imul ecx
mov eax, dword [edi + 0x4ac]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp eax, 0x753a
jne 0x608715
cmp edx, 0xb
je 0x60846e
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
call fcn.00404760
lea eax, [esp + 0x28]
mov dword [esp + 0x1ac], 0xf
push eax
push 0xfa4
call fcn.006a8c20
mov cl, byte [0x7c4d78]
xor eax, eax
mov byte [esp + 0x5c], cl
mov ecx, 0x3f
lea edi, [esp + 0x5d]
mov edx, dword [esp + 0x1c0]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [edx + 0x18]
add esp, 8
test eax, eax
jne 0x6083b3
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x6083c0
mov ecx, 0x765608
push eax
lea eax, [esp + 0x58]
push ecx
push eax
call fcn.00727335
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x608424
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0x10
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0xf
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov eax, dword [esi]
mov ecx, dword [edi + 0x8a0]
cmp eax, 0x77a80
je 0x6085e3
cmp eax, 0x77a81
je 0x6085e3
cmp eax, 0x77a82
je 0x6085e3
cmp eax, 0x77a83
je 0x6085e3
cmp eax, 0x77a84
je 0x6085e3
cmp eax, 0x77a85
je 0x6085e3
cmp eax, 0x77a86
je 0x6085e3
cmp ecx, 0x1e
je 0x608d74
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x13
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x608528
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608535
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x608599
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0x14
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0x13
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp ecx, 0x3d
je 0x608d74
cmp ecx, 0x3e
je 0x608d74
cmp ecx, 0x3f
je 0x608d74
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x11
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x60865a
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608667
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x6086cb
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0x12
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0x11
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp eax, 0x7558
jne 0x608b03
cmp edx, 0xc
je 0x608840
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x15
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x608785
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608792
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x6087f6
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0x16
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0x15
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov esi, dword [0x93c978]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x48]
push ecx
push edx
lea ecx, [esi + 0x28]
mov dword [esp + 0x40], ebp
call fcn.0047a390
mov esi, dword [esi + 0x2c]
mov eax, dword [esp + 0x48]
cmp eax, esi
je 0x6089a9
mov eax, dword [eax + 0x10]
test eax, eax
je 0x6089a9
cmp dword [eax + 0x2fc], 5
je 0x6089a9
mov ecx, dword [eax + 0x450]
test ecx, ecx
jne 0x6089a9
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00404760
lea ecx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x17
push ecx
push 0xfa4
call fcn.006a8c20
mov dl, byte [0x7c4d78]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x5d]
mov byte [esp + 0x5c], dl
add esp, 8
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x1b8]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x6088ee
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x6088fb
mov ecx, 0x765608
push eax
push ecx
lea ecx, [esp + 0x5c]
push ecx
call fcn.00727335
mov dl, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x60895f
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0x54]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00404970
lea ecx, [esp + 0x18]
push 0xffff3b3b
push ecx
mov ecx, dword [ebx + 0x18]
mov byte [esp + 0x1b4], 0x18
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0x17
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov esi, dword [0x93c978]
lea edx, [esp + 0x38]
lea eax, [esp + 0x48]
push edx
push eax
lea ecx, [esi + 0x38]
mov dword [esp + 0x40], ebp
call fcn.0047a320
mov esi, dword [esi + 0x3c]
mov eax, dword [esp + 0x48]
cmp eax, esi
je 0x608d67
mov eax, dword [eax + 0x10]
cmp dword [eax + 0x2fc], 5
je 0x608d67
test eax, eax
je 0x608d67
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x19
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x608a48
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608a55
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x608ab9
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0x1a
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0x19
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp eax, 0x756c
je 0x608c46
cmp eax, 0x756d
je 0x608c46
cmp eax, 0x7562
jne 0x608d74
cmp edx, 0xe
je 0x608d74
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x1d
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x608b89
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608b96
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x38]
mov byte [esp + 0x38], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x3c]
push ebp
call fcn.00401450
test al, al
je 0x608bfc
mov edi, dword [esp + 0x3c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x3c]
mov dword [esp + 0x40], ebp
mov byte [eax + ebp], 0
lea ecx, [esp + 0x38]
push 0xffff3b3b
push ecx
mov ecx, dword [ebx + 0x18]
mov byte [esp + 0x1b4], 0x1e
call fcn.00663960
push 1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1b0], 0x1d
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp edx, 0xd
je 0x608d74
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
call fcn.00404760
lea eax, [esp + 0x28]
mov dword [esp + 0x1ac], 0x1b
push eax
push 0xfa4
call fcn.006a8c20
mov cl, byte [0x7c4d78]
xor eax, eax
mov byte [esp + 0x5c], cl
mov ecx, 0x3f
lea edi, [esp + 0x5d]
mov edx, dword [esp + 0x1c0]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [edx + 0x18]
add esp, 8
test eax, eax
jne 0x608cac
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608cb9
mov ecx, 0x765608
push eax
lea eax, [esp + 0x58]
push ecx
push eax
call fcn.00727335
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00401450
test al, al
je 0x608d1d
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x1c]
call fcn.00404970
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x18]
push 0xffff3b3b
push eax
mov byte [esp + 0x1b4], 0x1c
call fcn.00663960
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b0], 0x1b
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov esi, dword [esp + 0x1b8]
mov edi, dword [0x93c97c]
test esi, esi
je 0x608ecc
mov ecx, dword [esi + 0x8c]
mov eax, 6
cmp ecx, eax
je 0x608ecc
cmp dword [esi + 0x90], eax
je 0x608ecc
mov eax, dword [esi + 0x60]
cmp eax, 0x64
jle 0x608ecc
cmp dword [edi + 0x4ac], eax
je 0x608ecc
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 0x1f
push edx
push 0xfa4
call fcn.006a8c20
mov al, byte [0x7c4d78]
mov ecx, 0x3f
mov byte [esp + 0x5c], al
xor eax, eax
lea edi, [esp + 0x5d]
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1b8]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x608e0f
mov eax, 0x765608
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x608e1c
mov ecx, 0x765608
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00727335
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x38]
mov byte [esp + 0x38], al
push 0
call fcn.00404760
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x3c]
push ebp
call fcn.00401450
test al, al
je 0x608e82
mov edi, dword [esp + 0x3c]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x54]
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 + 0x3c]
mov dword [esp + 0x40], ebp
mov byte [eax + ebp], 0
lea ecx, [esp + 0x38]
push 0xffff3b3b
push ecx
mov ecx, dword [ebx + 0x18]
mov byte [esp + 0x1b4], 0x20
call fcn.00663960
push 1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1b0], 0x1f
call fcn.00404760
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov eax, dword [esi + 0x34]
mov ebp, 3
test eax, eax
jl 0x608f06
cmp dword [edi + 0x2fc], 6
je 0x6095c0
cmp dword [edi + 0xb08], 0xffffffff
jne 0x6095c0
cmp byte [edi + 0xaf8], 1
jne 0x6090cc
xor al, al
jmp 0x6092ca
mov esi, dword [ebx + 0x7c]
mov eax, dword [esi]
cmp eax, esi
je 0x608f5f
mov ecx, dword [eax + 0xc]
cmp dword [ecx + 0x34], 0xffffffff
jne 0x608f2a
cmp dword [ecx + 0x5c], 1
jne 0x608f2a
cmp dword [ecx + 0x8c], ebp
je case.0x609242.14
mov ecx, dword [eax + 8]
mov edx, dword [0x93b03c]
cmp ecx, edx
je 0x608f42
push ecx
call fcn.00615180
add esp, 4
jmp 0x608f5b
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x608f54
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x608f4a
cmp dword [eax + 8], ecx
je 0x608f5b
mov eax, ecx
cmp eax, esi
jne 0x608f0f
lea edx, [esp + 0x1b8]
lea esi, [ebx + 0x88]
lea eax, [esp + 0x14]
push edx
push eax
mov ecx, esi
call fcn.00614d10
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1b8]
cmp ecx, eax
je 0x608f96
cmp edx, dword [ecx + 0xc]
jb 0x608f96
lea eax, [esp + 0x14]
jmp 0x608f9e
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov eax, dword [eax]
mov edi, dword [ebx + 0x8c]
cmp eax, edi
je 0x60905a
cmp edx, dword [eax + 0xc]
je case.0x609242.14
mov ecx, dword [eax + 8]
mov ebp, dword [0x93b03c]
cmp ecx, ebp
je 0x608fd6
push ecx
call fcn.00615180
mov edx, dword [esp + 0x1bc]
add esp, 4
jmp 0x608fef
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x608fe8
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x608fde
cmp dword [eax + 8], ecx
je 0x608fef
mov eax, ecx
cmp eax, edi
jne 0x608fae
fild dword [edx + 0x78]
lea ecx, [esp + 0x1b8]
push ecx
mov ecx, esi
fmul dword [0x766428]
fstp dword [edx + 0x84]
lea edx, [esp + 0x3c]
push edx
call fcn.006137d0
mov eax, dword [esp + 0x1b8]
test eax, eax
mov dword [esp + 0x14], eax
je 0x6095c0
fild dword [eax + 0x7c]
lea ecx, [esp + 0x38]
fmul dword [0x766428]
fstp dword [eax + 0x80]
lea eax, [esp + 0x14]
push eax
push ecx
lea ecx, [ebx + 0x78]
call fcn.006137d0
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x6090c5
mov eax, dword [esp + 0x14]
jmp 0x6090bf
fild dword [edx + 0x78]
lea ecx, [esp + 0x1b8]
push ecx
mov ecx, esi
fmul dword [0x766428]
fstp dword [edx + 0x84]
lea edx, [esp + 0x3c]
push edx
call fcn.006137d0
mov eax, dword [esp + 0x1b8]
test eax, eax
mov dword [esp + 0x14], eax
je 0x6095c0
fild dword [eax + 0x7c]
lea ecx, [esp + 0x38]
fmul dword [0x766428]
fstp dword [eax + 0x80]
lea eax, [esp + 0x14]
push eax
push ecx
lea ecx, [ebx + 0x78]
call fcn.006137d0
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x6090c5
mov eax, dword [esp + 0x14]
push eax
call fcn.004f7710
mov esi, dword [esp + 0x1b8]
test esi, esi
je 0x6095c0
mov ecx, dword [esp + 0x1b4]
push esi
push ecx
mov ecx, ebx
call fcn.00605880
test al, al
jne 0x609153
lea esi, [ebx + 0x88]
lea edx, [esp + 0x1b8]
push edx
mov ecx, esi
call fcn.00615660
mov ecx, dword [esi + 4]
mov dword [esp + 0x38], eax
cmp eax, ecx
je 0x60911c
mov edx, dword [esp + 0x1b8]
mov edi, dword [eax + 0xc]
cmp edx, edi
jb 0x60911c
lea eax, [esp + 0x38]
jmp 0x609124
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x48]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x8c]
cmp eax, ecx
je 0x6095c0
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x6095c0
push eax
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.00613a10
xor al, al
jmp 0x6092ca
mov ecx, dword [0x93c97c]
mov edx, dword [esp + 0x1b4]
push 0
push edx
lea ebp, [ecx + 0x474]
mov ecx, dword [ebx + 0x18]
call fcn.006aaa50
mov ecx, dword [0x93c97c]
mov esi, eax
mov eax, dword [ebx + 0x19c]
push 1
mov ecx, dword [ecx + 0x474]
push eax
push eax
push ecx
push ecx
mov ecx, dword [0x93cbf0]
call fcn.00487bc0
xor edi, edi
mov edx, dword [0x93c97c]
lea ecx, [edi + 0x7532]
push 1
push ecx
mov eax, dword [edx + 0x474]
mov ecx, dword [0x93cbf0]
push 0x7532
push eax
push eax
call fcn.00487bc0
inc edi
cmp edi, 8
jl 0x609198
mov eax, dword [ebx + 0x19c]
mov dword [ebx + 0xe4], 0
test eax, eax
jne 0x6091fc
mov eax, dword [ebp + 0x1c]
cmp eax, 1
jne 0x6091ed
mov dword [ebx + 0x19c], 0x2737
jmp 0x6091fc
cmp eax, 2
jne 0x6091fc
mov dword [ebx + 0x19c], 0x2734
mov ecx, dword [0x93c97c]
call fcn.004654f0
fadd dword [0x765618]
test esi, esi
fstp dword [esp + 0x14]
je 0x609224
mov ecx, esi
call fcn.004654f0
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x1b8]
mov eax, dword [ecx + 0x5c]
lea edi, [eax - 1]
cmp edi, 0x1e
ja case.0x609242.14
xor edx, edx
mov dl, byte [edi + 0x609d40]
jmp dword [edx*4 + 0x609d08]
test esi, esi
jne 0x60925b
mov eax, dword [0x93c97c]
mov edx, dword [eax + 0x474]
push edx
jmp 0x6092c0
mov ecx, dword [0x93c97c]
push esi
call fcn.00478620
test al, al
jne 0x609298
mov eax, dword [esp + 0x14]
lea ecx, [esi + 0x98]
push eax
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x1c8]
push edx
jmp 0x6095b5
mov ecx, dword [0x93c97c]
push esi
call fcn.00478620
test al, al
je case.0x609242.14
mov edx, dword [0x93c97c]
mov eax, dword [edx + 0x474]
mov ecx, dword [esp + 0x1b8]
push eax
push ecx
mov ecx, ebx
call fcn.0060a750
mov al, 1
mov ecx, dword [esp + 0x1a4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1a0
ret 8
test ecx, ecx
je 0x609305
cmp dword [ecx], 0x7a146
jne 0x609305
mov edx, dword [esp + 0x1b4]
push edx
push ecx
mov ecx, ebx
call fcn.0060a750
xor al, al
jmp 0x6092ca
test esi, esi
je case.0x609242.14
mov ecx, dword [0x93c97c]
push esi
call fcn.00478620
test al, al
jne case.0x609242.14
mov eax, dword [esp + 0x14]
lea ecx, [esi + 0x98]
push eax
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x1c8]
push edx
jmp 0x6095b5
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x68]
call fcn.0052cbf0
mov edi, eax
test edi, edi
jne 0x60936f
cmp dword [esp + 0x1b4], 0xffffffff
jne 0x60936f
mov esi, dword [0x93c97c]
test esi, esi
mov dword [esp + 0x38], 0xffffffff
je 0x6093e6
mov edx, dword [ebx + 0x18]
mov eax, dword [esi + 0x474]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [edx + 0x68]
push eax
call fcn.0052c1e0
test eax, eax
jne 0x6093aa
mov ecx, dword [0x93c97c]
mov eax, dword [esi + 0x474]
cmp eax, dword [ecx + 0x474]
jne 0x6093e6
mov edx, dword [esp + 0x14]
lea eax, [esi + 0x98]
push edx
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x1c8]
push ecx
mov ecx, ebx
call fcn.00609fa0
test al, al
jne 0x609ad6
jmp 0x6092ca
test edi, edi
je case.0x609242.14
mov cx, word [edi]
mov edx, dword [esp + 0x1b8]
push ecx
push edx
jmp 0x6092c1
test esi, esi
je case.0x609242.14
mov edi, dword [0x93c978]
mov eax, dword [esi + 0x474]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x48]
push ecx
push edx
lea ecx, [edi + 0x28]
mov dword [esp + 0x40], eax
call fcn.0047a390
mov eax, dword [esp + 0x48]
mov ecx, dword [edi + 0x2c]
cmp eax, ecx
je case.0x609242.14
mov eax, dword [eax + 0x10]
test eax, eax
je case.0x609242.14
cmp dword [eax + 0x2fc], 5
je case.0x609242.14
mov eax, dword [esp + 0x14]
lea ecx, [esi + 0x98]
push eax
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x1c8]
push edx
mov ecx, ebx
call fcn.00609fa0
test al, al
jne 0x6095c7
jmp 0x6092ca
test ecx, ecx
je 0x60950d
mov edi, dword [ecx + 0x38]
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0xb
jne 0x60950d
mov eax, edi
mov edi, 0xa
cdq
idiv edi
cmp edx, 3
jne 0x60950d
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], 0
push edx
mov edx, dword [esp + 0x3c]
sub esp, 0xc
mov dword [esp + 0x4c], 0
mov eax, esp
mov dword [esp + 0x50], 0
push ecx
mov ecx, ebx
mov dword [eax], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 8], edx
call fcn.00609fa0
test al, al
je 0x6092ca
mov eax, dword [esp + 0x1b8]
push 0xffffffffffffffff
push eax
jmp 0x6092c1
test esi, esi
je case.0x609242.14
mov eax, dword [esi + 0x2fc]
cmp eax, 4
je case.0x609242.14
cmp eax, 5
je case.0x609242.14
mov ecx, dword [0x93c97c]
push esi
call fcn.00478620
test al, al
je case.0x609242.14
mov ecx, dword [esp + 0x14]
lea edx, [esi + 0x98]
push ecx
mov ecx, dword [edx]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov ecx, ebx
mov dword [eax + 8], edx
mov eax, dword [esp + 0x1c8]
push eax
call fcn.00609fa0
test al, al
je 0x6092ca
mov ecx, dword [esi + 0x474]
mov edx, dword [esp + 0x1b8]
push ecx
push edx
jmp 0x6092c1
test esi, esi
je case.0x609242.14
mov eax, dword [esp + 0x14]
lea edx, [esi + 0x98]
push eax
mov edi, dword [edx]
sub esp, 0xc
mov eax, esp
push ecx
mov dword [eax], edi
mov edi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov ecx, ebx
call fcn.00609fa0
test al, al
jne 0x6095c7
xor al, al
jmp 0x6092ca
mov eax, dword [esi + 0x474]
jmp 0x6092b8
mov edx, dword [0x93c97c]
sub esp, 0xc
add edx, 0x98
mov eax, esp
push ecx
mov ecx, ebx
mov esi, dword [edx]
mov dword [eax], esi
mov esi, dword [edx + 4]
mov dword [eax + 4], esi
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
call fcn.0060a3b0
jmp 0x6092c8
test esi, esi
je 0x609610
mov eax, dword [esi + 0x474]
push eax
jmp 0x6092c0
mov edx, dword [0x93c97c]
mov eax, dword [edx + 0x474]
push eax
jmp 0x6092c0
mov dword [ebx + 0xe4], 1
mov edx, dword [ecx]
mov dword [ebx + 0xe8], edx
mov eax, dword [0x76560c]
mov ebp, ecx
push eax
add ecx, 4
push 0
push ecx
lea ecx, [ebx + 0xec]
call fcn.00404560
mov ecx, dword [0x76560c]
lea edx, [ebp + 0x14]
push ecx
push 0
push edx
lea ecx, [ebx + 0xfc]
call fcn.00404560
mov eax, dword [ebp + 0x2c]
mov ecx, dword [0x76560c]
mov edi, eax
lea esi, [ebx + 0x10c]
cmp ecx, edi
mov dword [esp + 0x14], edi
jae 0x609684
mov edi, ecx
mov dword [esp + 0x14], edi
lea edx, [ebp + 0x24]
cmp esi, edx
jne 0x609703
mov eax, dword [esi + 8]
mov dword [esp + 0x14], ecx
cmp eax, edi
jae 0x60969b
call fcn.007375cf
mov ecx, esi
call fcn.004049a0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x14]
sub eax, edi
cmp eax, ecx
jae 0x6096b3
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
jbe 0x6096f3
mov ecx, dword [esi + 4]
add edi, ecx
mov ecx, dword [esp + 0x14]
sub eax, ecx
lea edx, [edi + ecx]
push eax
push edx
push edi
call fcn.00727000
mov edi, dword [esi + 8]
mov ecx, dword [esp + 0x20]
add esp, 0xc
sub edi, ecx
mov ecx, esi
push 0
push edi
call fcn.00401450
test al, al
je 0x6096f3
push edi
mov ecx, esi
call fcn.00404970
push 0
push 0
mov ecx, esi
call fcn.00404850
jmp 0x60978f
test edi, edi
jbe 0x60974b
cmp edi, eax
jne 0x60974b
mov eax, dword [edx + 4]
test eax, eax
jne 0x609717
mov eax, 0x765608
cmp byte [eax - 1], 0xfe
jae 0x60974b
push 1
mov ecx, esi
call fcn.00404760
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x609732
mov eax, 0x765608
mov dword [esi + 4], eax
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 8], ecx
mov edx, dword [ebp + 0x30]
mov dword [esi + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x60978f
push 1
push edi
mov ecx, esi
call fcn.00401450
test al, al
je 0x60978f
mov esi, dword [ebp + 0x28]
test esi, esi
jne 0x609765
mov esi, 0x765608
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 0x110]
mov ecx, eax
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 + 0x110]
mov dword [ebx + 0x114], eax
mov byte [ecx + eax], 0
mov edx, dword [ebp + 0x34]
push 0
mov dword [ebx + 0x11c], edx
mov eax, dword [ebp + 0x38]
mov dword [ebx + 0x120], eax
mov ecx, dword [ebp + 0x3c]
mov dword [ebx + 0x124], ecx
mov edx, dword [ebp + 0x40]
mov dword [ebx + 0x128], edx
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x12c], eax
mov ecx, dword [ebp + 0x48]
mov dword [ebx + 0x130], ecx
mov edx, dword [ebp + 0x4c]
mov dword [ebx + 0x134], edx
mov eax, dword [ebp + 0x50]
mov dword [ebx + 0x138], eax
mov ecx, dword [ebp + 0x54]
mov dword [ebx + 0x13c], ecx
mov edx, dword [ebp + 0x58]
mov dword [ebx + 0x140], edx
mov eax, dword [ebp + 0x5c]
mov dword [ebx + 0x144], eax
mov ecx, dword [ebp + 0x60]
mov dword [ebx + 0x148], ecx
mov edx, dword [ebp + 0x64]
mov dword [ebx + 0x14c], edx
mov eax, dword [ebp + 0x68]
mov dword [ebx + 0x150], eax
mov ecx, dword [ebp + 0x6c]
mov dword [ebx + 0x154], ecx
mov edx, dword [ebp + 0x70]
mov dword [ebx + 0x158], edx
mov eax, dword [ebp + 0x74]
mov dword [ebx + 0x15c], eax
mov ecx, dword [ebp + 0x78]
mov dword [ebx + 0x160], ecx
mov edx, dword [ebp + 0x7c]
mov dword [ebx + 0x164], edx
mov eax, dword [ebp + 0x80]
mov dword [ebx + 0x168], eax
mov ecx, dword [ebp + 0x84]
mov dword [ebx + 0x16c], ecx
mov edx, dword [ebp + 0x88]
mov dword [ebx + 0x170], edx
mov eax, dword [ebp + 0x8c]
mov dword [ebx + 0x174], eax
mov ecx, dword [ebp + 0x90]
mov dword [ebx + 0x178], ecx
mov edx, dword [ebp + 0x94]
mov dword [ebx + 0x17c], edx
mov eax, dword [ebp + 0x98]
mov dword [ebx + 0x180], eax
mov eax, dword [ebx + 0x19c]
mov ecx, dword [ebx + 0x18]
push 0xffffffffffffffff
push eax
add ecx, 0x254
sub esp, 0xc
mov esi, dword [ecx]
mov edx, esp
push eax
push 0
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], esi
mov dword [edx + 8], ecx
mov edx, dword [0x93c97c]
mov ecx, dword [0x93cbf0]
mov eax, dword [edx + 0x474]
push eax
call fcn.00489d60
mov eax, dword [ebx + 0x19c]
cmp eax, 0x2737
je 0x6098ea
cmp eax, 0x2734
jne 0x6092c8
mov eax, dword [esp + 0x1b8]
mov ecx, dword [eax + 0x8c]
cmp ecx, 3
jne 0x609966
mov edi, dword [ebx + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
lea eax, [esp + 0x4c]
lea esi, [edi + 0x14]
mov dword [esp + 0x14], ecx
push edx
push eax
mov ecx, esi
call fcn.006156f0
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x4c]
cmp eax, esi
je 0x609935
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x609935
lea eax, [esp + 0x4c]
jmp 0x60993d
mov dword [esp + 0x38], esi
lea eax, [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
cmp eax, ecx
je 0x609a2f
add eax, 0x10
test eax, eax
je 0x609a2f
mov edx, dword [eax + 4]
dec edx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
jmp 0x609a26
cmp ecx, 4
jne 0x6099c5
mov edi, dword [ebx + 0x28]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
mov dword [esp + 0x4c], ecx
lea esi, [edi + 0x14]
push edx
mov ecx, esi
call fcn.005801a0
mov esi, dword [esi + 4]
mov dword [esp + 0x38], eax
cmp eax, esi
je 0x60999f
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x60999f
lea eax, [esp + 0x38]
jmp 0x6099a7
mov dword [esp + 0x48], esi
lea eax, [esp + 0x48]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
cmp eax, ecx
je 0x609a2f
add eax, 0x10
test eax, eax
je 0x609a2f
mov edx, dword [eax + 8]
dec edx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
jmp 0x609a26
cmp ecx, 7
jne 0x6092c8
mov edi, dword [ebx + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x4c]
mov dword [esp + 0x4c], ecx
lea esi, [edi + 0x14]
push edx
mov ecx, esi
call fcn.006157e0
mov esi, dword [esi + 4]
mov dword [esp + 0x38], eax
cmp eax, esi
je 0x609a02
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x609a02
lea eax, [esp + 0x38]
jmp 0x609a0a
mov dword [esp + 0x48], esi
lea eax, [esp + 0x48]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
cmp eax, ecx
je 0x609a2f
add eax, 0x10
test eax, eax
je 0x609a2f
mov edx, dword [eax + 4]
dec edx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
mov eax, dword [ebx + 0x18]
fstp dword [eax + 0x2c0]
xor esi, esi
mov edx, dword [ebx + 0x18]
push 0
lea ecx, [esi + 0x7532]
push 0xffffffffffffffff
push ecx
add edx, 0x254
sub esp, 0xc
mov ecx, dword [edx]
mov eax, esp
push 0x7532
push 0
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov eax, dword [0x93c97c]
mov ecx, dword [eax + 0x474]
push ecx
mov ecx, dword [0x93cbf0]
call fcn.00489d60
inc esi
cmp esi, 8
jl 0x609a31
jmp 0x6092c8
test esi, esi
je case.0x609242.14
mov ecx, dword [0x93c97c]
push esi
call fcn.00478620
test al, al
jne case.0x609242.14
mov edx, dword [esp + 0x14]
lea eax, [esi + 0x98]
push edx
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x1c8]
push ecx
mov ecx, ebx
call fcn.00609fa0
test al, al
je 0x6092ca
mov edx, dword [esi + 0x474]
mov eax, dword [esp + 0x1b8]
push edx
push eax
jmp 0x6092c1
test esi, esi
je case.0x609242.14
mov edx, dword [esp + 0x14]
lea eax, [esi + 0x98]
push edx
mov edi, dword [eax]
sub esp, 0xc
mov edx, esp
push ecx
mov ecx, ebx
mov dword [edx], edi
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], edi
mov dword [edx + 8], eax
call fcn.00609fa0
test al, al
je 0x6092ca
mov ecx, dword [esi + 0x474]
mov edx, dword [esp + 0x1b8]
push ecx
push edx
mov ecx, ebx
call fcn.0060a750
xor al, al
jmp 0x6092ca
test ecx, ecx
je case.0x609242.14
mov eax, dword [0x93c97c]
sub esp, 0xc
add eax, 0x98
mov edx, esp
push ecx
mov ecx, ebx
mov esi, dword [eax]
mov dword [edx], esi
mov esi, dword [eax + 4]
mov dword [edx + 4], esi
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
call fcn.0060a3b0
xor al, al
jmp 0x6092ca
call fcn.0046e8e0
test al, al
jne 0x609bd5
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call fcn.00404760
lea edx, [esp + 0x28]
mov dword [esp + 0x1ac], 2
push edx
push 0xfa2
call fcn.006a8c20
mov ecx, dword [ebx + 0x18]
add esp, 8
lea eax, [esp + 0x28]
push 0xffffff00
push eax
call fcn.00663960
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
mov ecx, dword [esp + 0x1b8]
mov eax, dword [ecx]
cmp eax, 0x1fbdd
jne 0x609c72
mov eax, dword [0x93c97c]
mov ecx, dword [eax + 0x2fc]
test ecx, ecx
jne 0x609c13
mov ecx, dword [eax + 0x308]
test ecx, ecx
jne 0x609c13
mov ecx, dword [ebx + 0x18]
push 1
push 4
call fcn.006663b0
jmp 0x6092c8
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
call fcn.00404760
lea eax, [esp + 0x28]
mov dword [esp + 0x1ac], 3
push eax
push 0xfa2
call fcn.006a8c20
add esp, 8
lea ecx, [esp + 0x28]
push 0xffffff00
push ecx
mov ecx, dword [ebx + 0x18]
call fcn.00663960
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca
cmp eax, 0x1fbde
jne 0x6092c8
mov eax, dword [0x93c97c]
mov ecx, dword [eax + 0x2fc]
test ecx, ecx
jne 0x609ca7
mov ecx, dword [eax + 0x308]
test ecx, ecx
jne 0x609ca7
mov ecx, dword [ebx + 0x18]
push 0xb
push 4
call fcn.006663b0
jmp 0x6092c8
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], dl
call fcn.00404760
lea eax, [esp + 0x28]
mov dword [esp + 0x1ac], 4
push eax
push 0xfa2
call fcn.006a8c20
add esp, 8
lea ecx, [esp + 0x28]
push 0xffffff00
push ecx
mov ecx, dword [ebx + 0x18]
call fcn.00663960
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.00404760
xor al, al
jmp 0x6092ca