Function at 0x584570
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 0x586d2d
sub esp, 0x194
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0xc4]
mov edx, dword [eax + 0xc8]
test ecx, ecx
jne 0x586caa
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 0x5845fb
xor esi, esi
jmp 0x5845fd
sub esi, ecx
test esi, esi
jne 0x586b6d
mov dword [esp + 0x48], edx
lea edi, [eax + 0x180]
mov dword [esp + 0x4c], edi
nop
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x584627
xor eax, eax
call fcn.0045f63a
jmp 0x584639
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.00587070
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x584886
mov ebp, dword [0x825e0c]
cmp dword [0x825e08], ecx
je 0x5846bc
xor ecx, ecx
jmp 0x5846e9
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 0x584710
mov ecx, dword [esp + 0x198]
mov edx, dword [ecx + 0x178]
cmp dword [ecx + 0x170], edx
jne 0x584717
mov eax, dword [0x825de0]
mov ebx, dword [0x825de4]
jmp 0x584717
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 0x58474b
mov eax, 1
jmp 0x58475b
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x58476f
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x38]
jmp 0x584871
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 0x5847e4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x5847cd
mov eax, dword [esp + 0x8c]
mov dword [edx + 0xc8], eax
jmp 0x584871
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x8c]
call fcn.0045f3a0
jmp 0x584871
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 [0x84d450]
test ecx, ecx
jne 0x584823
mov ecx, dword [esp + 0xe4]
mov dword [eax + 4], ecx
jmp 0x584836
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58485b
mov dword [edx + 0xc8], eax
jmp 0x584866
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 0x586d27
sub edx, eax
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
cmp ecx, 5
jb 0x586d1b
movzx ecx, byte [ebp + eax]
mov edx, dword [esp + 0x48]
cmp edx, 1
je 0x5848d8
cmp cl, 0x80
je 0x586995
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 0x584bc7
mov eax, ecx
movzx ecx, word [ebx + 0x24]
cmp cx, 0x304
je 0x584bbb
cmp cx, dx
jne 0x584927
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x584bbf
mov word [esp + 0x2a], dx
mov dword [esp], ebx
mov byte [esp + 4], 0x46
call fcn.00587370
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, [0x674efe]
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.004b50a0
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 0x586d14
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x584a54
mov ecx, 5
lea ebx, [esp + 0x154]
cmp ebx, edx
je 0x584a6f
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, [0x6cf6a0]
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 0x584b18
lea ecx, [0x6cf6a0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x584b01
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x584b9a
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x584b9a
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 [0x84d450]
test ecx, ecx
jne 0x584b57
mov ecx, dword [esp + 0xdc]
mov dword [eax + 4], ecx
jmp 0x584b6a
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xdc]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x584b8f
mov dword [edx + 0xc8], eax
jmp 0x584b9a
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 0x584dc5
jmp 0x584bc9
mov eax, ecx
xchg edi, eax
cmp al, 0x15
xchg edi, eax
je 0x584bd7
xchg edi, eax
cmp al, 0x16
xchg edi, eax
jne 0x584be2
cmp dx, 0x1000
jb 0x584dc5
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, [0x672f75]
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 0x586d0f
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 0x584c5e
mov ecx, 5
lea edx, [esp + 0x13c]
cmp edx, eax
je 0x584c79
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, [0x6cf6a0]
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 0x584d22
lea ecx, [0x6cf6a0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x584d0b
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x584da4
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x584da4
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 [0x84d450]
test ecx, ecx
jne 0x584d61
mov ecx, dword [esp + 0xd8]
mov dword [eax + 4], ecx
jmp 0x584d74
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x584d99
mov dword [edx + 0xc8], eax
jmp 0x584da4
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 0x584ddd
cmp eax, 0x4100
jg 0x584de8
jmp 0x585033
cmp eax, 0x4800
jle 0x585033
mov dword [esp], ebx
mov byte [esp + 4], 0x16
call fcn.00587370
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, [0x6710ee]
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.004b50a0
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 0x586d08
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x584ecc
mov ecx, 5
lea ebx, [esp + 0x124]
cmp ebx, edx
je 0x584ee7
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, [0x6cf6a0]
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 0x584f90
lea ecx, [0x6cf6a0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x584f79
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x585012
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x585012
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 [0x84d450]
test ecx, ecx
jne 0x584fcf
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], ecx
jmp 0x584fe2
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585007
mov dword [edx + 0xc8], eax
jmp 0x585012
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.00587070
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x586817
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 0x5850ca
mov esi, edi
lea ecx, [esi + eax]
cmp edx, ecx
jb 0x586d03
cmp eax, ecx
ja 0x586cfe
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 0x5850fb
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.00582b60
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 0x585284
lea eax, [0x6cf6b4]
cmp esi, eax
jne 0x586ce2
movzx eax, byte [edi]
mov ecx, dword [esp + 0x198]
mov dword [esp], ecx
mov byte [esp + 4], al
call fcn.00587370
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 0x5851e1
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5851ca
mov eax, dword [esp + 0x84]
mov dword [edx + 0xc8], eax
jmp 0x585263
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x84]
call fcn.0045f3a0
jmp 0x585263
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 [0x84d450]
test ecx, ecx
jne 0x585220
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
jmp 0x585233
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xcc]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585258
mov dword [edx + 0xc8], eax
jmp 0x585263
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 0x5866dd
mov ebp, dword [esp + 0x198]
mov esi, dword [ebp + 0xd0]
test esi, esi
jne 0x5852aa
cmp al, 0x17
je 0x5865b3
cmp al, 0x15
je 0x5852c2
cmp al, 0x14
je 0x5852c2
test edx, edx
je 0x5852c2
mov dword [ebp + 0x1cc], 0
movzx esi, word [ebp + 0x24]
cmp si, 0x304
jne 0x58541e
cmp al, 0x16
je 0x586107
mov edi, ebx
mov ebx, dword [ebp + 0x19c]
sub ebx, dword [ebp + 0x1a4]
test ebx, ebx
jg 0x5852f4
cmp al, 0x15
jmp 0x585423
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587370
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 0x58537b
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585367
mov eax, dword [esp + 0x78]
mov dword [edx + 0xc8], eax
jmp 0x5853fd
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x78]
call fcn.0045f3a0
jmp 0x5853fd
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 [0x84d450]
test ecx, ecx
jne 0x5853ba
mov ecx, dword [esp + 0xc0]
mov dword [eax + 4], ecx
jmp 0x5853cd
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5853f2
mov dword [edx + 0xc8], eax
jmp 0x5853fd
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 0x5860fc
cmp al, 0x14
jne 0x585a66
cmp edx, 1
jne 0x585440
cmp byte [ecx], 1
je 0x58556a
mov dword [esp], ebp
mov byte [esp + 4], 0x32
call fcn.00587370
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 0x5854c7
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5854b3
mov eax, dword [esp + 0x64]
mov dword [edx + 0xc8], eax
jmp 0x585549
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x64]
call fcn.0045f3a0
jmp 0x585549
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 [0x84d450]
test ecx, ecx
jne 0x585506
mov ecx, dword [esp + 0xa4]
mov dword [eax + 4], ecx
jmp 0x585519
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58553e
mov dword [edx + 0xc8], eax
jmp 0x585549
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 0x58593c
cmp si, 0x304
je 0x58590b
movzx ecx, byte [esp + 0x19c]
test cl, cl
je 0x5857e1
mov ecx, dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
test ecx, ecx
je 0x58568b
cmp word [ebp + 0xcc], 0x304
je 0x58568b
mov dword [ebp + 0xd0], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5855d4
mov dword [ebp + 0xd4], eax
jmp 0x5855df
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 [0x84d450]
test ecx, ecx
jne 0x585603
mov dword [ebp + 0xdc], eax
jmp 0x58560e
lea edi, [ebp + 0xdc]
call fcn.0045f3a0
mov dword [ebp + 0xf8], 0
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58562e
mov dword [ebp + 0xfc], 0
jmp 0x58563b
lea edi, [ebp + 0xfc]
xor eax, eax
call fcn.0045f3a0
mov dword [ebp + 0x100], 0
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58565b
mov dword [ebp + 0x104], 0
jmp 0x585668
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 0x58569f
mov eax, 0x50
lea ecx, [0x801280]
lea eax, [ecx + eax*8]
lea ecx, [0x6cf6b4]
test ecx, ecx
je 0x586319
lea edx, [0x6cf6b4]
cmp ecx, edx
jne 0x586cc6
movzx eax, byte [eax]
mov dword [esp], ebp
mov byte [esp + 4], al
call fcn.00587370
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 0x58573e
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58572a
mov eax, dword [esp + 0x58]
mov dword [edx + 0xc8], eax
jmp 0x5857c0
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x58]
call fcn.0045f3a0
jmp 0x5857c0
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 [0x84d450]
test ecx, ecx
jne 0x58577d
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
jmp 0x585790
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x98]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5857b5
mov dword [edx + 0xc8], eax
jmp 0x5857c0
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.00587370
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 0x585868
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585854
mov eax, dword [esp + 0x5c]
mov dword [edx + 0xc8], eax
jmp 0x5858ea
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x5c]
call fcn.0045f3a0
jmp 0x5858ea
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 [0x84d450]
test ecx, ecx
jne 0x5858a7
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], ecx
jmp 0x5858ba
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x9c]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5858df
mov dword [edx + 0xc8], eax
jmp 0x5858ea
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.00586d40
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.00587370
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 0x5859c3
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5859af
mov eax, dword [esp + 0x60]
mov dword [edx + 0xc8], eax
jmp 0x585a45
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x60]
call fcn.0045f3a0
jmp 0x585a45
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 [0x84d450]
test ecx, ecx
jne 0x585a02
mov ecx, dword [esp + 0xa0]
mov dword [eax + 4], ecx
jmp 0x585a15
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585a3a
mov dword [edx + 0xc8], eax
jmp 0x585a45
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 0x586489
cmp edx, 2
jne 0x585fd2
movzx eax, byte [ecx + 1]
test al, al
je 0x585eb7
mov byte [esp + 0x29], al
cmp si, 0x304
je 0x585d5d
movzx ecx, byte [ecx]
cmp cl, 1
je 0x585d2c
cmp cl, 2
jne 0x585c02
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, [0x664acf]
mov dword [eax], ecx
lea ecx, [0x6cf6b4]
mov dword [eax + 0x20], ecx
movzx ecx, byte [esp + 0x29]
movzx ecx, cl
lea edx, [0x801280]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x24], ecx
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf3a8]
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 0x585b5f
lea ecx, [0x6cf3a8]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585b48
mov eax, dword [esp + 0xf8]
mov dword [edx + 0xc8], eax
jmp 0x585be1
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf8]
call fcn.0045f3a0
jmp 0x585be1
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 [0x84d450]
test ecx, ecx
jne 0x585b9e
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], ecx
jmp 0x585bb1
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xac]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585bd6
mov dword [edx + 0xc8], eax
jmp 0x585be1
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.00587370
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 0x585c89
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585c75
mov eax, dword [esp + 0x68]
mov dword [edx + 0xc8], eax
jmp 0x585d0b
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x68]
call fcn.0045f3a0
jmp 0x585d0b
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 [0x84d450]
test ecx, ecx
jne 0x585cc8
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], ecx
jmp 0x585cdb
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585d00
mov dword [edx + 0xc8], eax
jmp 0x585d0b
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.00586d40
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, [0x664acf]
mov dword [eax], ecx
lea ecx, [0x6cf6b4]
mov dword [eax + 0x20], ecx
movzx ecx, byte [esp + 0x29]
movzx ecx, cl
lea edx, [0x801280]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x24], ecx
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf3a8]
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 0x585e14
lea ecx, [0x6cf3a8]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585dfd
mov eax, dword [esp + 0xf8]
mov dword [edx + 0xc8], eax
jmp 0x585e96
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf8]
call fcn.0045f3a0
jmp 0x585e96
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 [0x84d450]
test ecx, ecx
jne 0x585e53
mov ecx, dword [esp + 0xb0]
mov dword [eax + 4], ecx
jmp 0x585e66
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585e8b
mov dword [edx + 0xc8], eax
jmp 0x585e96
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 [0x825de4]
mov dword [esp + 0x6c], eax
mov ecx, dword [0x825de0]
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 0x585f2f
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585f1b
mov eax, dword [esp + 0x6c]
mov dword [edx + 0xc8], eax
jmp 0x585fb1
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x6c]
call fcn.0045f3a0
jmp 0x585fb1
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 [0x84d450]
test ecx, ecx
jne 0x585f6e
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
jmp 0x585f81
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x585fa6
mov dword [edx + 0xc8], eax
jmp 0x585fb1
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.00587370
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 0x586059
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586045
mov eax, dword [esp + 0x70]
mov dword [edx + 0xc8], eax
jmp 0x5860db
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x70]
call fcn.0045f3a0
jmp 0x5860db
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 [0x84d450]
test ecx, ecx
jne 0x586098
mov ecx, dword [esp + 0xb8]
mov dword [eax + 4], ecx
jmp 0x5860ab
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5860d0
mov dword [edx + 0xc8], eax
jmp 0x5860db
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 0x586264
mov ebx, edi
test edx, edx
je 0x58611b
movzx eax, byte [esp + 0x19c]
test al, al
je 0x586245
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00587370
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 0x5861a2
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58618e
mov eax, dword [esp + 0x50]
mov dword [edx + 0xc8], eax
jmp 0x586224
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x50]
call fcn.0045f3a0
jmp 0x586224
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 [0x84d450]
test ecx, ecx
jne 0x5861e1
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
jmp 0x5861f4
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x90]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586219
mov dword [edx + 0xc8], eax
jmp 0x586224
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 0x586319
cmp al, 0x17
jne 0x586489
mov ebx, dword [esp + 0x48]
cmp ebx, 1
jne 0x58635f
movzx ebx, byte [esp + 0x19c]
test bl, bl
jne 0x58635f
test edx, edx
je 0x586336
mov dword [esp + 0xec], ecx
nop
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x5862c0
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 0x586303
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.00586d40
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.00587370
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 0x5863e6
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5863d2
mov eax, dword [esp + 0x54]
mov dword [edx + 0xc8], eax
jmp 0x586468
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x54]
call fcn.0045f3a0
jmp 0x586468
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 [0x84d450]
test ecx, ecx
jne 0x586425
mov ecx, dword [esp + 0x94]
mov dword [eax + 4], ecx
jmp 0x586438
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x94]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58645d
mov dword [edx + 0xc8], eax
jmp 0x586468
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.00587370
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 0x586510
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5864fc
mov eax, dword [esp + 0x74]
mov dword [edx + 0xc8], eax
jmp 0x586592
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x74]
call fcn.0045f3a0
jmp 0x586592
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 [0x84d450]
test ecx, ecx
jne 0x58654f
mov ecx, dword [esp + 0xbc]
mov dword [eax + 4], ecx
jmp 0x586562
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xbc]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586587
mov dword [edx + 0xc8], eax
jmp 0x586592
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.00587370
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 0x58663a
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586626
mov eax, dword [esp + 0x7c]
mov dword [edx + 0xc8], eax
jmp 0x5866bc
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x7c]
call fcn.0045f3a0
jmp 0x5866bc
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 [0x84d450]
test ecx, ecx
jne 0x586679
mov ecx, dword [esp + 0xc4]
mov dword [eax + 4], ecx
jmp 0x58668c
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc4]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5866b1
mov dword [edx + 0xc8], eax
jmp 0x5866bc
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.00587370
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 0x586774
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x58675d
mov eax, dword [esp + 0x80]
mov dword [edx + 0xc8], eax
jmp 0x5867f6
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x80]
call fcn.0045f3a0
jmp 0x5867f6
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 [0x84d450]
test ecx, ecx
jne 0x5867b3
mov ecx, dword [esp + 0xc8]
mov dword [eax + 4], ecx
jmp 0x5867c6
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x5867eb
mov dword [edx + 0xc8], eax
jmp 0x5867f6
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 0x58684e
mov eax, 1
jmp 0x58685e
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x586875
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x100]
jmp 0x586980
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 0x5868f0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ebx, dword [0x84d450]
test ebx, ebx
jne 0x5868d9
mov eax, dword [esp + 0x88]
mov dword [edx + 0xc8], eax
jmp 0x586980
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x88]
call fcn.0045f3a0
jmp 0x586980
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 [0x84d450]
test ecx, ecx
jne 0x58692f
mov ecx, dword [esp + 0xd0]
mov dword [eax + 4], ecx
jmp 0x586942
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586967
mov dword [edx + 0xc8], eax
jmp 0x586972
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.00587370
lea edi, [esp + 0x164]
xor eax, eax
call fcn.0045f63a
lea eax, [0x66fdb4]
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 0x586cbf
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x586a06
mov ecx, 5
lea ebx, [esp + 0x16c]
cmp ebx, edx
je 0x586a21
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, [0x6cf6a0]
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 0x586aca
lea ecx, [0x6cf6a0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586ab3
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x586b4c
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f3a0
jmp 0x586b4c
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 [0x84d450]
test ecx, ecx
jne 0x586b09
mov ecx, dword [esp + 0xe0]
mov dword [eax + 4], ecx
jmp 0x586b1c
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe0]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586b41
mov dword [edx + 0xc8], eax
jmp 0x586b4c
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, [0x6763d6]
mov dword [eax], ecx
lea ecx, [0x641c00]
mov dword [esp], ecx
lea ecx, [0x6cf2f4]
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 0x586c07
lea ecx, [0x6cf2f4]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586bf0
mov eax, dword [esp + 0xf0]
mov dword [edx + 0xc8], eax
jmp 0x586c89
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf0]
call fcn.0045f3a0
jmp 0x586c89
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 [0x84d450]
test ecx, ecx
jne 0x586c46
mov ecx, dword [esp + 0xe8]
mov dword [eax + 4], ecx
jmp 0x586c59
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe8]
call fcn.0045f3a0
mov eax, ecx
lea ecx, [0x6cf2cc]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x84d450]
test ecx, ecx
jne 0x586c7e
mov dword [edx + 0xc8], eax
jmp 0x586c89
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.00584570