Function at 0x595a80
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 0x59823d
sub esp, 0x194
mov eax, dword [esp + 0x198]
mov ecx, dword [eax + 0xc4]
mov edx, dword [eax + 0xc8]
test ecx, ecx
jne 0x5981ba
nop
lea ecx, [eax + 0x10]
mov dword [esp], ecx
call fcn.00463b70
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 0x595b0b
xor esi, esi
jmp 0x595b0d
sub esi, ecx
test esi, esi
jne 0x59807d
mov dword [esp + 0x48], edx
lea edi, [eax + 0x180]
mov dword [esp + 0x4c], edi
nop
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x595b37
xor eax, eax
call fcn.0045f9ea
jmp 0x595b49
lea eax, [0x66e820]
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, [0x6604e0]
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.00598580
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x595d96
mov ebp, dword [0x860474]
cmp dword [0x860470], ecx
je 0x595bcc
xor ecx, ecx
jmp 0x595bf9
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 0x595c20
mov ecx, dword [esp + 0x198]
mov edx, dword [ecx + 0x178]
cmp dword [ecx + 0x170], edx
jne 0x595c27
mov eax, dword [0x860448]
mov ebx, dword [0x86044c]
jmp 0x595c27
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x38], eax
lea ecx, [0x668840]
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 0x595c5b
mov eax, 1
jmp 0x595c6b
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x595c7f
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x38]
jmp 0x595d81
lea eax, [0x668840]
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 0x595cf4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ebx, dword [0x887d70]
test ebx, ebx
jne 0x595cdd
mov eax, dword [esp + 0x8c]
mov dword [edx + 0xc8], eax
jmp 0x595d81
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x8c]
call fcn.0045f750
jmp 0x595d81
mov dword [esp + 0x100], edx
mov dword [esp + 0xe4], ecx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x595d33
mov ecx, dword [esp + 0xe4]
mov dword [eax + 4], ecx
jmp 0x595d46
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe4]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x595d6b
mov dword [edx + 0xc8], eax
jmp 0x595d76
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x598237
sub edx, eax
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
cmp ecx, 5
jb 0x59822b
movzx ecx, byte [ebp + eax]
mov edx, dword [esp + 0x48]
cmp edx, 1
je 0x595de8
cmp cl, 0x80
je 0x597ea5
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 0x5960d7
mov eax, ecx
movzx ecx, word [ebx + 0x24]
cmp cx, 0x304
je 0x5960cb
cmp cx, dx
jne 0x595e37
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x5960cf
mov word [esp + 0x2a], dx
mov dword [esp], ebx
mov byte [esp + 4], 0x46
call fcn.00598880
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, [0x6590a0]
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, [0x6590a0]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
lea eax, [0x69ee67]
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.004c3c90
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.0045f9ea
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 0x598224
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x595f64
mov ecx, 5
lea ebx, [esp + 0x154]
cmp ebx, edx
je 0x595f7f
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004600e0
lea edi, [esp + 0x17c]
lea esi, [esp + 0x14c]
call fcn.0045fec4
lea eax, [0x674ae0]
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, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6980]
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 0x596028
lea ecx, [0x6f6980]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596011
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x5960aa
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f750
jmp 0x5960aa
mov dword [esp + 0x100], edx
mov dword [esp + 0xdc], ecx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596067
mov ecx, dword [esp + 0xdc]
mov dword [eax + 4], ecx
jmp 0x59607a
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xdc]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59609f
mov dword [edx + 0xc8], eax
jmp 0x5960aa
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x5962d5
jmp 0x5960d9
mov eax, ecx
xchg edi, eax
cmp al, 0x15
xchg edi, eax
je 0x5960e7
xchg edi, eax
cmp al, 0x16
xchg edi, eax
jne 0x5960f2
cmp dx, 0x1000
jb 0x5962d5
mov ecx, dword [ebx]
mov dword [esp + 0x40], ecx
mov edx, dword [ebx + 4]
lea edi, [esp + 0x134]
xor eax, eax
call fcn.0045f9ea
lea ecx, [0x69cdde]
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 0x59821f
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 0x59616e
mov ecx, 5
lea edx, [esp + 0x13c]
cmp edx, eax
je 0x596189
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004600e0
lea edi, [esp + 0x17c]
lea esi, [esp + 0x134]
call fcn.0045fec4
lea eax, [0x674ae0]
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, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6980]
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 0x596232
lea ecx, [0x6f6980]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59621b
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x5962b4
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f750
jmp 0x5962b4
mov dword [esp + 0x100], edx
mov dword [esp + 0xd8], ecx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596271
mov ecx, dword [esp + 0xd8]
mov dword [eax + 4], ecx
jmp 0x596284
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd8]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5962a9
mov dword [edx + 0xc8], eax
jmp 0x5962b4
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x5962ed
cmp eax, 0x4100
jg 0x5962f8
jmp 0x596543
cmp eax, 0x4800
jle 0x596543
mov dword [esp], ebx
mov byte [esp + 4], 0x16
call fcn.00598880
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, [0x658720]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], eax
lea eax, [0x69ad5c]
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.004c3c90
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.0045f9ea
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 0x598218
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x5963dc
mov ecx, 5
lea ebx, [esp + 0x124]
cmp ebx, edx
je 0x5963f7
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004600e0
lea edi, [esp + 0x17c]
lea esi, [esp + 0x11c]
call fcn.0045fec4
lea eax, [0x674ae0]
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, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6980]
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 0x5964a0
lea ecx, [0x6f6980]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596489
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x596522
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f750
jmp 0x596522
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5964df
mov ecx, dword [esp + 0xd4]
mov dword [eax + 4], ecx
jmp 0x5964f2
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd4]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596517
mov dword [edx + 0xc8], eax
jmp 0x596522
lea edi, [edx + 0xc8]
call fcn.0045f750
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, [0x6604e0]
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.00598580
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x597d27
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 0x5965da
mov esi, edi
lea ecx, [esi + eax]
cmp edx, ecx
jb 0x598213
cmp eax, ecx
ja 0x59820e
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 0x59660b
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.00594070
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 0x596794
lea eax, [0x6f6994]
cmp esi, eax
jne 0x5981f2
movzx eax, byte [edi]
mov ecx, dword [esp + 0x198]
mov dword [esp], ecx
mov byte [esp + 4], al
call fcn.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], ecx
lea edx, [0x668840]
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 0x5966f1
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5966da
mov eax, dword [esp + 0x84]
mov dword [edx + 0xc8], eax
jmp 0x596773
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x84]
call fcn.0045f750
jmp 0x596773
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596730
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
jmp 0x596743
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xcc]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596768
mov dword [edx + 0xc8], eax
jmp 0x596773
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x597bed
mov ebp, dword [esp + 0x198]
mov esi, dword [ebp + 0xd0]
test esi, esi
jne 0x5967ba
cmp al, 0x17
je 0x597ac3
cmp al, 0x15
je 0x5967d2
cmp al, 0x14
je 0x5967d2
test edx, edx
je 0x5967d2
mov dword [ebp + 0x1cc], 0
movzx esi, word [ebp + 0x24]
cmp si, 0x304
jne 0x59692e
cmp al, 0x16
je 0x597617
mov edi, ebx
mov ebx, dword [ebp + 0x19c]
sub ebx, dword [ebp + 0x1a4]
test ebx, ebx
jg 0x596804
cmp al, 0x15
jmp 0x596933
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
lea edx, [0x668840]
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 0x59688b
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596877
mov eax, dword [esp + 0x78]
mov dword [edx + 0xc8], eax
jmp 0x59690d
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x78]
call fcn.0045f750
jmp 0x59690d
mov dword [esp + 0x100], edx
mov dword [esp + 0xc0], ecx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5968ca
mov ecx, dword [esp + 0xc0]
mov dword [eax + 4], ecx
jmp 0x5968dd
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc0]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596902
mov dword [edx + 0xc8], eax
jmp 0x59690d
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x59760c
cmp al, 0x14
jne 0x596f76
cmp edx, 1
jne 0x596950
cmp byte [ecx], 1
je 0x596a7a
mov dword [esp], ebp
mov byte [esp + 4], 0x32
call fcn.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], ecx
lea edx, [0x668840]
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 0x5969d7
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5969c3
mov eax, dword [esp + 0x64]
mov dword [edx + 0xc8], eax
jmp 0x596a59
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x64]
call fcn.0045f750
jmp 0x596a59
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596a16
mov ecx, dword [esp + 0xa4]
mov dword [eax + 4], ecx
jmp 0x596a29
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa4]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596a4e
mov dword [edx + 0xc8], eax
jmp 0x596a59
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x596e4c
cmp si, 0x304
je 0x596e1b
movzx ecx, byte [esp + 0x19c]
test cl, cl
je 0x596cf1
mov ecx, dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
test ecx, ecx
je 0x596b9b
cmp word [ebp + 0xcc], 0x304
je 0x596b9b
mov dword [ebp + 0xd0], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596ae4
mov dword [ebp + 0xd4], eax
jmp 0x596aef
lea edi, [ebp + 0xd4]
call fcn.0045f750
mov eax, dword [ebp + 0x104]
mov ecx, dword [ebp + 0x100]
mov dword [ebp + 0xd8], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596b13
mov dword [ebp + 0xdc], eax
jmp 0x596b1e
lea edi, [ebp + 0xdc]
call fcn.0045f750
mov dword [ebp + 0xf8], 0
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596b3e
mov dword [ebp + 0xfc], 0
jmp 0x596b4b
lea edi, [ebp + 0xfc]
xor eax, eax
call fcn.0045f750
mov dword [ebp + 0x100], 0
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596b6b
mov dword [ebp + 0x104], 0
jmp 0x596b78
lea edi, [ebp + 0x104]
xor eax, eax
call fcn.0045f750
lea eax, [ebp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.0045ff10
mov ebp, dword [esp + 0x198]
xor ecx, ecx
xor eax, eax
jmp 0x596baf
mov eax, 0x50
lea ecx, [0x83bd20]
lea eax, [ecx + eax*8]
lea ecx, [0x6f6994]
test ecx, ecx
je 0x597829
lea edx, [0x6f6994]
cmp ecx, edx
jne 0x5981d6
movzx eax, byte [eax]
mov dword [esp], ebp
mov byte [esp + 4], al
call fcn.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x58], ecx
lea edx, [0x668840]
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 0x596c4e
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596c3a
mov eax, dword [esp + 0x58]
mov dword [edx + 0xc8], eax
jmp 0x596cd0
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x58]
call fcn.0045f750
jmp 0x596cd0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596c8d
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
jmp 0x596ca0
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x98]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596cc5
mov dword [edx + 0xc8], eax
jmp 0x596cd0
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
lea edx, [0x668840]
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 0x596d78
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596d64
mov eax, dword [esp + 0x5c]
mov dword [edx + 0xc8], eax
jmp 0x596dfa
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x5c]
call fcn.0045f750
jmp 0x596dfa
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596db7
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], ecx
jmp 0x596dca
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x9c]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596def
mov dword [edx + 0xc8], eax
jmp 0x596dfa
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598250
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
lea edx, [0x668840]
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 0x596ed3
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596ebf
mov eax, dword [esp + 0x60]
mov dword [edx + 0xc8], eax
jmp 0x596f55
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x60]
call fcn.0045f750
jmp 0x596f55
mov dword [esp + 0x100], edx
mov dword [esp + 0xa0], ecx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596f12
mov ecx, dword [esp + 0xa0]
mov dword [eax + 4], ecx
jmp 0x596f25
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa0]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x596f4a
mov dword [edx + 0xc8], eax
jmp 0x596f55
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x597999
cmp edx, 2
jne 0x5974e2
movzx eax, byte [ecx + 1]
test al, al
je 0x5973c7
mov byte [esp + 0x29], al
cmp si, 0x304
je 0x59726d
movzx ecx, byte [ecx]
cmp cl, 1
je 0x59723c
cmp cl, 2
jne 0x597112
lea eax, [0x675d60]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0xf8], eax
mov dword [eax + 4], 0xc
lea ecx, [0x68f12e]
mov dword [eax], ecx
lea ecx, [0x6f6994]
mov dword [eax + 0x20], ecx
movzx ecx, byte [esp + 0x29]
movzx ecx, cl
lea edx, [0x83bd20]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x24], ecx
lea ecx, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6638]
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 0x59706f
lea ecx, [0x6f6638]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597058
mov eax, dword [esp + 0xf8]
mov dword [edx + 0xc8], eax
jmp 0x5970f1
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf8]
call fcn.0045f750
jmp 0x5970f1
mov dword [esp + 0xac], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5970ae
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], ecx
jmp 0x5970c1
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xac]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5970e6
mov dword [edx + 0xc8], eax
jmp 0x5970f1
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], ecx
lea edx, [0x668840]
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 0x597199
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597185
mov eax, dword [esp + 0x68]
mov dword [edx + 0xc8], eax
jmp 0x59721b
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x68]
call fcn.0045f750
jmp 0x59721b
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5971d8
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], ecx
jmp 0x5971eb
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xa8]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597210
mov dword [edx + 0xc8], eax
jmp 0x59721b
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598250
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, [0x675d60]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0xf8], eax
mov dword [eax + 4], 0xc
lea ecx, [0x68f12e]
mov dword [eax], ecx
lea ecx, [0x6f6994]
mov dword [eax + 0x20], ecx
movzx ecx, byte [esp + 0x29]
movzx ecx, cl
lea edx, [0x83bd20]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x24], ecx
lea ecx, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6638]
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 0x597324
lea ecx, [0x6f6638]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59730d
mov eax, dword [esp + 0xf8]
mov dword [edx + 0xc8], eax
jmp 0x5973a6
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf8]
call fcn.0045f750
jmp 0x5973a6
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597363
mov ecx, dword [esp + 0xb0]
mov dword [eax + 4], ecx
jmp 0x597376
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb0]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59739b
mov dword [edx + 0xc8], eax
jmp 0x5973a6
lea edi, [edx + 0xc8]
call fcn.0045f750
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 [0x86044c]
mov dword [esp + 0x6c], eax
mov ecx, dword [0x860448]
mov dword [esp + 0x34], ecx
lea edx, [0x668840]
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 0x59743f
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59742b
mov eax, dword [esp + 0x6c]
mov dword [edx + 0xc8], eax
jmp 0x5974c1
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x6c]
call fcn.0045f750
jmp 0x5974c1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59747e
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
jmp 0x597491
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5974b6
mov dword [edx + 0xc8], eax
jmp 0x5974c1
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
lea edx, [0x668840]
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 0x597569
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597555
mov eax, dword [esp + 0x70]
mov dword [edx + 0xc8], eax
jmp 0x5975eb
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x70]
call fcn.0045f750
jmp 0x5975eb
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5975a8
mov ecx, dword [esp + 0xb8]
mov dword [eax + 4], ecx
jmp 0x5975bb
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb8]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5975e0
mov dword [edx + 0xc8], eax
jmp 0x5975eb
lea edi, [edx + 0xc8]
call fcn.0045f750
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 0x597774
mov ebx, edi
test edx, edx
je 0x59762b
movzx eax, byte [esp + 0x19c]
test al, al
je 0x597755
mov dword [esp], ebp
mov byte [esp + 4], 0xa
call fcn.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
lea edx, [0x668840]
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 0x5976b2
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59769e
mov eax, dword [esp + 0x50]
mov dword [edx + 0xc8], eax
jmp 0x597734
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x50]
call fcn.0045f750
jmp 0x597734
mov dword [esp + 0x90], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5976f1
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
jmp 0x597704
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x90]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597729
mov dword [edx + 0xc8], eax
jmp 0x597734
lea edi, [edx + 0xc8]
call fcn.0045f750
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.0046eee0
jmp 0x597829
cmp al, 0x17
jne 0x597999
mov ebx, dword [esp + 0x48]
cmp ebx, 1
jne 0x59786f
movzx ebx, byte [esp + 0x19c]
test bl, bl
jne 0x59786f
test edx, edx
je 0x597846
mov dword [esp + 0xec], ecx
nop
mov ebx, dword [0x887d70]
test ebx, ebx
jne 0x5977d0
xor eax, eax
mov ebx, edi
mov edi, dword [esp + 0x4c]
call fcn.0045f9ea
mov ecx, dword [esp + 0xec]
mov dword [ebp + 0x180], ecx
jmp 0x597813
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edx
lea eax, [0x66e820]
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.0045f750
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.00598250
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x54], ecx
lea edx, [0x668840]
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 0x5978f6
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x5978e2
mov eax, dword [esp + 0x54]
mov dword [edx + 0xc8], eax
jmp 0x597978
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x54]
call fcn.0045f750
jmp 0x597978
mov dword [esp + 0x94], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597935
mov ecx, dword [esp + 0x94]
mov dword [eax + 4], ecx
jmp 0x597948
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x94]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59796d
mov dword [edx + 0xc8], eax
jmp 0x597978
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
lea edx, [0x668840]
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 0x597a20
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597a0c
mov eax, dword [esp + 0x74]
mov dword [edx + 0xc8], eax
jmp 0x597aa2
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x74]
call fcn.0045f750
jmp 0x597aa2
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597a5f
mov ecx, dword [esp + 0xbc]
mov dword [eax + 4], ecx
jmp 0x597a72
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xbc]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597a97
mov dword [edx + 0xc8], eax
jmp 0x597aa2
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x7c], ecx
lea edx, [0x668840]
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 0x597b4a
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597b36
mov eax, dword [esp + 0x7c]
mov dword [edx + 0xc8], eax
jmp 0x597bcc
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x7c]
call fcn.0045f750
jmp 0x597bcc
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597b89
mov ecx, dword [esp + 0xc4]
mov dword [eax + 4], ecx
jmp 0x597b9c
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc4]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597bc1
mov dword [edx + 0xc8], eax
jmp 0x597bcc
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
mov eax, dword [esp + 8]
mov dword [esp + 0x100], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], ecx
lea edx, [0x668840]
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 0x597c84
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597c6d
mov eax, dword [esp + 0x80]
mov dword [edx + 0xc8], eax
jmp 0x597d06
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x80]
call fcn.0045f750
jmp 0x597d06
mov dword [esp + 0x100], edx
mov dword [esp + 0xc8], ecx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597cc3
mov ecx, dword [esp + 0xc8]
mov dword [eax + 4], ecx
jmp 0x597cd6
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xc8]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597cfb
mov dword [edx + 0xc8], eax
jmp 0x597d06
lea edi, [edx + 0xc8]
call fcn.0045f750
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, [0x668840]
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 0x597d5e
mov eax, 1
jmp 0x597d6e
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
xor eax, 1
test al, al
jne 0x597d85
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x100]
jmp 0x597e90
lea eax, [0x668840]
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 0x597e00
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ebx, dword [0x887d70]
test ebx, ebx
jne 0x597de9
mov eax, dword [esp + 0x88]
mov dword [edx + 0xc8], eax
jmp 0x597e90
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0x88]
call fcn.0045f750
jmp 0x597e90
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xf4], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xf4]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597e3f
mov ecx, dword [esp + 0xd0]
mov dword [eax + 4], ecx
jmp 0x597e52
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xd0]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597e77
mov dword [edx + 0xc8], eax
jmp 0x597e82
lea edi, [edx + 0xc8]
call fcn.0045f750
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.00598880
lea edi, [esp + 0x164]
xor eax, eax
call fcn.0045f9ea
lea eax, [0x699919]
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 0x5981cf
sub ecx, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebp, ebx
add edx, ebp
cmp ecx, 5
jl 0x597f16
mov ecx, 5
lea ebx, [esp + 0x16c]
cmp ebx, edx
je 0x597f31
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004600e0
lea edi, [esp + 0x17c]
lea esi, [esp + 0x164]
call fcn.0045fec4
lea eax, [0x674ae0]
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, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6980]
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 0x597fda
lea ecx, [0x6f6980]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x597fc3
mov eax, dword [esp + 0xfc]
mov dword [edx + 0xc8], eax
jmp 0x59805c
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xfc]
call fcn.0045f750
jmp 0x59805c
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x598019
mov ecx, dword [esp + 0xe0]
mov dword [eax + 4], ecx
jmp 0x59802c
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe0]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x598051
mov dword [edx + 0xc8], eax
jmp 0x59805c
lea edi, [edx + 0xc8]
call fcn.0045f750
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, [0x662400]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov dword [esp + 0xf0], eax
mov dword [eax + 4], 0x4b
lea ecx, [0x6a047d]
mov dword [eax], ecx
lea ecx, [0x668840]
mov dword [esp], ecx
lea ecx, [0x6f6584]
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 0x598117
lea ecx, [0x6f6584]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x598100
mov eax, dword [esp + 0xf0]
mov dword [edx + 0xc8], eax
jmp 0x598199
lea edi, [edx + 0xc8]
mov eax, dword [esp + 0xf0]
call fcn.0045f750
jmp 0x598199
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x100], edx
lea eax, [0x662280]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x100]
mov dword [eax], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x598156
mov ecx, dword [esp + 0xe8]
mov dword [eax + 4], ecx
jmp 0x598169
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xe8]
call fcn.0045f750
mov eax, ecx
lea ecx, [0x6f64d0]
mov edx, dword [esp + 0x198]
mov dword [edx + 0xc4], ecx
mov ecx, dword [0x887d70]
test ecx, ecx
jne 0x59818e
mov dword [edx + 0xc8], eax
jmp 0x598199
lea edi, [edx + 0xc8]
call fcn.0045f750
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.0045f830
mov dword [esp], ecx
lea eax, [0x663340]
mov dword [esp + 4], eax
lea eax, [0x6601e0]
mov dword [esp + 8], eax
call fcn.00408b20
mov dword [esp], esi
lea eax, [0x663340]
mov dword [esp + 4], eax
lea eax, [0x6601e0]
mov dword [esp + 8], eax
call fcn.00408b20
call fcn.0045f830
call fcn.0045f810
mov eax, ebp
call fcn.0045f830
call fcn.0045f830
mov eax, ebp
call fcn.0045f830
mov edx, ecx
mov ecx, 5
call fcn.0045f810
call fcn.0045f830
nop
call fcn.0045e340
jmp fcn.00595a80