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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xd0]
cmp eax, dword [ecx + 8]
jbe 0x5f654f
sub esp, 0x150
lea eax, [0x79de60]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x154]
mov dword [esp], ecx
mov edx, dword [esp + 0x158]
mov dword [esp + 4], edx
call fcn.00602c20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x154]
mov dword [esp], ecx
lea edx, [0x73dc60]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x10], eax
call fcn.00603910
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x5f4646
mov eax, dword [esp + 0x154]
test byte [eax], al
lea edi, [eax + 0x1c8]
mov esi, dword [esp + 0xe4]
call fcn.00464abc
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 8]
test edx, edx
je 0x5f44c1
mov edx, dword [ecx + 0xc]
test edx, edx
jne 0x5f44de
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov byte [eax + 0x2a9], 1
mov edx, dword [eax + 0x2bc]
movzx edx, byte [edx + 0x27]
test dl, dl
jne 0x5f4629
mov edx, dword [ecx + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00602c20
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
lea edi, [esp + 0x114]
xor eax, eax
call fcn.00464659
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0xc]
mov ebx, dword [esp + 0x154]
mov dword [esp], ebx
mov ebp, dword [esp + 0x48]
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call fcn.005f3e70
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 0x2c]
lea edi, [esp + 0x114]
lea esi, [esp + 0xc]
call fcn.00464b2a
lea edi, [esp + 0xf8]
lea esi, [esp + 0x114]
call fcn.00464b2a
test eax, eax
jne 0x5f460d
mov eax, dword [esp + 0x154]
lea edi, [eax + 0x210]
mov ecx, dword [0xaab020]
test ecx, ecx
jne 0x5f45a4
lea esi, [esp + 0x114]
call fcn.00464b2a
jmp 0x5f45c1
lea eax, [0x7973a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x114]
mov dword [esp + 8], eax
call fcn.00411480
call fcn.0040c7a0
mov eax, dword [0xaab020]
mov ecx, dword [esp]
test eax, eax
jne 0x5f45e2
mov ebx, dword [esp + 0x154]
mov dword [ebx + 0x238], ecx
jmp 0x5f45f6
mov ebx, dword [esp + 0x154]
lea edi, [ebx + 0x238]
mov eax, ecx
call fcn.004643b0
mov ebp, dword [esp + 0x104]
mov esi, dword [esp + 0x48]
lea ebp, [ebp + esi + 0x14]
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x5f4673
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
add esp, 0x150
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], edx
add esp, 0x150
ret
movzx esi, word [esp + 0x32]
lea eax, [esi + 1]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x48]
mov ebx, ecx
mov ecx, esi
mov dword [esp + 0x54], ecx
cmp word [esp + 0x112], ax
jbe 0x5f49b7
mov esi, dword [ebx + 0x2ac]
add esi, 0xfffffffc
cmp ebp, esi
jbe 0x5f46b6
mov edi, dword [0xa846b0]
mov ebx, dword [0xa846b4]
mov word [esp + 0x88], ax
xor eax, eax
mov dword [esp + 0x38], eax
movzx eax, word [esp + 0x88]
jmp 0x5f46f7
mov dword [esp + 0x7c], esi
mov edi, dword [ebx + 0x28c]
mov esi, dword [ebx + 0x288]
mov ebx, dword [ebx + 0x290]
cmp ebp, edi
ja 0x5f6545
sub edi, ebp
sub ebx, ebp
neg ebx
sar ebx, 0x1f
and ebx, ebp
cmp edi, 3
jbe 0x5f6539
mov esi, dword [ebx + esi]
mov dword [esp + 0x38], esi
xor edi, edi
xor ebx, ebx
mov esi, dword [esp + 0x7c]
test edi, edi
jne 0x5f49a2
lea ebx, [ebp + 4]
cmp esi, ebx
jae 0x5f4716
mov ebx, dword [0xa846b0]
mov esi, dword [0xa846b4]
xor edi, edi
jmp 0x5f4772
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0x154]
mov edi, dword [esi + 0x28c]
mov ebp, dword [esi + 0x288]
mov esi, dword [esi + 0x290]
cmp edi, ebx
jb 0x5f6530
mov dword [esp + 0xd8], ebp
mov ebp, dword [esp + 0x48]
sub esi, ebp
sub edi, ebp
add esi, 0xfffffffc
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
lea esi, [edi - 4]
cmp esi, 3
jbe 0x5f6524
mov edi, dword [esp + 0xd8]
mov edi, dword [ebx + edi]
xor ebx, ebx
xor esi, esi
test ebx, ebx
jne 0x5f498d
mov word [esp + 0x32], ax
mov dword [esp + 0x34], edi
mov dword [esp + 0x58], edx
lea ebx, [ebp + 8]
mov ebp, dword [esp + 0x154]
xor esi, esi
xor esi, esi
mov dword [esp + 0xc4], esi
xor esi, esi
mov dword [esp + 0x44], esi
xor esi, esi
jmp 0x5f63df
mov ebp, dword [esp + 0x154]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x44]
cmp esi, 2
jne 0x5f47ed
mov ebx, dword [esp + 0xc4]
cmp word [ebx], 0x7e23
je 0x5f47df
cmp esi, 2
jne 0x5f47e9
cmp word [ebx], 0x2d23
jne 0x5f47e5
mov edx, dword [esp + 0x38]
jmp 0x5f47ef
mov edi, ecx
jmp 0x5f47ef
mov edi, ecx
jmp 0x5f47ef
mov edi, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], edi
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 8]
mov dword [esp], ebp
mov ebx, dword [esp + 0x38]
add ecx, ebx
mov dword [esp + 4], ecx
call fcn.00602c20
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx + 0x290]
mov ebx, dword [ecx + 0x288]
mov ebp, dword [esp + 0x34]
lea esi, [ebp + eax]
cmp edx, esi
jb 0x5f650b
cmp eax, esi
ja 0x5f6504
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0xd8], ebx
mov eax, dword [ecx + 0x238]
lea edx, [0x75d260]
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xc], ebx
call fcn.00410a00
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x40]
sub ecx, edx
mov dword [edi + 8], ecx
mov ebx, dword [0xaab020]
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0xd8]
add ecx, edx
test ebx, ebx
jne 0x5f48b2
mov dword [edi], ecx
jmp 0x5f48bd
mov edx, eax
mov eax, ecx
call fcn.004643b0
mov eax, edx
mov ebx, dword [esp + 0x154]
mov ebp, dword [ebx + 0x230]
inc ebp
mov esi, dword [ebx + 0x22c]
mov ecx, ebx
mov ebx, dword [ebx + 0x234]
cmp ebx, ebp
jae 0x5f493f
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x780c40]
mov dword [esp + 0x10], eax
call fcn.0044b1b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x154]
mov dword [ebx + 0x234], edx
mov edx, dword [0xaab020]
test edx, edx
jne 0x5f492a
mov dword [ebx + 0x22c], eax
jmp 0x5f4935
lea edi, [ebx + 0x22c]
call fcn.004643b0
mov esi, eax
mov ebp, ecx
mov eax, dword [esp + 0x34]
mov ecx, ebx
mov dword [ecx + 0x230], ebp
lea ebx, [ebp - 1]
shl ebx, 4
mov ebp, dword [esp + 0x38]
mov dword [esi + ebx], ebp
mov dword [esi + ebx + 4], eax
mov ebp, dword [esp + 0x44]
mov dword [esi + ebx + 0xc], ebp
mov ebp, dword [0xaab020]
lea edi, [esi + ebx + 8]
test ebp, ebp
jne 0x5f497c
mov ebp, dword [esp + 0xc4]
mov dword [esi + ebx + 8], ebp
jmp 0x5f465b
mov eax, dword [esp + 0xc4]
call fcn.004643b0
jmp 0x5f465b
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], esi
add esp, 0x150
ret
mov dword [esp + 0x160], edi
mov dword [esp + 0x164], ebx
add esp, 0x150
ret
test ecx, ecx
je 0x5f4b79
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 8]
mov dword [esp], ebx
add eax, edx
mov dword [esp + 4], eax
call fcn.00602c20
mov eax, dword [esp + 8]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x154]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x54]
mov dword [esp + 8], edx
call fcn.005f3d50
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc8], ecx
lea edi, [esp + 0xa8]
lea esi, [esp + 0xc]
call fcn.00464b34
lea edi, [esp + 0x90]
lea esi, [esp + 0xa8]
call fcn.00464b34
test eax, eax
jne 0x5f4b5c
mov ecx, dword [esp + 0x154]
lea edi, [ecx + 0x23c]
lea esi, [esp + 0xa8]
call fcn.00464b34
mov ecx, dword [esp + 0x154]
movzx edx, byte [ecx + 0x242]
test edx, 1
seta dl
and edx, 1
test dl, dl
je 0x5f4a72
mov edx, 4
jmp 0x5f4a77
mov edx, 2
mov dword [ecx + 0x258], edx
movzx edx, byte [ecx + 0x242]
test edx, 2
seta dl
and edx, 1
test dl, dl
je 0x5f4a9b
mov edx, 4
jmp 0x5f4aa0
mov edx, 2
mov dword [esp + 0x60], eax
mov dword [ecx + 0x25c], edx
movzx edx, byte [ecx + 0x242]
test edx, 4
seta dl
and edx, 1
test dl, dl
je 0x5f4ac8
mov edx, 4
jmp 0x5f4acd
mov edx, 2
mov dword [ecx + 0x260], edx
lea eax, [0x795aa0]
mov dword [esp], eax
lea edx, [esp + 0x90]
mov dword [esp + 4], edx
call fcn.00409410
mov eax, dword [esp + 8]
lea ecx, [0x795aa0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004ca510
mov eax, dword [esp + 8]
mov dword [esp + 0x78], eax
call fcn.0040c7a0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov ecx, dword [0xaab020]
mov edx, dword [esp]
test ecx, ecx
jne 0x5f4b35
mov ebx, dword [esp + 0x154]
mov dword [ebx + 0x254], edx
jmp 0x5f4b4d
mov ebx, dword [esp + 0x154]
lea edi, [ebx + 0x254]
mov ecx, eax
mov eax, edx
call fcn.004643b0
mov eax, ecx
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x60]
xor ebp, ebp
jmp 0x5f4ba2
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
lea ebp, [ecx + 1]
mov ecx, ebx
mov ebx, dword [esp + 0x154]
cmp ebp, 0x2c
jg 0x5f4d6e
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
test ebp, ebp
jl 0x5f63bf
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
lea ebx, [ebp - 0x20]
mov dword [esp + 0x7c], ebx
cmp ebx, 0x20
sbb eax, eax
neg ebx
cmp ebx, 0x20
sbb edx, edx
cmp ebp, 0x20
sbb esi, esi
mov dword [esp + 0x6c], esi
mov ecx, dword [esp + 0x7c]
mov esi, 1
shl esi, cl
and eax, esi
mov ecx, ebx
mov ebx, 1
shr ebx, cl
and ebx, edx
or ebx, eax
and ebx, edi
test ebx, ebx
seta al
sete dl
mov ecx, ebp
mov ebx, 1
shl ebx, cl
mov esi, dword [esp + 0x6c]
and esi, ebx
mov ebx, dword [esp + 0x4c]
test esi, ebx
seta bl
and edx, ebx
or eax, edx
test al, al
jne 0x5f4c48
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0xd4]
jmp 0x5f4b96
mov dword [esp + 0x78], ecx
lea eax, [0x780cc0]
mov dword [esp], eax
call fcn.0040bcc0
mov eax, dword [esp + 4]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call fcn.005f3c30
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0xe0]
mov dword [edi + 4], ecx
mov ecx, dword [0xaab020]
test ecx, ecx
jne 0x5f4c91
mov dword [edi], eax
jmp 0x5f4c96
call fcn.004643b0
mov edx, dword [esp + 0x154]
mov ebx, dword [edx + 0x2ac]
add ebx, 0xfffffffc
mov eax, dword [esp + 0x70]
cmp eax, ebx
jbe 0x5f4cbe
mov ecx, dword [0xa846b0]
mov ebx, dword [0xa846b4]
xor ebp, ebp
jmp 0x5f4cf8
mov ecx, dword [edx + 0x28c]
mov ebx, dword [edx + 0x288]
mov ebp, dword [edx + 0x290]
cmp eax, ecx
ja 0x5f63ba
sub ecx, eax
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
cmp ecx, 3
jbe 0x5f63b0
mov ebp, dword [ebp + ebx]
xor ecx, ecx
xor ebx, ebx
mov dword [edi + 8], ebp
test ecx, ecx
jne 0x5f4d79
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x68], ecx
mov eax, dword [edx + 0x254]
lea ecx, [0x75c420]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call fcn.0040ea30
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0xaab020]
test eax, eax
jne 0x5f4d45
mov eax, dword [esp + 0xe0]
mov dword [edi], eax
jmp 0x5f4d51
mov eax, dword [esp + 0xe0]
call fcn.004643b0
mov ebx, dword [esp + 0x70]
lea eax, [ebx + 4]
mov ecx, dword [esp + 0x78]
mov ebp, ecx
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0xd0]
jmp 0x5f4b96
mov ebx, ecx
mov ecx, edx
mov edx, dword [esp + 0x154]
xor ebp, ebp
jmp 0x5f4d91
mov esi, dword [esp + 0x3c]
lea ebp, [esi + 1]
mov ebx, ecx
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x154]
cmp ebp, 0x2c
jg 0x5f6393
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x254]
lea ecx, [0x75c420]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0040e8d0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x10]
test cl, cl
jne 0x5f4de9
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
jmp 0x5f4d7d
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x12
jg 0x5f576e
cmp ecx, 0xa
jg 0x5f52c7
cmp ecx, 4
jg 0x5f506f
cmp ecx, 1
jg 0x5f4f43
test ecx, ecx
je 0x5f4eb6
cmp ecx, 1
jne 0x5f5d80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f6cc0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748bc0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f4e9a
mov dword [edx + 0x10], eax
jmp 0x5f4ea2
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f6880
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748800]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f4f27
mov dword [edx + 0x10], eax
jmp 0x5f4f2f
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 2
je 0x5f4fe2
cmp ecx, 4
jne 0x5f5d80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f7450
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748240]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f4fc6
mov dword [edx + 0x10], eax
jmp 0x5f4fce
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f6f70
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748b80]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5053
mov dword [edx + 0x10], eax
jmp 0x5f505b
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 8
jg 0x5f51a4
cmp ecx, 6
je 0x5f5117
cmp ecx, 8
jne 0x5f5d80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f7c60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7488c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f50fb
mov dword [edx + 0x10], eax
jmp 0x5f5103
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f7740
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7486c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5188
mov dword [edx + 0x10], eax
jmp 0x5f5190
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 9
jne 0x5f523a
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f7f60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7485c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f521e
mov dword [edx + 0x10], eax
jmp 0x5f5226
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f8170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748640]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f52ab
mov dword [edx + 0x10], eax
jmp 0x5f52b3
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0xe
jg 0x5f551f
cmp ecx, 0xc
jg 0x5f53fc
cmp ecx, 0xb
jne 0x5f536f
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f8420
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747e00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5353
mov dword [edx + 0x10], eax
jmp 0x5f535b
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f87e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747e40]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f53e0
mov dword [edx + 0x10], eax
jmp 0x5f53e8
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0xd
jne 0x5f5492
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f8a90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7481c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5476
mov dword [edx + 0x10], eax
jmp 0x5f547e
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f8ca0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747f00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5503
mov dword [edx + 0x10], eax
jmp 0x5f550b
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x10
jg 0x5f564b
cmp ecx, 0xf
jne 0x5f55be
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f8f90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747d00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f55a2
mov dword [edx + 0x10], eax
jmp 0x5f55aa
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f9280
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748180]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f562f
mov dword [edx + 0x10], eax
jmp 0x5f5637
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x11
jne 0x5f56e1
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f94c0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748b00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f56c5
mov dword [edx + 0x10], eax
jmp 0x5f56cd
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f9630
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747fc0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5752
mov dword [edx + 0x10], eax
jmp 0x5f575a
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x1c
jg 0x5f5c30
cmp ecx, 0x18
jg 0x5f59e1
cmp ecx, 0x15
jg 0x5f58b5
cmp ecx, 0x14
je 0x5f5828
cmp ecx, 0x15
jne 0x5f5d80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f9b30
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748900]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f580c
mov dword [edx + 0x10], eax
jmp 0x5f5814
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f9840
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748000]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5899
mov dword [edx + 0x10], eax
jmp 0x5f58a1
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x17
je 0x5f5954
cmp ecx, 0x18
jne 0x5f5d80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fa030
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748740]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5938
mov dword [edx + 0x10], eax
jmp 0x5f5940
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005f9d40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748940]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f59c5
mov dword [edx + 0x10], eax
jmp 0x5f59cd
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x1a
jg 0x5f5b0d
cmp ecx, 0x19
jne 0x5f5a80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fa320
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748700]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5a64
mov dword [edx + 0x10], eax
jmp 0x5f5a6c
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fa5d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7487c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5af1
mov dword [edx + 0x10], eax
jmp 0x5f5af9
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x1b
jne 0x5f5ba3
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fa740
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748c00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5b87
mov dword [edx + 0x10], eax
jmp 0x5f5b8f
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fa8b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748500]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5c14
mov dword [edx + 0x10], eax
jmp 0x5f5c1c
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x27
jg 0x5f5fb8
cmp ecx, 0x20
jg 0x5f5d6e
cmp ecx, 0x1d
je 0x5f5ce1
cmp ecx, 0x20
jne 0x5f5d80
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fae80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747b00]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5cc5
mov dword [edx + 0x10], eax
jmp 0x5f5ccd
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fac40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748200]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5d52
mov dword [edx + 0x10], eax
jmp 0x5f5d5a
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x23
je 0x5f5f2b
cmp ecx, 0x27
je 0x5f5e9e
mov dword [esp], ecx
call fcn.005f3c30
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x78], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.00464658
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
call fcn.004094f0
mov eax, dword [esp + 4]
lea ecx, [0x7583c0]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
call fcn.00409600
mov eax, dword [esp + 8]
lea ecx, [0x758c80]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.004094f0
mov eax, dword [esp + 4]
lea ecx, [0x758e40]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.004094f0
mov eax, dword [esp + 4]
lea ecx, [0x758e40]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x154]
mov edx, dword [eax + 0x2c0]
mov dword [esp], edx
lea edx, [0x7d3e48]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x32
lea ebx, [esp + 0x130]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 4
call fcn.00537f20
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
xor edx, edx
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fbf50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7480c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5f0f
mov dword [edx + 0x10], eax
jmp 0x5f5f17
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fb730
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x747ac0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f5f9c
mov dword [edx + 0x10], eax
jmp 0x5f5fa4
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x29
jg 0x5f60e4
cmp ecx, 0x28
jne 0x5f6057
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fc3a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748600]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f603b
mov dword [edx + 0x10], eax
jmp 0x5f6043
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fc750
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748840]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f60c8
mov dword [edx + 0x10], eax
jmp 0x5f60d0
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
cmp ecx, 0x2a
je 0x5f6210
cmp ecx, 0x2b
jne 0x5f6183
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fcd00
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748780]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f6167
mov dword [edx + 0x10], eax
jmp 0x5f616f
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fcf10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x748280]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f61f4
mov dword [edx + 0x10], eax
jmp 0x5f61fc
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
jmp 0x5f6298
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
call fcn.005fc960
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], ebp
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409680
mov eax, dword [esp + 0xc]
lea ecx, [0x7482c0]
mov edx, dword [esp + 0xc0]
mov dword [edx + 0xc], ecx
mov ebx, dword [0xaab020]
test ebx, ebx
jne 0x5f6281
mov dword [edx + 0x10], eax
jmp 0x5f6289
lea edi, [edx + 0x10]
call fcn.004643b0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x50]
test eax, eax
je 0x5f6388
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005f3c30
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409600
mov eax, dword [esp + 8]
lea ecx, [0x758c80]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5f6320
mov edx, dword [eax + 4]
jmp 0x5f6322
mov edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0x154]
mov edx, dword [ecx + 0x2c0]
mov dword [esp], edx
lea edx, [0x7cf85f]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x28
lea ebx, [esp + 0xe8]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.00537f20
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x48]
add edx, ebp
jmp 0x5f4d7d
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
add esp, 0x150
ret
mov eax, 3
call fcn.00464430
call fcn.004644a0
call fcn.00435180
inc esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x154]
mov ebx, dword [esp + 0x7c]
cmp esi, 0x20
ja 0x5f47b8
mov dword [esp + 0x5c], esi
lea edi, [ebx + 1]
cmp dword [ebp + 0x2ac], edi
jae 0x5f641b
mov ebx, dword [0xa846b0]
mov ebp, dword [0xa846b4]
mov word [esp + 0x80], ax
xor eax, eax
mov byte [esp + 0x31], al
movzx eax, word [esp + 0x80]
jmp 0x5f6457
mov esi, dword [ebp + 0x290]
mov ebp, dword [ebp + 0x288]
cmp esi, edi
jb 0x5f651b
cmp ebx, edi
ja 0x5f6512
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
movzx esi, byte [ebp + ebx]
xchg esi, eax
mov byte [esp + 0x31], al
xchg esi, eax
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x5c]
test ebx, ebx
jne 0x5f64ef
mov dword [esp + 0x7c], edi
movzx ebx, byte [esp + 0x31]
test bl, bl
jne 0x5f648f
lea ebp, [esi + 1]
test ebp, 3
je 0x5f47a9
test bl, bl
jne 0x5f648f
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xc4]
jmp 0x5f63c4
mov dword [esp], 0
mov dword [esp + 8], 0
movzx eax, bl
mov dword [esp + 4], eax
call fcn.0044f3f0
mov dword [esp], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
call fcn.0044ec00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x7c]
mov ebx, ecx
mov ebp, eax
movzx eax, word [esp + 0x32]
mov ecx, dword [esp + 0x54]
jmp 0x5f63c4
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebp
add esp, 0x150
ret
mov ecx, esi
call fcn.004644a0
mov ecx, esi
call fcn.00464480
mov eax, ebx
mov ecx, edi
call fcn.004644a0
mov ecx, edi
mov edx, esi
call fcn.00464480
mov eax, 3
mov ecx, esi
call fcn.00464430
mov eax, ebx
mov ecx, edi
call fcn.004644a0
mov eax, 3
mov ecx, edi
call fcn.00464430
mov eax, ebp
mov ecx, edi
call fcn.004644a0
nop
call fcn.00462fa0
jmp fcn.005f43f0