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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x100]
cmp eax, dword [ecx + 8]
jbe 0x5f587d
sub esp, 0x180
mov dword [esp + 0x190], 0
lea edi, [esp + 0x154]
xor eax, eax
call fcn.0044c9b5
mov ecx, dword [esp + 0x184]
test byte [ecx], al
mov dword [esp + 0x40], 0
mov dword [ecx + 0x2ec], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp], 0xc
lea edx, [0x695694]
mov dword [esp + 4], edx
lea edx, [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
lea edx, [esp + 0x3c]
mov dword [esp + 0x10], edx
call fcn.00427190
test eax, eax
jne 0x5f5754
mov ecx, dword [esp + 0x184]
lea edx, [ecx + 0x2c]
mov eax, 0xffffffff
mov ebx, 0x10
xor ebp, ebp
jmp 0x5f452a
add ebx, 2
mov ecx, dword [esp + 0x184]
lea edx, [0x8df320]
cmp ebx, 6
jae 0x5f585a
lea edx, [0x8dcb00]
mov ecx, dword [edx + ebx*4]
cmp ecx, 0xffffffff
jne 0x5f415c
lea ecx, [ebx + 1]
cmp ecx, 6
jae 0x5f585a
mov ecx, dword [edx + ebx*4 + 4]
cmp dword [esp + 0x40], ecx
jne 0x5f415c
lea ecx, [ebx + 2]
jmp 0x5f41a1
add ecx, 2
cmp ecx, 6
jae 0x5f5853
mov ebx, dword [edx + ecx*4]
test ebx, ebx
jl 0x5f41b7
cmp dword [esp + 0x3c], ebx
jne 0x5f419e
lea ebx, [ecx + 1]
cmp ebx, 6
jae 0x5f584c
mov ecx, dword [edx + ecx*4 + 4]
test ecx, ecx
jl 0x5f53dc
test ecx, ecx
jne 0x5f434c
test ebp, ebp
je 0x5f525a
lea ebx, [ebp - 1]
cmp ebx, 1
jbe 0x5f511c
cmp ebp, 3
jne 0x5f434c
cmp dword [0x9ebdc0], 2
jge 0x5f4297
cmp dword [esp + 0x3c], 1
je 0x5f427f
mov ecx, dword [esp + 0x184]
mov dword [ecx + 0x2ec], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov edx, edi
mov ebx, esi
mov esi, ebx
mov ebx, dword [esp + 0x40]
cmp ebx, 0x16
jae 0x5f586f
mov edi, edx
lea edx, [0x8df380]
mov ebx, dword [edx + ebx*4]
cmp ebx, 0xfffffc18
jg 0x5f545b
mov ebx, dword [esp + 0x40]
cmp ebx, 0x16
jae 0x5f5861
lea edx, [0x8df320]
mov ebx, dword [edx + ebx*4]
cmp ebx, 0xfffffffe
jne 0x5f544e
mov ebx, dword [ecx + 0x2ec]
test ebx, ebx
jl 0x5f53f4
xor ebx, ebx
jmp 0x5f416c
mov dword [esp + 0x190], 1
nop
call fcn.00427960
add esp, 0x180
ret
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005f3990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00407620
mov eax, dword [esp + 8]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea ecx, [0x62b9a0]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
nop
mov eax, dword [0x9da3cc]
lea edx, [0x6dc070]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x67a459]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x1b
lea ebx, [esp + 0xbc]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.0049e440
mov eax, dword [esp + 0x48]
lea edx, [0x8dcb00]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xb0]
jmp 0x5f4201
mov dword [esp + 0x4c], ecx
cmp dword [0x9ebdc0], 2
jge 0x5f4fff
cmp ecx, 0xc
jae 0x5f5837
lea ebx, [0x8de280]
mov ebx, dword [ebx + ecx*4]
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x88], edx
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x54]
cmp ebx, ebp
jge 0x5f4f6f
cmp ebx, ebp
jae 0x5f5830
mov dword [esp + 0xb0], edi
imul ebx, edx, 0x2c
mov dword [esp + 0x84], ebx
lea ebx, [edi + ebx + 0x2c]
lea edi, [esp + 0x154]
mov esi, ebx
call fcn.0044ce62
mov ecx, dword [esp + 0x4c]
lea ebx, [0x8de240]
mov ebx, dword [ebx + ecx*4]
cmp ebx, 7
jae 0x5f5829
mov esi, ecx
lea ecx, [0x8dd260]
mov ecx, dword [ecx + ebx*4]
cmp edx, ebp
jae 0x5f5822
mov dword [esp + 0x54], ebp
mov edi, edx
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0xb0]
mov edx, dword [ebp + edx]
lea edx, [edx + ecx + 1]
cmp edx, 0x16
jl 0x5f4f18
cmp ecx, 0x16
jae 0x5f581b
lea edx, [0x8df260]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x40], ecx
cmp esi, 6
jg 0x5f4ae6
cmp esi, 2
jg 0x5f47f7
cmp esi, 1
jne 0x5f4637
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f57ff
cmp eax, ecx
ja 0x5f57ff
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f57ff
sub ebx, eax
neg ebx
sar ebx, 0x1f
mov edx, dword [esp + 0x8c]
and edx, ebx
lea esi, [ebp + edx + 0x34]
mov eax, edi
lea edi, [esp + 0x13c]
call fcn.0044ce94
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x174]
mov ebx, dword [esp + 0x17c]
mov esi, ebp
lea ebp, [ecx + 1]
cmp ebp, ebx
ja 0x5f45ec
lea ebx, [ecx + 1]
mov dword [esp + 0x178], ebx
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*8]
mov ecx, dword [0x9ec0a0]
test ecx, ecx
jne 0x5f45c3
lea esi, [esp + 0x13c]
call fcn.0044ce94
lea ecx, [0x6ddad0]
mov edx, dword [esp + 0x188]
cmp ecx, edx
jne 0x5f57e1
mov ebx, dword [esp + 0x174]
mov ebp, dword [esp + 0x178]
mov ecx, dword [esp + 0x17c]
mov esi, edx
mov edx, dword [esp + 0x18c]
mov dword [edx + 0x14], ebp
mov dword [edx + 0x18], ecx
mov ecx, dword [0x9ec0a0]
test ecx, ecx
jne 0x5f45b0
mov dword [edx + 0x10], ebx
mov ecx, dword [esp + 0x184]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0xb0]
mov edi, dword [esp + 0x54]
mov ebx, edi
mov edx, ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb0], edx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x48], eax
cmp dword [0x9ebdc0], 4
jge 0x5f5613
mov esi, ebp
lea ebp, [eax + 1]
mov dword [esp + 0x44], ebp
cmp ebp, ebx
jge 0x5f5594
cmp ebp, ebx
jae 0x5f5876
mov dword [esp + 0x54], ebx
mov dword [esp + 0xb0], edx
imul ebx, eax, 0x2c
mov dword [esp + 0x8c], ebx
lea ebp, [ebx + edx + 0x2c]
mov ecx, dword [0x9ec0a0]
test ecx, ecx
jne 0x5f5560
mov edi, ebp
lea esi, [esp + 0x154]
call fcn.0044ce62
mov ecx, dword [esp + 0x40]
mov dword [ebx + edx + 0x2c], ecx
mov ecx, dword [esp + 0x184]
mov ebp, dword [esp + 0x68]
jmp 0x5f4225
lea edi, [edx + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.0044c8c0
mov eax, ecx
jmp 0x5f450c
lea eax, [0x63de80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x13c]
mov dword [esp + 8], eax
call fcn.0040f5b0
mov eax, dword [esp + 0x88]
jmp 0x5f44c2
lea eax, [0x63de80]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00438b20
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0xb0]
jmp 0x5f4498
cmp esi, 2
jne 0x5f47e2
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f57da
lea ebx, [eax - 2]
cmp ebx, ecx
ja 0x5f57da
mov edx, dword [esp + 0x54]
cmp ecx, edx
ja 0x5f57da
sub ecx, ebx
mov eax, edx
sub edx, ebx
neg edx
mov ebx, dword [esp + 0x8c]
add ebx, 0xffffffa8
sar edx, 0x1f
and ebx, edx
cmp ecx, 3
jbe 0x5f57d3
lea esi, [ebp + ebx + 0x8c]
lea edi, [esp + 0x124]
call fcn.0044ce94
mov ecx, dword [ebp + ebx + 0x50]
lea edx, [ecx + 1]
mov esi, ecx
mov ecx, dword [ebp + ebx + 0x4c]
mov ebx, dword [ebp + ebx + 0x54]
cmp edx, ebx
ja 0x5f4797
mov dword [esp + 0xac], ecx
mov dword [esp + 0x8c], ebx
mov edi, ebp
mov ebp, dword [0x9ec0a0]
lea ebx, [esi + esi*2]
lea ebx, [ecx + ebx*8]
test ebp, ebp
jne 0x5f475c
mov ebp, edi
mov edi, ebx
lea esi, [esp + 0x124]
call fcn.0044ce94
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], edx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x17c], ebx
mov esi, ebp
lea ebp, [0x6ddad0]
mov edi, ecx
mov ecx, dword [esp + 0x188]
cmp ebp, ecx
jne 0x5f57b5
mov ebp, dword [esp + 0x18c]
mov dword [ebp + 0x14], edx
mov dword [ebp + 0x18], ebx
mov edx, dword [0x9ec0a0]
test edx, edx
jne 0x5f4748
mov dword [ebp + 0x10], edi
mov eax, dword [esp + 0x88]
mov edx, ebp
mov esi, ecx
jmp 0x5f450c
lea edx, [ebp + 0x10]
mov ebx, edi
mov edi, edx
mov eax, ebx
call fcn.0044c8c0
mov eax, dword [esp + 0x54]
jmp 0x5f4738
mov dword [esp + 0x84], edx
lea eax, [0x63de80]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [esp + 0x124]
mov dword [esp + 8], eax
call fcn.0040f5b0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0xb0]
jmp 0x5f46e2
mov dword [esp + 0x8c], esi
lea eax, [0x63de80]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00438b20
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0x8c]
jmp 0x5f46ae
mov eax, edi
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
cmp esi, 5
je 0x5f485a
cmp esi, 6
jne 0x5f47e2
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f5792
cmp eax, ecx
ja 0x5f5792
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f5792
sub ebx, eax
neg ebx
sar ebx, 0x1f
mov ecx, dword [esp + 0x8c]
and ecx, ebx
lea esi, [ebp + ecx + 0x34]
lea edi, [esp + 0x15c]
call fcn.0044ce94
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f57ae
add eax, 0xfffffffe
cmp eax, ecx
ja 0x5f57ae
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f57ae
sub ecx, eax
sub ebx, eax
mov eax, dword [esp + 0x8c]
add eax, 0xffffffa8
neg ebx
sar ebx, 0x1f
and eax, ebx
cmp ecx, 3
jbe 0x5f57a7
mov dword [esp + 0x8c], eax
movzx ecx, byte [ebp + eax + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], 0x20
call fcn.004b4cc0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xb0]
mov esi, dword [ebp + ebx + 0x38]
mov edi, dword [ebp + ebx + 0x3c]
mov ebx, dword [ebp + ebx + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.004b5130
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
nop
cmp ecx, 3
jbe 0x5f57a0
nop
movzx ebx, byte [eax + 1]
movzx ebp, byte [eax]
movzx esi, byte [eax + 2]
movzx edi, byte [eax + 3]
shl esi, 8
or edi, esi
shl ebx, 0x10
or ebx, edi
shl ebp, 0x18
or ebp, ebx
mov ebx, dword [esp + 0x5c]
cmp ebx, 3
jbe 0x5f5799
mov dword [esp + 0x30], ebp
mov dword [esp + 0x94], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x90]
movzx ecx, byte [eax + 2]
mov dword [esp + 0x80], ecx
movzx edx, byte [eax + 1]
mov dword [esp + 0x7c], edx
movzx ebx, byte [eax + 3]
mov dword [esp + 0x78], ebx
movzx eax, byte [eax]
mov dword [esp + 0x74], eax
lea ebp, [0x62bba0]
mov dword [esp], ebp
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.00438a60
mov eax, dword [esp + 0x30]
dec eax
mov ecx, dword [esp + 0x80]
shl ecx, 8
mov edx, dword [esp + 0x78]
or edx, ecx
mov ecx, dword [esp + 0x7c]
shl ecx, 0x10
or ecx, edx
mov edx, dword [esp + 0x74]
shl edx, 0x18
or edx, ecx
sub eax, edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa8], ecx
nop
mov edx, eax
shr eax, 0x18
mov byte [ecx], al
mov eax, edx
shr edx, 0x10
mov byte [ecx + 1], dl
mov edx, eax
shr eax, 8
mov byte [ecx + 2], al
mov byte [ecx + 3], dl
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
call fcn.004b5030
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x84], edx
mov ebx, dword [esp + 0xa8]
mov dword [esp], ebx
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.004b5030
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x14]
lea edi, [esp + 0x10c]
mov ebx, eax
xor eax, eax
call fcn.0044c9ba
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x114], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x118], ecx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], edx
lea edi, [esp + 0x15c]
lea esi, [esp + 0x10c]
call fcn.0044ce94
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
cmp esi, 8
jg 0x5f4dfb
cmp esi, 7
je 0x5f4b4b
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f577d
cmp eax, ecx
ja 0x5f577d
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f577d
sub ebx, eax
neg ebx
sar ebx, 0x1f
mov ecx, dword [esp + 0x8c]
and ecx, ebx
movzx ecx, byte [ebp + ecx + 0x30]
mov byte [esp + 0x159], cl
mov byte [esp + 0x15a], cl
mov eax, edi
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f578b
add eax, 0xfffffffa
cmp eax, ecx
ja 0x5f578b
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f578b
sub ecx, eax
sub ebx, eax
mov eax, dword [esp + 0x8c]
add eax, 0xfffffef8
neg ebx
sar ebx, 0x1f
and eax, ebx
cmp ecx, 3
jbe 0x5f5784
movzx ebx, byte [ebp + eax + 0x89]
cmp ecx, 5
jbe 0x5f5784
movzx edx, byte [ebp + eax + 0xe1]
cmp ecx, 7
jbe 0x5f5784
mov dword [esp + 0x8c], eax
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2a], dl
nop
movzx ecx, byte [ebp + eax + 0x31]
mov byte [esp + 0x2f], cl
movzx edx, byte [ebp + eax + 0x139]
mov byte [esp + 0x29], dl
lea ebx, [0x62bba0]
mov dword [esp], ebx
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.00438a60
mov eax, dword [esp + 0xc]
mov ecx, dword [0x9b4750]
mov edx, dword [0x9b4754]
cmp edx, 0x10
jge 0x5f4df1
mov dword [esp + 0xa8], eax
cmp ecx, eax
je 0x5f4c26
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044d0c0
movzx eax, byte [esp + 0x2f]
mov ecx, dword [esp + 0xa8]
mov byte [ecx + 0xc], al
movzx eax, byte [esp + 0x2d]
mov byte [ecx + 0xd], al
movzx eax, byte [esp + 0x2a]
mov byte [ecx + 0xe], al
movzx eax, byte [esp + 0x29]
mov byte [ecx + 0xf], al
mov dword [esp], ecx
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.004b5030
mov eax, dword [esp + 0x14]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x70], edx
nop
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xb0]
movzx esi, byte [ebp + ebx + 0x32]
xchg esi, eax
mov byte [esp + 0x2e], al
xchg esi, eax
movzx edi, byte [ebp + ebx + 0x8a]
xchg edi, eax
mov byte [esp + 0x2c], al
xchg edi, eax
movzx eax, byte [ebp + ebx + 0xe2]
mov byte [esp + 0x2b], al
movzx ebx, byte [ebp + ebx + 0x13a]
mov byte [esp + 0x28], bl
lea ebp, [0x62bba0]
mov dword [esp], ebp
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.00438a60
mov eax, dword [esp + 0xc]
mov ecx, dword [0x9b4750]
mov edx, dword [0x9b4754]
cmp edx, 0x10
jge 0x5f4de7
mov dword [esp + 0xa8], eax
cmp ecx, eax
je 0x5f4d15
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044d0c0
movzx eax, byte [esp + 0x2e]
mov ecx, dword [esp + 0xa8]
mov byte [ecx + 0xc], al
movzx eax, byte [esp + 0x2c]
mov byte [ecx + 0xd], al
movzx eax, byte [esp + 0x2b]
mov byte [ecx + 0xe], al
movzx eax, byte [esp + 0x28]
mov byte [ecx + 0xf], al
mov dword [esp], ecx
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.004b5030
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xc]
lea edi, [esp + 0xf4]
mov ebx, eax
xor eax, eax
call fcn.0044c9ba
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], ebx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x108], ecx
lea edi, [esp + 0x15c]
lea esi, [esp + 0xf4]
call fcn.0044ce94
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
mov edx, 0x10
jmp 0x5f4cfa
mov edx, 0x10
jmp 0x5f4c0b
cmp esi, 9
jne 0x5f4e3e
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f5776
cmp eax, ecx
ja 0x5f5776
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f5776
mov word [esp + 0x159], 0xff00
mov eax, edi
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
cmp esi, 0xa
jne 0x5f4e9f
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f576f
cmp eax, ecx
ja 0x5f576f
mov ebx, dword [esp + 0x54]
cmp ecx, ebx
ja 0x5f576f
sub ebx, eax
neg ebx
sar ebx, 0x1f
mov ecx, dword [esp + 0x8c]
and ecx, ebx
movzx ebx, byte [ebp + ecx + 0x32]
movzx ecx, byte [ebp + ecx + 0x31]
mov byte [esp + 0x159], cl
mov byte [esp + 0x15a], bl
mov eax, edi
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
lea ecx, [eax + 2]
test ecx, ecx
jl 0x5f5768
lea ebx, [eax - 2]
cmp ebx, ecx
ja 0x5f5768
mov edx, dword [esp + 0x54]
cmp ecx, edx
ja 0x5f5768
sub ecx, ebx
sub edx, ebx
neg edx
mov ebx, dword [esp + 0x8c]
add ebx, 0xffffffa8
sar edx, 0x1f
and ebx, edx
cmp ecx, 1
jbe 0x5f5761
movzx edx, byte [ebp + ebx + 0x30]
cmp ecx, 3
jbe 0x5f5761
movzx ecx, byte [ebp + ebx + 0x88]
mov byte [esp + 0x159], dl
mov byte [esp + 0x15a], cl
mov eax, edi
mov edx, dword [esp + 0x18c]
mov esi, dword [esp + 0x188]
jmp 0x5f450c
jae 0x5f5814
lea ebp, [0x8df260]
mov edx, dword [ebp + edx*4]
mov dword [esp + 0x40], edx
cmp edx, 0x16
jae 0x5f580d
lea ebp, [0x8df2c0]
mov edx, dword [ebp + edx*4]
neg ebx
cmp edx, ebx
je 0x5f4f67
cmp ecx, 0x16
jae 0x5f5806
lea edx, [0x8df260]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0xb0]
jmp 0x5f441a
lea edx, [0x8df260]
jmp 0x5f4f5b
mov dword [esp + 0x84], ebx
lea eax, [0x64f4e0]
mov dword [esp], eax
shl ebp, 1
mov dword [esp + 0x34], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.00438a60
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa8], eax
lea ecx, [0x64f4e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x34]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
call fcn.0040f7f0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0xa8]
jmp 0x5f438b
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.005f3a50
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp], edx
call fcn.00407550
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
call fcn.00407620
mov eax, dword [esp + 8]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea ecx, [0x62ae60]
mov dword [esp + 0xe4], ecx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xe8], edx
lea edx, [0x62b9a0]
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], eax
nop
mov eax, dword [0x9da3cc]
lea ebx, [0x6dc070]
mov dword [esp], ebx
mov dword [esp + 4], eax
lea eax, [0x6767a1]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x12
lea ebp, [esp + 0xe4]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 2
call fcn.0049e440
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
lea edx, [0x8dcb00]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xb0]
jmp 0x5f435d
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
jmp 0x5f512d
dec ebx
lea edx, [0x8dcb00]
test ebx, ebx
jl 0x5f427f
cmp ebx, ecx
jae 0x5f5845
imul ebp, ebx, 0x2c
mov edx, dword [edi + ebp]
cmp edx, 0x16
jae 0x5f5845
mov eax, ebp
lea ebp, [0x8df380]
mov edx, dword [ebp + edx*4]
lea ebp, [edx + 2]
cmp ebp, 0x16
jae 0x5f524f
lea ebp, [0x8df260]
mov edx, dword [ebp + edx*4 + 8]
mov dword [esp + 0x40], edx
cmp edx, 0x16
jae 0x5f583e
lea ebp, [0x8df2c0]
mov edx, dword [ebp + edx*4]
cmp edx, 2
je 0x5f5234
cmp dword [0x9ebdc0], 2
jl 0x5f5126
mov dword [esp + 0x6c], ebx
mov eax, dword [edi + eax]
mov dword [esp], eax
call fcn.00407550
mov eax, dword [esp + 4]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
lea ecx, [0x62ae60]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
nop
mov eax, dword [0x9da3cc]
lea edx, [0x6dc070]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x67b0db]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x1d
lea ebx, [esp + 0xc4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.0049e440
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x6c]
lea ebp, [0x8df2c0]
mov edi, dword [esp + 0xb0]
jmp 0x5f5126
mov eax, dword [esp + 0x184]
mov ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
mov edx, edi
mov ebp, 3
jmp 0x5f452a
lea ebp, [0x8df2c0]
jmp 0x5f518e
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call fcn.005f3af0
mov eax, dword [esp + 0x188]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x18c]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call ecx
cmp dword [0x9ebdc0], 1
jge 0x5f52af
lea edx, [0x8dcb00]
mov edi, dword [esp + 0xb0]
jmp 0x5f511c
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.005f3a50
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00407620
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
lea ecx, [0x62b9a0]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
nop
mov eax, dword [0x9da3cc]
lea edx, [0x6dc070]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x66d360]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea ebx, [esp + 0xb4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.0049e440
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005f3990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00407620
mov eax, dword [esp + 8]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
lea ecx, [0x62b9a0]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
nop
mov eax, dword [0x9da3cc]
lea edx, [0x6dc070]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x67084c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 8
lea ebx, [esp + 0xcc]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.0049e440
jmp 0x5f529d
mov dword [esp + 0x190], 0
nop
call fcn.00427960
add esp, 0x180
ret
mov eax, dword [esp + 0x188]
mov dword [esp], eax
mov edx, dword [esp + 0x18c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.005f3ef0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x184]
mov dword [esi + 0x2ec], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x48]
mov ecx, esi
lea edx, [0x8df320]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xb0]
jmp 0x5f4278
lea edx, [0x8dcb00]
mov ecx, ebx
jmp 0x5f41cf
mov edx, dword [ecx + 0x2ec]
test edx, edx
jl 0x5f5504
mov edx, dword [esp + 0x3c]
add ebx, edx
cmp ebx, 0x16
jb 0x5f547f
lea edx, [0x8df380]
jmp 0x5f424b
lea ebp, [0x8df260]
mov ebx, dword [ebp + ebx*4]
cmp ebx, 0x16
jae 0x5f5868
lea ebp, [0x8df2c0]
mov ebp, dword [ebp + ebx*4]
cmp ebp, edx
je 0x5f54af
lea edx, [0x8df380]
mov ebp, dword [esp + 0x68]
jmp 0x5f424b
mov dword [ecx + 0x2ec], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov eax, edi
lea edi, [esp + 0x154]
mov esi, ecx
call fcn.0044ce62
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x68]
test ecx, ecx
jle 0x5f54de
dec ecx
mov edx, dword [esp + 0x184]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x44]
mov eax, ebp
mov edx, dword [esp + 0xb0]
mov ebp, ecx
mov ecx, dword [esp + 0x184]
jmp 0x5f452a
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x188]
mov dword [esp], eax
mov edx, dword [esp + 0x18c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.005f3ef0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x184]
mov dword [esi + 0x2ec], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x48]
mov ecx, esi
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xb0]
jmp 0x5f5469
lea eax, [0x64f4e0]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea eax, [esp + 0x154]
mov dword [esp + 8], eax
call fcn.0040f5b0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0x8c]
jmp 0x5f4598
lea eax, [0x64f4e0]
mov dword [esp], eax
shl ebx, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00438a60
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa8], eax
lea ecx, [0x64f4e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
call fcn.0040f7f0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x184]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0xa8]
jmp 0x5f455b
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005f3990
mov eax, dword [esp + 8]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x40]
mov dword [esp], edx
call fcn.005f3a50
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
call fcn.00407620
mov eax, dword [esp + 8]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x98]
mov dword [esp], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
call fcn.00407620
mov eax, dword [esp + 8]
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
lea ecx, [0x62b9a0]
mov dword [esp + 0xd4], ecx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], eax
nop
mov eax, dword [0x9da3cc]
lea edx, [0x6dc070]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x674108]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xe
lea ebx, [esp + 0xd4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 2
call fcn.0049e440
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x68]
jmp 0x5f454a
nop
call fcn.00427960
add esp, 0x180
ret
call fcn.00426ef0
ud2
call fcn.00426ff0
ud2
call fcn.00426ff0
ud2
call fcn.00426ff0
ud2
call fcn.00426ff0
ud2
call fcn.00426ef0
ud2
call fcn.00426ff0
ud2
call fcn.00426ff0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ff0
ud2
mov dword [esp], ecx
lea eax, [0x64d020]
mov dword [esp + 4], eax
lea eax, [0x6389a0]
mov dword [esp + 8], eax
call fcn.004073a0
ud2
call fcn.00426ef0
ud2
call fcn.00426ff0
ud2
mov dword [esp], edx
lea eax, [0x64d020]
mov dword [esp + 4], eax
lea eax, [0x6389a0]
mov dword [esp + 8], eax
call fcn.004073a0
ud2
call fcn.00426ff0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.00426ef0
ud2
call fcn.0044b170
jmp fcn.005f40b0