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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xcc
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov edx, dword [ecx + 8]
mov dword [esp + 0xb8], edx
xor eax, eax
xor edx, edx
mov dword [esp + 0x90], eax
mov ecx, dword [ebx]
test ecx, ecx
jle 0x60031428
mov eax, edx
shl eax, 4
lea eax, [eax + edx*8]
mov ebp, dword [esi + 0x37e0]
test ebp, ebp
je 0x600326de
mov ebp, dword [ebx + 0x34]
mov edi, dword [eax + ebp + 0x10]
mov dword [esp + edx*4 + 0x30], edi
mov edi, dword [eax + ebp + 0xc]
mov dword [esp + edx*4 + 0x40], edi
mov edi, dword [eax + ebp + 4]
imul edi, dword [eax + ebp + 8]
add eax, 0x18
mov dword [esp + edx*4 + 0x50], edi
inc edx
cmp edx, ecx
jl 0x600313f2
cmp ecx, 1
jne 0x60031435
mov dword [esp + 0x50], 1
mov eax, dword [esi + 0x37b8]
cmp eax, 1
mov dword [esp + 0xb0], eax
je 0x600326b4
mov eax, dword [esi + 0x37bc]
mov dword [esp + 0xa8], eax
mov al, 1
xor ecx, ecx
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
test edi, edi
jle 0x600314ae
mov edx, ecx
shl edx, 4
test al, al
je 0x600326a1
mov ebp, dword [esi + 0x37cc]
mov ebx, dword [ebp + edx + 4]
cmp ebx, dword [ebp + edx + 8]
je 0x6003148c
xor al, al
cmp ebx, 1
je 0x60031498
cmp ebx, 2
je 0x60031498
xor al, al
add edx, 0x10
inc ecx
cmp ecx, edi
jl 0x60031472
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
mov eax, 8
xor edx, edx
mov ecx, dword [esp + 0xec]
idiv ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xb0]
mov eax, dword [esi + 4]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0x9c], eax
mov ebp, dword [esi + 0xc]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esi + 8]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0xbc], eax
mov ebp, dword [esi + 0x10]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov edx, dword [esi + 0x4de8]
cmp edx, 1
mov dword [esp + 0xc0], eax
je 0x60032680
xor eax, eax
mov dword [esp + 0xc4], eax
cmp edx, 1
je 0x6003265f
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x60031562
sub eax, dword [esp + 0xc4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x6003157b
sub eax, dword [esp + 0x94]
mov dword [esp + 0xbc], eax
mov ecx, dword [esi + 0x78]
mov eax, dword [esp + 0x98]
cmp eax, ecx
jge 0x60031597
mov eax, dword [esp + 0xc4]
add dword [esp + 0x98], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esp + 0xc0]
cmp edx, eax
mov dword [esp + 0x7c], eax
jge 0x600315b7
mov eax, dword [esp + 0x94]
add dword [esp + 0xc0], eax
xor ebp, ebp
test edi, edi
jle 0x6003160f
mov edx, dword [esi + 0x37cc]
mov eax, ebp
shl eax, 4
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x90]
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [eax + edx + 4]
inc ebp
imul ecx, dword [eax + edx + 8]
add ebx, ecx
add eax, 0x10
cmp ebp, edi
jl 0x600315e0
mov dword [esp + 0x90], ebx
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x60031c30
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x60031c30
mov ebp, dword [ebx + 0x34]
mov eax, dword [esp + 0xb0]
add eax, eax
add eax, eax
add eax, eax
mov ecx, dword [ebp + 4]
cdq
idiv ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa8]
add eax, eax
add eax, eax
add eax, eax
mov ebp, dword [ebp + 8]
cdq
idiv ebp
mov dword [esp + 0xa8], eax
mov ebp, dword [esi + 0x4c]
mov ecx, dword [esp + 0xac]
lea eax, [ecx + ebp - 1]
cdq
idiv ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x50]
mov ebp, dword [esp + 0xa8]
cdq
xor eax, edx
sub eax, edx
lea eax, [ebp + eax - 1]
cdq
mov ecx, dword [esp + 0x7c]
idiv ebp
mov ebp, dword [ebx + 0x20]
cmp ebp, ecx
jge 0x600323bb
mov ecx, dword [esp + 0x90]
mov edx, ecx
shl edx, 7
shl ecx, 7
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], eax
jmp 0x600316c5
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d8]
jl 0x600318fb
xor eax, eax
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 0x34]
mov edx, dword [ecx + 8]
test edx, edx
jle 0x600318fb
lea edi, [ebp + ebp]
add edi, edi
add edi, edi
lea ebx, [eax + eax]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x74], edi
mov edi, eax
mov dword [esp + 0x88], ebp
mov ebp, edx
imul ebp, dword [esp + 0x74]
add ebp, ebx
cmp ebp, dword [esi + 0x50]
jge 0x60032200
mov ebp, dword [esp + 0xe4]
mov eax, dword [ebp + 0x1c]
mov ebp, dword [esi + 0x78]
cmp eax, ebp
jge 0x600318e2
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], edi
mov edi, ebp
xor ecx, ecx
mov ebx, dword [esp + 0x68]
imul edi, dword [esp + 0x88]
add edi, eax
mov ebx, dword [ebx]
imul edi, dword [esp + 0x84]
add edi, dword [esi + 0x4de4]
mov dword [esp + 0xac], ebx
test ebx, ebx
jle 0x600317ca
mov ebx, dword [esi + 0x37cc]
mov dword [esp + 0xa4], ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + ebx + 4]
shl eax, 7
inc ecx
imul eax, dword [edx + ebx + 8]
add edi, eax
add edx, 0x10
cmp ecx, ebp
jl 0x600317a1
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebx, edx
shl ebx, 7
imul ebx, dword [esp + 0x78]
add ebx, edi
xor edi, edi
test edx, edx
jle 0x600318ca
lea ebp, [edi + edi]
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0xe4]
lea eax, [edx + edx]
add eax, eax
add eax, eax
imul eax, dword [esp + 0x7c]
add eax, ebp
mov ecx, dword [esp + 0xe8]
cmp eax, dword [ecx + 0x4c]
jge 0x600321e0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x6003219a
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.600227b0
add ebx, 0x80
mov eax, dword [esi + 0x34]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xb0]
mov dword [esp], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x7c]
imul edx, dword [eax + 4]
add edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x88]
imul edx, dword [eax + 8]
add edx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
call fcn.6002ff80
test eax, eax
jne 0x600326f0
add ebp, 8
inc edi
mov eax, dword [esi + 0x34]
mov dword [esp + 0x68], eax
mov edx, dword [eax + 4]
cmp edi, edx
jl 0x600317f2
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
inc eax
cmp eax, ebp
jl 0x6003173a
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov edx, dword [ecx + 8]
add ebx, 8
inc edi
cmp edi, edx
jl 0x60031704
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x60031c10
cmp edi, dword [esi + 0x37d8]
jg 0x60031c10
mov eax, dword [esp + 0xbc]
cmp ebp, eax
jl 0x60031c10
mov eax, dword [esp + 0xc0]
cmp ebp, eax
jge 0x60031c10
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x60031945
mov eax, dword [eax]
test eax, eax
je 0x60031a80
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 0x1c]
sub eax, dword [esp + 0x9c]
test eax, eax
jle 0x60032340
mov edx, ebp
mov ebx, dword [esi + 0x30]
mov ecx, dword [esp + 0x98]
imul ebx, dword [esi + 0x37b8]
imul eax, ebx
mov ebx, dword [esp + 0x9c]
sub edx, dword [esp + 0xbc]
imul edx, dword [esi + 0x37bc]
imul edx, dword [esi + 0x3c]
add edx, eax
mov eax, dword [esp + 0xe0]
imul edx, dword [esp + 0xb4]
add edx, dword [esi + 0x20]
mov dword [eax + 0x2c], edx
cmp ebx, ecx
jge 0x600322b8
mov eax, ebp
mov edi, dword [esi + 0x4834]
mov edx, dword [esp + 0x80]
imul eax, dword [esi + 0x78]
add eax, ebx
imul eax, dword [esp + 0x84]
add eax, dword [esi + 0x4de4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call dword [0x6004fee8]
mov edx, edi
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x6003224f
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov edi, ecx
mov dword [esp + 0x88], ebp
mov ecx, eax
shl ecx, 4
mov edx, ecx
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x60032231
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
jmp 0x60031a4a
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0x78]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul edx, eax, 0xb4
mov ecx, dword [edx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], ecx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x60031a40
jmp 0x60032220
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp ebx, eax
jge 0x60031c10
mov eax, dword [esi + 0x78]
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xe8]
imul edx, dword [esp + 0x88]
add edx, ebx
imul edx, dword [esp + 0x84]
add edx, dword [eax + 0x4de4]
xor eax, eax
test edi, edi
jle 0x6003238d
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x37cc]
mov ebp, dword [esp + 0x88]
shl ebp, 7
mov esi, ebx
shl esi, 4
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], ebx
xor ebx, ebx
mov ebp, eax
shl ebp, 4
mov esi, dword [ebp + ecx + 8]
test esi, esi
jle 0x60032380
lea edi, [eax + eax]
mov edx, dword [ebp + ecx + 4]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], eax
xor eax, eax
test edx, edx
jle 0x60032366
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x78]
mov dword [esp + 0xac], ebp
jmp 0x60031b5b
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x4ddc]
mov ebp, dword [esp + 0x70]
imul ebp, edi
imul ebp, edx
imul esi, ebp
mov ebp, dword [esp + 0x6c]
add esi, dword [ecx + ebx*2 + 4]
imul ebp, edx
add esi, ebp
shl edi, 7
imul edx, edi
xor ebp, ebp
imul edx, dword [esp + 0xa8]
add esi, edx
mov edx, eax
shl edx, 4
add esi, edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xa4], eax
lea esi, [esi]
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0x6004fee8]
mov edi, dword [esp + 0xe8]
mov ecx, dword [edi + 0x37cc]
mov edi, dword [edi + 0x78]
mov edx, dword [esp + 0xac]
mov edx, dword [edx + ecx + 4]
mov eax, edi
shl eax, 4
imul eax, edx
add esi, eax
add ebx, 0x10
inc ebp
cmp ebp, 8
jl 0x60031bb0
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x64]
inc eax
cmp eax, edx
jl 0x60031b50
jmp 0x60032350
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x600324ad
inc ebp
mov eax, dword [esi + 0x7c]
cmp ebp, eax
jl 0x600316bf
jmp 0x600323b0
mov ebp, dword [ebx + 0x20]
mov eax, dword [esp + 0x7c]
cmp ebp, eax
jge 0x6003216d
mov eax, dword [esp + 0x90]
mov edx, eax
shl edx, 7
shl eax, 7
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], edx
mov edi, dword [ebx + 0x1c]
cmp edi, ecx
jge 0x6003215e
mov eax, ebp
shl eax, 7
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ebp
mov ebp, ecx
xor eax, eax
mov edx, dword [ebx + 0x34]
imul ebp, dword [esp + 0x70]
add ebp, edi
mov edx, dword [edx]
imul ebp, dword [esp + 0x6c]
add ebp, dword [esi + 0x4de4]
mov dword [esp + 0xac], edx
test edx, edx
jle 0x60031d02
mov edx, dword [esi + 0x37cc]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x88], edx
mov edx, eax
shl edx, 4
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x8c], ecx
mov ecx, edx
mov dword [esp + 0xa4], edi
nop
mov edx, dword [ecx + ebx + 4]
shl edx, 7
inc eax
imul edx, dword [ecx + ebx + 8]
add ebp, edx
add ecx, 0x10
cmp eax, esi
jl 0x60031cd0
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x60031db0
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x60031e1f
mov dword [esp + 0xa4], edi
mov esi, eax
xor edi, edi
mov ecx, dword [esp + esi*4 + 0x50]
test ecx, ecx
jle 0x60031d8c
lea esi, [esi]
mov dword [esp], ebp
mov dword [esp + 4], 0x80
call dword [0x6004fee4]
mov edx, dword [ebx + esi*4 + 0x24]
mov ecx, dword [esp + 0xe0]
mov word [esp + 0x60], dx
mov edx, dword [esp + esi*4 + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
lea edx, [esp + 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x10], edx
call fcn.600224b0
movsx edx, word [esp + 0x60]
add ebp, 0x80
inc edi
mov dword [ebx + esi*4 + 0x24], edx
cmp edi, dword [esp + esi*4 + 0x50]
jl 0x60031d30
mov edx, dword [ebx]
inc esi
cmp esi, edx
jl 0x60031d22
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
jmp 0x60031e1f
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x60031e1f
mov dword [esp + 0xa4], edi
xor esi, esi
mov ecx, dword [esp + eax*4 + 0x50]
test ecx, ecx
jle 0x60031e09
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0xe0]
mov esi, esi
lea edi, [edi]
mov dword [esp], edi
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.60022590
add ebp, 0x80
inc esi
mov eax, dword [esp + 0xac]
cmp esi, dword [esp + eax*4 + 0x50]
jl 0x60031de0
mov edx, dword [ebx]
inc eax
cmp eax, edx
jl 0x60031dbf
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
mov edx, dword [esp + 0xe0]
mov eax, dword [esi + 0x7c]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
call fcn.6002ff80
test eax, eax
jne 0x60032700
mov eax, dword [esp + 0x9c]
cmp edi, eax
jl 0x60032140
mov eax, dword [esp + 0x98]
cmp edi, eax
jge 0x60032130
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x70]
cmp edx, eax
jl 0x60032120
mov eax, dword [esp + 0xc0]
cmp edx, eax
jge 0x60032110
mov edx, dword [esi + 0x37c0]
cmp edx, dword [esi + 0x37d4]
jg 0x60032100
cmp edx, dword [esi + 0x37d8]
jg 0x600320f0
mov ecx, dword [esi + 0x78]
mov eax, ecx
imul eax, dword [esp + 0x70]
add eax, edi
imul eax, dword [esp + 0x6c]
add eax, dword [esi + 0x4de4]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x60032020
mov eax, dword [eax]
test eax, eax
jne 0x60032020
xor ebp, ebp
test edx, edx
jle 0x60032143
mov eax, dword [esi + 0x37cc]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xa4], edi
xor ecx, ecx
mov edi, ebp
shl edi, 4
mov ebx, dword [edi + eax + 8]
test ebx, ebx
jle 0x6003253d
lea edx, [ebp + ebp]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xa8], edx
mov edx, dword [edi + eax + 4]
shl esi, 4
mov dword [esp + 0xac], esi
mov dword [esp + 0x88], ebp
xor esi, esi
test edx, edx
jle 0x60032520
mov eax, ecx
shl eax, 7
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x8c]
jmp 0x60031f78
mov ebx, dword [esp + 0x78]
mov ebx, dword [ebx + eax + 8]
mov ebp, esi
shl ebp, 4
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 0x4ddc]
add ebp, dword [eax + edi*2 + 4]
mov eax, dword [esp + 0x64]
imul eax, ecx
imul eax, edx
imul ebx, eax
add ebp, ebx
mov ebx, edx
imul ebx, dword [esp + 0x80]
imul edx, dword [esp + 0xac]
imul ecx, ebx
add ebp, ecx
add ebp, edx
xor ebx, ebx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x74]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], 0x10
call dword [0x6004fee8]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + 0x37cc]
mov ecx, dword [ecx + 0x78]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax + 4]
mov edi, ecx
shl edi, 4
imul edi, edx
add ebp, edi
add esi, 0x10
inc ebx
cmp ebx, 8
jl 0x60031fc0
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0xa8]
inc esi
cmp esi, edx
jl 0x60031f70
jmp 0x6003250a
mov ebp, dword [esi + 0x4834]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call dword [0x6004fee8]
mov edx, dword [esi + 0x4834]
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x600325a2
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa4], edi
mov edi, eax
shl edi, 4
mov edx, edi
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x60032584
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb0], eax
jmp 0x600320ad
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0xb4]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul ecx, eax, 0xb4
mov edx, dword [ecx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], edx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x600320a0
jmp 0x60032570
mov ecx, dword [esi + 0x78]
jmp 0x60032143
mov ecx, dword [esi + 0x78]
jmp 0x60032143
mov ecx, dword [esi + 0x78]
jmp 0x60032143
mov ecx, dword [esi + 0x78]
jmp 0x60032143
mov ecx, dword [esi + 0x78]
jmp 0x60032143
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x60032600
inc edi
cmp edi, ecx
jl 0x60031c72
mov ebp, dword [esp + 0x70]
mov eax, dword [esi + 0x7c]
inc ebp
cmp ebp, eax
jl 0x60031c5a
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x6003218d
cmp edi, dword [esi + 0x37d8]
jg 0x6003218d
mov eax, 2
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.60022600
add ebx, 0x80
jmp 0x60031851
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
jmp 0x600318ca
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
jmp 0x600318fb
mov dword [esp + 0xac], edi
mov eax, dword [esp + 0x7c]
mov edi, dword [esi + 0x37c0]
inc eax
cmp eax, edi
jl 0x60031a10
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x88]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x90]
mov eax, dword [esi + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov edi, dword [esi + 0x78]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.6002e920
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x600319ac
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x60031c10
mov eax, dword [esp + 0x98]
cmp ebx, eax
jne 0x60031c10
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x90]
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esi + 0x78]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.6002e920
jmp 0x60031c10
xor eax, eax
jmp 0x6003195e
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
inc ebx
cmp ebx, esi
jl 0x60031b1f
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xe8]
mov edi, dword [edx + 0x37c0]
inc eax
cmp eax, edi
jl 0x60031afd
mov ebx, dword [esp + 0x7c]
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x60031aa4
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xe8]
jmp 0x60031c10
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0xe4]
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x600323cf
mov eax, dword [eax]
test eax, eax
je 0x6003247b
mov eax, dword [esp + 0x94]
test eax, eax
je 0x60032470
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
cmp edx, eax
jg 0x60032486
mov eax, dword [esp + 0x7c]
mov ebp, edx
jmp 0x60032403
mov eax, dword [esi + 0x7c]
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edi
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 0x78]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.6002e920
inc ebp
mov eax, dword [esp + 0x98]
cmp ebp, eax
jle 0x60032400
jmp 0x60032486
mov edi, dword [esi + 0x37c0]
jmp 0x6003216d
mov edi, dword [esi + 0x37c0]
jmp 0x6003216d
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x60032498
mov edi, dword [esi + 0x37c0]
jmp 0x6003216d
xor edx, edx
xor eax, eax
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], edx
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0xe4]
lea edx, [ebp + 1]
mov eax, dword [esp + 0x94]
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], 0
add eax, dword [esi + 0x7c]
cmp edx, eax
jne 0x600324e3
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esi + 0x78]
dec edx
mov eax, 1
mov dword [esi + 0xc], edx
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edx
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x78]
mov ebx, dword [edi + eax + 8]
inc ecx
cmp ecx, ebx
jl 0x60031f3a
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0xe8]
mov edx, dword [edx + 0x37c0]
inc ebp
cmp ebp, edx
jl 0x60031f00
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
jmp 0x60032143
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0xb0]
mov ecx, dword [esi + 0x37c0]
inc eax
cmp eax, ecx
jl 0x6003206a
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xe4]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov ecx, dword [esi + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esi + 0x7c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0xa0]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x28], al
call fcn.6002e920
mov ecx, dword [esi + 0x78]
jmp 0x60032143
mov ebp, dword [esp + 0x70]
lea eax, [edi + 1]
cdq
idiv ecx
test edx, edx
mov dword [ebx + 0x1c], edx
je 0x60032616
mov dword [ebx + 0x20], ebp
jmp 0x60032635
lea eax, [ebp + 1]
mov dword [ebx + 0x20], eax
cmp eax, dword [esi + 0x7c]
jne 0x60032635
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
sub edi, dword [esp + 0xc4]
mov eax, 1
mov dword [esi + 0xc], edi
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edi
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xa8]
cmp eax, 2
jne 0x60031540
mov eax, 1
mov dword [esp + 0x94], eax
jmp 0x60031549
mov eax, dword [esp + 0xb0]
cmp eax, 2
jne 0x6003152e
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x60031537
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
jmp 0x600314ae
mov eax, dword [esi + 0x37bc]
cmp eax, 1
mov dword [esp + 0xa8], eax
jne 0x60031458
xor al, al
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
jmp 0x600314ae
mov dword [ebx + edx*4 + 0x24], 0
mov ecx, dword [ebx]
jmp 0x60031400
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret