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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x114]
cmp eax, dword [ecx + 8]
jbe 0x586e2d
sub esp, 0x194
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0xc4]
mov edx, dword [eax + 0xc8]
test ecx, ecx
jne 0x586daa
nop
lea ecx, [eax + 0x10]
mov dword [esp], ecx
call fcn.004637c0
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0x18c]
mov edx, dword [eax + 0x184]
cmp ecx, edx
setae bl
mov ebp, dword [eax + 0x190]
mov esi, edx
sar edx, 0x1f
cmp ebp, edx
sete dl
xchg ebp, ebx
setg bl
xchg ebp, ebx
and edx, ebx
or ebp, edx
mov edx, dword [esp + 4]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5846fb
xor esi, esi
jmp 0x5846fd
sub esi, ecx
test esi, esi
jne 0x586c6d
mov dword [esp + 0x48], edx
lea edi, [eax + 0x180]
mov dword [esp + 0x4c], edi
nop
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584727
xor eax, eax
call fcn.0045f63a
jmp 0x584739
lea eax, [0x646d00]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00410c40
mov eax, dword [esp + 0x198]
mov dword [eax + 0x194], 0xffffffff
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x100], edx
lea ebx, [0x63a780]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00408f30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x198]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 5
call fcn.00587170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x584986
mov ebp, dword [0x826e6c]
cmp dword [0x826e68], ecx
je 0x5847bc
xor ecx, ecx
jmp 0x5847e9
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x38], eax
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00403430
movzx eax, byte [esp + 0xc]
mov ebx, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x38]
test cl, cl
je 0x584810
mov ecx, dword [esp + 0x198]
mov edx, dword [ecx + 0x178]
cmp dword [ecx + 0x170], edx
jne 0x584817
mov eax, dword [0x826e40]
mov ebx, dword [0x826e44]
jmp 0x584817
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x38], eax
lea ecx, [0x641c00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x58484b
mov eax, 1
jmp 0x58485b
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x58486f
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x38]
jmp 0x584971
lea eax, [0x641c00]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5848e4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ebx, dword [0x84e4b0]
test ebx, ebx
jne 0x5848cd
mov eax, dword [esp + 0x8c]
mov dword [edx + 0xc8], eax
jmp 0x584971
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x8c]
call fcn.0045f3a0
jmp 0x584971
mov dword [esp + 0x100], edx
mov dword [esp + 0xe4], ecx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584923
mov ecx, dword [esp + 0xe4]
mov dword [eax + 4], ecx
jmp 0x584936
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58495b
mov dword [edx + 0xc8], eax
jmp 0x584966
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
add esp, 0x194
ret
mov ebx, dword [esp + 0x198]
mov ebp, dword [ebx + 0x16c]
mov ecx, dword [ebx + 0x170]
mov edx, dword [ebx + 0x174]
mov eax, dword [ebx + 0x178]
cmp ecx, eax
jb 0x586e27
sub edx, eax
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
cmp ecx, 5
jb 0x586e1b
movzx ecx, byte [ebp + eax]
mov edx, dword [esp + 0x48]
cmp edx, 1
je 0x5849d8
cmp cl, 0x80
je 0x586a95
mov esi, edx
movzx edx, byte [ebp + eax + 1]
shl edx, 8
mov edi, ecx
movzx ecx, byte [ebp + eax + 2]
or edx, ecx
movzx ecx, byte [ebp + eax + 3]
shl ecx, 8
movzx ebp, byte [ebp + eax + 4]
or ecx, ebp
movzx ebp, byte [ebx + 0x26]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x584cc7
mov eax, ecx
movzx ecx, word [ebx + 0x24]
cmp cx, 0x304
je 0x584cbb
cmp cx, dx
jne 0x584a27
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x584cbf
mov word [esp + 0x2a], dx
mov dword [esp], ebx
mov byte [esp + 4], 0x46
call fcn.00587470
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
movzx eax, word [esp + 0x2a]
mov word [esp], ax
call fcn.00408cb0
mov eax, dword [esp + 4]
lea ecx, [0x634580]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x198]
movzx edx, word [eax + 0x24]
mov word [esp], dx
call fcn.00408cb0
mov eax, dword [esp + 4]
lea ecx, [0x634580]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
lea eax, [0x674f66]
mov dword [esp], eax
mov dword [esp + 4], 0x39
lea eax, [esp + 0x10c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004b51d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
lea edi, [esp + 0x14c]
mov edx, eax
xor eax, eax
call fcn.0045f63a
mov dword [esp + 0x14c], edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0x170]
mov edx, dword [eax + 0x16c]
mov ebx, dword [eax + 0x174]
mov ebp, dword [eax + 0x178]
cmp ecx, ebp
jb 0x586e14
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x584b54
mov ecx, 5
lea ebx, [esp + 0x154]
cmp ebx, edx
je 0x584b6f
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0045fd30
lea edi, [esp + 0x17c]
lea esi, [esp + 0x14c]
call fcn.0045fb14
lea eax, [0x64cbc0]
mov dword [esp], eax
lea eax, [esp + 0x17c]
mov dword [esp + 4], eax
call fcn.00408be0
mov eax, dword [esp + 8]
mov dword [esp + 0xfc], eax
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf828]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x584c18
lea ecx, [0x6cf828]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584c01
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x584c9a
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x584c9a
mov dword [esp + 0x100], edx
mov dword [esp + 0xdc], ecx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584c57
mov ecx, dword [esp + 0xdc]
mov dword [eax + 4], ecx
jmp 0x584c6a
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xdc]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584c8f
mov dword [edx + 0xc8], eax
jmp 0x584c9a
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x584ec5
jmp 0x584cc9
mov eax, ecx
xchg edi, eax
cmp al, 0x15
xchg edi, eax
je 0x584cd7
xchg edi, eax
cmp al, 0x16
xchg edi, eax
jne 0x584ce2
cmp dx, 0x1000
jb 0x584ec5
mov ecx, dword [ebx]
mov dword [esp + 0x40], ecx
mov edx, dword [ebx + 4]
lea edi, [esp + 0x134]
xor eax, eax
call fcn.0045f63a
lea ecx, [0x672fdd]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], 0x2f
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], edx
mov ecx, dword [ebx + 0x170]
mov edx, dword [ebx + 0x16c]
mov ebp, dword [ebx + 0x174]
mov eax, dword [ebx + 0x178]
cmp ecx, eax
jb 0x586e0f
sub ecx, eax
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
add eax, edx
cmp ecx, 5
jl 0x584d5e
mov ecx, 5
lea edx, [esp + 0x13c]
cmp edx, eax
je 0x584d79
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0045fd30
lea edi, [esp + 0x17c]
lea esi, [esp + 0x134]
call fcn.0045fb14
lea eax, [0x64cbc0]
mov dword [esp], eax
lea eax, [esp + 0x17c]
mov dword [esp + 4], eax
call fcn.00408be0
mov eax, dword [esp + 8]
mov dword [esp + 0xfc], eax
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf828]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x584e22
lea ecx, [0x6cf828]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584e0b
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x584ea4
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x584ea4
mov dword [esp + 0x100], edx
mov dword [esp + 0xd8], ecx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584e61
mov ecx, dword [esp + 0xd8]
mov dword [eax + 4], ecx
jmp 0x584e74
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x584e99
mov dword [edx + 0xc8], eax
jmp 0x584ea4
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp + 0x44], eax
cmp word [ebx + 0x24], 0x304
jne 0x584edd
cmp eax, 0x4100
jg 0x584ee8
jmp 0x585133
cmp eax, 0x4800
jle 0x585133
mov dword [esp], ebx
mov byte [esp + 4], 0x16
call fcn.00587470
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.00408d20
mov eax, dword [esp + 4]
lea ecx, [0x633c00]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], eax
lea eax, [0x671156]
mov dword [esp], eax
mov dword [esp + 4], 0x28
lea eax, [esp + 0x104]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b51d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
lea edi, [esp + 0x11c]
mov edx, eax
xor eax, eax
call fcn.0045f63a
mov dword [esp + 0x11c], edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0x170]
mov edx, dword [eax + 0x16c]
mov ebx, dword [eax + 0x174]
mov ebp, dword [eax + 0x178]
cmp ecx, ebp
jb 0x586e08
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x584fcc
mov ecx, 5
lea ebx, [esp + 0x124]
cmp ebx, edx
je 0x584fe7
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0045fd30
lea edi, [esp + 0x17c]
lea esi, [esp + 0x11c]
call fcn.0045fb14
lea eax, [0x64cbc0]
mov dword [esp], eax
lea eax, [esp + 0x17c]
mov dword [esp + 4], eax
call fcn.00408be0
mov eax, dword [esp + 8]
mov dword [esp + 0xfc], eax
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf828]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585090
lea ecx, [0x6cf828]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585079
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x585112
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x585112
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5850cf
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], ecx
jmp 0x5850e2
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585107
mov dword [edx + 0xc8], eax
jmp 0x585112
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x100], ecx
lea edx, [0x63a780]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00408f30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x198]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
add eax, 5
mov dword [esp + 0x44], eax
mov dword [esp + 0xc], eax
call fcn.00587170
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x586917
nop
mov ebx, dword [esp + 0x198]
mov byte [ebx + 0x17c], 0
nop
mov edx, dword [ebx + 0x174]
mov ebp, dword [ebx + 0x16c]
mov esi, dword [ebx + 0x170]
mov eax, dword [ebx + 0x178]
sub esi, eax
mov edi, dword [esp + 0x44]
cmp esi, edi
jl 0x5851ca
mov esi, edi
lea ecx, [esi + eax]
cmp edx, ecx
jb 0x586e03
cmp eax, ecx
ja 0x586dfe
mov dword [ebx + 0x178], ecx
sub edx, eax
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, ebp
test esi, esi
jle 0x5851fb
mov byte [ebx + 0x17c], 0xff
lea edx, [ebx + 0xbc]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
call fcn.00582c60
movzx eax, byte [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
test ebp, ebp
je 0x585384
lea eax, [0x6cf83c]
cmp esi, eax
jne 0x586de2
movzx eax, byte [edi]
mov ecx, dword [esp + 0x198]
mov dword [esp], ecx
mov byte [esp + 4], al
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5852e1
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5852ca
mov eax, dword [esp + 0x84]
mov dword [edx + 0xc8], eax
jmp 0x585363
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x84]
call fcn.0045f3a0
jmp 0x585363
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585320
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
jmp 0x585333
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xcc]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585358
mov dword [edx + 0xc8], eax
jmp 0x585363
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
cmp edx, 0x4000
jg 0x5867dd
mov ebp, dword [esp + 0x198]
mov esi, dword [ebp + 0xd0]
test esi, esi
jne 0x5853aa
cmp al, 0x17
je 0x5866b3
cmp al, 0x15
je 0x5853c2
cmp al, 0x14
je 0x5853c2
test edx, edx
je 0x5853c2
mov dword [ebp + 0x1cc], 0
movzx esi, word [ebp + 0x24]
cmp si, 0x304
jne 0x58551e
cmp al, 0x16
je 0x586207
mov edi, ebx
mov ebx, dword [ebp + 0x19c]
sub ebx, dword [ebp + 0x1a4]
test ebx, ebx
jg 0x5853f4
cmp al, 0x15
jmp 0x585523
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x58547b
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585467
mov eax, dword [esp + 0x78]
mov dword [edx + 0xc8], eax
jmp 0x5854fd
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x78]
call fcn.0045f3a0
jmp 0x5854fd
mov dword [esp + 0x100], edx
mov dword [esp + 0xc0], ecx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5854ba
mov ecx, dword [esp + 0xc0]
mov dword [eax + 4], ecx
jmp 0x5854cd
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5854f2
mov dword [edx + 0xc8], eax
jmp 0x5854fd
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
cmp al, 0x15
mov edi, ebx
ja 0x5861fc
cmp al, 0x14
jne 0x585b66
cmp edx, 1
jne 0x585540
cmp byte [ecx], 1
je 0x58566a
mov dword [esp], ebp
mov byte [esp + 4], 0x32
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5855c7
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5855b3
mov eax, dword [esp + 0x64]
mov dword [edx + 0xc8], eax
jmp 0x585649
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x64]
call fcn.0045f3a0
jmp 0x585649
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585606
mov ecx, dword [esp + 0xa4]
mov dword [eax + 4], ecx
jmp 0x585619
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58563e
mov dword [edx + 0xc8], eax
jmp 0x585649
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov ecx, dword [ebp + 0x19c]
sub ecx, dword [ebp + 0x1a4]
test ecx, ecx
jg 0x585a3c
cmp si, 0x304
je 0x585a0b
movzx ecx, byte [esp + 0x19c]
test cl, cl
je 0x5858e1
mov ecx, dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
test ecx, ecx
je 0x58578b
cmp word [ebp + 0xcc], 0x304
je 0x58578b
mov dword [ebp + 0xd0], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5856d4
mov dword [ebp + 0xd4], eax
jmp 0x5856df
lea edi, [ebp + 0xd4]
call fcn.0045f3a0
mov eax, dword [ebp + 0x104]
mov ecx, dword [ebp + 0x100]
mov dword [ebp + 0xd8], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585703
mov dword [ebp + 0xdc], eax
jmp 0x58570e
lea edi, [ebp + 0xdc]
call fcn.0045f3a0
mov dword [ebp + 0xf8], 0
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58572e
mov dword [ebp + 0xfc], 0
jmp 0x58573b
lea edi, [ebp + 0xfc]
xor eax, eax
call fcn.0045f3a0
mov dword [ebp + 0x100], 0
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58575b
mov dword [ebp + 0x104], 0
jmp 0x585768
lea edi, [ebp + 0x104]
xor eax, eax
call fcn.0045f3a0
lea eax, [ebp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.0045fb60
mov ebp, dword [esp + 0x198]
xor ecx, ecx
xor eax, eax
jmp 0x58579f
mov eax, 0x50
lea ecx, [0x8022e0]
lea eax, [ecx + eax*8]
lea ecx, [0x6cf83c]
test ecx, ecx
je 0x586419
lea edx, [0x6cf83c]
cmp ecx, edx
jne 0x586dc6
movzx eax, byte [eax]
mov dword [esp], ebp
mov byte [esp + 4], al
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x58], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x58583e
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58582a
mov eax, dword [esp + 0x58]
mov dword [edx + 0xc8], eax
jmp 0x5858c0
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x58]
call fcn.0045f3a0
jmp 0x5858c0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58587d
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
jmp 0x585890
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x98]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5858b5
mov dword [edx + 0xc8], eax
jmp 0x5858c0
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585968
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585954
mov eax, dword [esp + 0x5c]
mov dword [edx + 0xc8], eax
jmp 0x5859ea
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x5c]
call fcn.0045f3a0
jmp 0x5859ea
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5859a7
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], ecx
jmp 0x5859ba
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x9c]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5859df
mov dword [edx + 0xc8], eax
jmp 0x5859ea
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
movzx eax, byte [esp + 0x19c]
mov byte [esp + 4], al
call fcn.00586e40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585ac3
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585aaf
mov eax, dword [esp + 0x60]
mov dword [edx + 0xc8], eax
jmp 0x585b45
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x60]
call fcn.0045f3a0
jmp 0x585b45
mov dword [esp + 0x100], edx
mov dword [esp + 0xa0], ecx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585b02
mov ecx, dword [esp + 0xa0]
mov dword [eax + 4], ecx
jmp 0x585b15
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585b3a
mov dword [edx + 0xc8], eax
jmp 0x585b45
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
cmp al, 0x15
jne 0x586589
cmp edx, 2
jne 0x5860d2
movzx eax, byte [ecx + 1]
test al, al
je 0x585fb7
mov byte [esp + 0x29], al
cmp si, 0x304
je 0x585e5d
movzx ecx, byte [ecx]
cmp cl, 1
je 0x585e2c
cmp cl, 2
jne 0x585d02
lea eax, [0x64dc40]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0xf8], eax
mov dword [eax + 4], 0xc
lea ecx, [0x664adb]
mov dword [eax], ecx
lea ecx, [0x6cf83c]
mov dword [eax + 0x20], ecx
movzx ecx, byte [esp + 0x29]
movzx ecx, cl
lea edx, [0x8022e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x24], ecx
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf530]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585c5f
lea ecx, [0x6cf530]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585c48
mov eax, dword [esp + 0xf8]
mov dword [edx + 0xc8], eax
jmp 0x585ce1
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf8]
call fcn.0045f3a0
jmp 0x585ce1
mov dword [esp + 0xac], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585c9e
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], ecx
jmp 0x585cb1
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xac]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585cd6
mov dword [edx + 0xc8], eax
jmp 0x585ce1
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585d89
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585d75
mov eax, dword [esp + 0x68]
mov dword [edx + 0xc8], eax
jmp 0x585e0b
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x68]
call fcn.0045f3a0
jmp 0x585e0b
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585dc8
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], ecx
jmp 0x585ddb
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585e00
mov dword [edx + 0xc8], eax
jmp 0x585e0b
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
movzx eax, byte [esp + 0x19c]
mov byte [esp + 4], al
call fcn.00586e40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
lea eax, [0x64dc40]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0xf8], eax
mov dword [eax + 4], 0xc
lea ecx, [0x664adb]
mov dword [eax], ecx
lea ecx, [0x6cf83c]
mov dword [eax + 0x20], ecx
movzx ecx, byte [esp + 0x29]
movzx ecx, cl
lea edx, [0x8022e0]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x24], ecx
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf530]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585f14
lea ecx, [0x6cf530]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585efd
mov eax, dword [esp + 0xf8]
mov dword [edx + 0xc8], eax
jmp 0x585f96
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf8]
call fcn.0045f3a0
jmp 0x585f96
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585f53
mov ecx, dword [esp + 0xb0]
mov dword [eax + 4], ecx
jmp 0x585f66
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x585f8b
mov dword [edx + 0xc8], eax
jmp 0x585f96
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov eax, dword [0x826e44]
mov dword [esp + 0x6c], eax
mov ecx, dword [0x826e40]
mov dword [esp + 0x34], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x58602f
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58601b
mov eax, dword [esp + 0x6c]
mov dword [edx + 0xc8], eax
jmp 0x5860b1
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x6c]
call fcn.0045f3a0
jmp 0x5860b1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58606e
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
jmp 0x586081
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5860a6
mov dword [edx + 0xc8], eax
jmp 0x5860b1
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x586159
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586145
mov eax, dword [esp + 0x70]
mov dword [edx + 0xc8], eax
jmp 0x5861db
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x70]
call fcn.0045f3a0
jmp 0x5861db
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586198
mov ecx, dword [esp + 0xb8]
mov dword [eax + 4], ecx
jmp 0x5861ab
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5861d0
mov dword [edx + 0xc8], eax
jmp 0x5861db
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
cmp al, 0x16
jne 0x586364
mov ebx, edi
test edx, edx
je 0x58621b
movzx eax, byte [esp + 0x19c]
test al, al
je 0x586345
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5862a2
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58628e
mov eax, dword [esp + 0x50]
mov dword [edx + 0xc8], eax
jmp 0x586324
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x50]
call fcn.0045f3a0
jmp 0x586324
mov dword [esp + 0x90], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5862e1
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
jmp 0x5862f4
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x90]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586319
mov dword [edx + 0xc8], eax
jmp 0x586324
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
lea eax, [ebp + 0x198]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00478440
jmp 0x586419
cmp al, 0x17
jne 0x586589
mov ebx, dword [esp + 0x48]
cmp ebx, 1
jne 0x58645f
movzx ebx, byte [esp + 0x19c]
test bl, bl
jne 0x58645f
test edx, edx
je 0x586436
mov dword [esp + 0xec], ecx
nop
mov ebx, dword [0x84e4b0]
test ebx, ebx
jne 0x5863c0
xor eax, eax
mov ebx, edi
mov edi, dword [esp + 0x4c]
call fcn.0045f63a
mov ecx, dword [esp + 0xec]
mov dword [ebp + 0x180], ecx
jmp 0x586403
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edx
lea eax, [0x646d00]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
call fcn.00410c40
mov eax, dword [esp + 0x198]
lea edi, [eax + 0x180]
mov ecx, eax
mov eax, dword [esp + 0xec]
call fcn.0045f3a0
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov ebp, ecx
mov dword [ebp + 0x184], edx
mov dword [ebp + 0x188], ebx
mov dword [ebp + 0x194], 0xffffffff
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], bl
call fcn.00586e40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x54], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5864e6
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5864d2
mov eax, dword [esp + 0x54]
mov dword [edx + 0xc8], eax
jmp 0x586568
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x54]
call fcn.0045f3a0
jmp 0x586568
mov dword [esp + 0x94], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586525
mov ecx, dword [esp + 0x94]
mov dword [eax + 4], ecx
jmp 0x586538
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x94]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58655d
mov dword [edx + 0xc8], eax
jmp 0x586568
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x586610
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5865fc
mov eax, dword [esp + 0x74]
mov dword [edx + 0xc8], eax
jmp 0x586692
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x74]
call fcn.0045f3a0
jmp 0x586692
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58664f
mov ecx, dword [esp + 0xbc]
mov dword [eax + 4], ecx
jmp 0x586662
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xbc]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586687
mov dword [edx + 0xc8], eax
jmp 0x586692
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x7c], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x58673a
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586726
mov eax, dword [esp + 0x7c]
mov dword [edx + 0xc8], eax
jmp 0x5867bc
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x7c]
call fcn.0045f3a0
jmp 0x5867bc
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586779
mov ecx, dword [esp + 0xc4]
mov dword [eax + 4], ecx
jmp 0x58678c
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5867b1
mov dword [edx + 0xc8], eax
jmp 0x5867bc
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov eax, dword [esp + 0x198]
mov dword [esp], eax
mov byte [esp + 4], 0x16
call fcn.00587470
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x586874
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x58685d
mov eax, dword [esp + 0x80]
mov dword [edx + 0xc8], eax
jmp 0x5868f6
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x80]
call fcn.0045f3a0
jmp 0x5868f6
mov dword [esp + 0x100], edx
mov dword [esp + 0xc8], ecx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5868b3
mov ecx, dword [esp + 0xc8]
mov dword [eax + 4], ecx
jmp 0x5868c6
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5868eb
mov dword [edx + 0xc8], eax
jmp 0x5868f6
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp + 0x100], eax
mov dword [esp + 0x88], ecx
lea edx, [0x641c00]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x58694e
mov eax, 1
jmp 0x58695e
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x586975
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x100]
jmp 0x586a80
lea eax, [0x641c00]
mov dword [esp], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 8], ecx
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5869f0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ebx, dword [0x84e4b0]
test ebx, ebx
jne 0x5869d9
mov eax, dword [esp + 0x88]
mov dword [edx + 0xc8], eax
jmp 0x586a80
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x88]
call fcn.0045f3a0
jmp 0x586a80
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xf4], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xf4]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586a2f
mov ecx, dword [esp + 0xd0]
mov dword [eax + 4], ecx
jmp 0x586a42
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586a67
mov dword [edx + 0xc8], eax
jmp 0x586a72
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
add esp, 0x194
ret
mov dword [esp], ebx
mov byte [esp + 4], 0x46
call fcn.00587470
lea edi, [esp + 0x164]
xor eax, eax
call fcn.0045f63a
lea eax, [0x66fe1c]
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], 0x24
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0x170]
mov edx, dword [eax + 0x16c]
mov ebx, dword [eax + 0x174]
mov ebp, dword [eax + 0x178]
cmp ecx, ebp
jb 0x586dbf
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x586b06
mov ecx, 5
lea ebx, [esp + 0x16c]
cmp ebx, edx
je 0x586b21
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0045fd30
lea edi, [esp + 0x17c]
lea esi, [esp + 0x164]
call fcn.0045fb14
lea eax, [0x64cbc0]
mov dword [esp], eax
lea eax, [esp + 0x17c]
mov dword [esp + 4], eax
call fcn.00408be0
mov eax, dword [esp + 8]
mov dword [esp + 0xfc], eax
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf828]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x586bca
lea ecx, [0x6cf828]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586bb3
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x586c4c
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x586c4c
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586c09
mov ecx, dword [esp + 0xe0]
mov dword [eax + 4], ecx
jmp 0x586c1c
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586c41
mov dword [edx + 0xc8], eax
jmp 0x586c4c
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
lea eax, [0x63c100]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0xf0], eax
mov dword [eax + 4], 0x4b
lea ecx, [0x67643e]
mov dword [eax], ecx
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf47c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409040
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x586d07
lea ecx, [0x6cf47c]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586cf0
mov eax, dword [esp + 0xf0]
mov dword [edx + 0xc8], eax
jmp 0x586d89
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf0]
call fcn.0045f3a0
jmp 0x586d89
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x100], edx
lea eax, [0x63c040]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586d46
mov ecx, dword [esp + 0xe8]
mov dword [eax + 4], ecx
jmp 0x586d59
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf454]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x586d7e
mov dword [edx + 0xc8], eax
jmp 0x586d89
lea edi, [edx + 0xc8]
call fcn.0045f3a0
mov eax, dword [edx + 0xc4]
mov ecx, dword [edx + 0xc8]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
add esp, 0x194
ret
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], edx
add esp, 0x194
ret
mov eax, ebp
call fcn.0045f480
mov dword [esp], ecx
lea eax, [0x63cf40]
mov dword [esp + 4], eax
lea eax, [0x63a540]
mov dword [esp + 8], eax
call fcn.00408b20
mov dword [esp], esi
lea eax, [0x63cf40]
mov dword [esp + 4], eax
lea eax, [0x63a540]
mov dword [esp + 8], eax
call fcn.00408b20
call fcn.0045f480
call fcn.0045f460
mov eax, ebp
call fcn.0045f480
call fcn.0045f480
mov eax, ebp
call fcn.0045f480
mov edx, ecx
mov ecx, 5
call fcn.0045f460
call fcn.0045f480
nop
call fcn.0045df90
jmp fcn.00584670