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

Disassembly:
push edi
push esi
push ebp
push ebx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
sub esp, 0x11c
mov eax, dword [edi]
xor ebx, ebx
test eax, eax
mov edx, 0
mov dword [esp + 0xe8], edx
jle 0x6003acc0
mov dword [esp + 0xbc], eax
mov edx, ebx
shl edx, 4
lea ecx, [edx + ebx*8]
lea esi, [esi]
mov eax, dword [esp + 0x138]
mov eax, dword [eax + 0x37e0]
test eax, eax
je 0x6003c17c
lea edx, [ebx + ebx]
add edx, edx
mov eax, dword [edi + 0x34]
lea ebp, [esp + 0xa8]
inc ebx
mov esi, dword [ecx + eax + 4]
imul esi, dword [ecx + eax + 8]
mov dword [edx + ebp], esi
mov ebp, dword [ecx + eax + 0x14]
lea esi, [esp + 0x98]
mov ebp, dword [ebp + 8]
mov dword [edx + esi], ebp
mov ebp, dword [ecx + eax + 0x10]
lea esi, [esp + 0x78]
mov dword [edx + esi], ebp
mov eax, dword [ecx + eax + 0xc]
lea ebp, [esp + 0x88]
add ecx, 0x18
mov dword [edx + ebp], eax
mov eax, dword [esp + 0xbc]
cmp ebx, eax
jl 0x6003ac50
mov esi, dword [esp + 0x138]
cmp eax, 1
je 0x6003c16c
mov eax, dword [esi + 0x37b8]
mov dword [esp + 0xe0], eax
cmp eax, 1
je 0x6003c142
mov eax, dword [esi + 0x37bc]
mov dword [esp + 0x104], eax
mov dl, 1
xor eax, eax
mov ebp, dword [esi + 0x37c0]
mov byte [esp + 0x100], dl
test ebp, ebp
jle 0x6003ad62
mov edx, eax
shl edx, 4
mov bh, byte [esp + 0x100]
mov edi, ebp
mov ebp, esi
mov esi, eax
mov eax, edx
lea esi, [esi]
lea edi, [edi]
mov dl, bh
test dl, dl
je 0x6003c12b
mov ecx, dword [ebp + 0x37cc]
mov edx, dword [eax + ecx + 4]
cmp edx, dword [eax + ecx + 8]
je 0x6003ad3c
xor bh, bh
cmp edx, 1
je 0x6003ad48
cmp edx, 2
je 0x6003ad48
xor bh, bh
inc esi
add eax, 0x10
cmp esi, edi
jl 0x6003ad20
mov byte [esp + 0x100], bh
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x134]
mov eax, 8
mov edx, dword [esp + 0x13c]
mov ecx, edx
cdq
idiv ecx
mov dword [esp + 0x108], eax
mov ecx, dword [esp + 0xe0]
mov edx, dword [esi + 4]
imul ecx, eax
mov eax, edx
cdq
idiv ecx
mov dword [esp + 0xf8], eax
mov eax, dword [esi + 0xc]
lea eax, [eax + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x104]
mov edx, dword [esi + 8]
imul ecx, eax
mov eax, edx
cdq
idiv ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 0x10]
lea eax, [eax + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0xec], eax
mov eax, dword [esi + 0x4de8]
cmp eax, 1
je 0x6003c10a
xor edx, edx
mov dword [esp + 0x10c], edx
cmp eax, 1
je 0x6003c0e9
xor eax, eax
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x6003ae13
sub eax, edx
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x6003ae2e
mov edx, dword [esp + 0x110]
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 0x78]
mov edx, dword [esp + 0xf4]
mov dword [esp + 0xe4], eax
cmp edx, eax
jge 0x6003ae55
mov eax, edx
mov edx, dword [esp + 0x10c]
add eax, edx
mov dword [esp + 0xf4], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esp + 0xec]
mov dword [esp + 0xd4], eax
cmp edx, eax
jge 0x6003ae7c
mov eax, edx
mov edx, dword [esp + 0x110]
add eax, edx
mov dword [esp + 0xec], eax
xor ecx, ecx
test ebp, ebp
jle 0x6003aec3
mov edi, ebp
mov eax, dword [esi + 0x37cc]
mov edx, ecx
shl edx, 4
mov ebp, eax
mov ebx, dword [esp + 0xe8]
nop
lea esi, [esi]
inc ecx
mov eax, dword [edx + ebp + 4]
imul eax, dword [edx + ebp + 8]
add edx, 0x10
add ebx, eax
cmp ecx, edi
jl 0x6003aea0
mov ebp, edi
mov edi, dword [esp + 0x134]
mov dword [esp + 0xe8], ebx
mov eax, dword [edi + 8]
test eax, eax
je 0x6003b5e0
mov eax, dword [edi + 0xc]
test eax, eax
je 0x6003b5e0
mov eax, dword [esp + 0xe0]
mov ecx, dword [edi + 0x34]
add eax, eax
mov ebx, dword [ecx + 4]
add eax, eax
add eax, eax
cdq
idiv ebx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x104]
mov ecx, dword [ecx + 8]
add eax, eax
add eax, eax
add eax, eax
cdq
idiv ecx
mov dword [esp + 0xe4], eax
mov eax, dword [esi + 0x4c]
mov edx, dword [esp + 0xfc]
mov ecx, dword [esi + 0x50]
lea eax, [eax + edx - 1]
mov ebx, edx
cdq
idiv ebx
mov dword [esp + 0x104], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0xe4]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xd8], ecx
lea eax, [edx + eax - 1]
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x114], edx
cdq
mov dword [esp + 0x118], edi
mov edi, dword [esp + 0x114]
idiv edi
cmp ecx, ebx
mov dword [esp + 0xbc], eax
mov edi, dword [esp + 0x118]
jl 0x6003af85
jmp 0x6003bdde
mov ebp, dword [esi + 0x37c0]
cmp ebp, dword [esi + 0x37d8]
jl 0x6003b21d
mov edx, dword [esp + 0x134]
xor ecx, ecx
mov edx, dword [edx + 0x34]
mov dword [esp + 0xfc], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0xd0], edx
test eax, eax
jle 0x6003b21d
mov ebp, ecx
add ebp, ebp
add ebp, ebp
add ebp, ebp
mov ebx, ebp
lea edx, [eax + eax]
mov ecx, dword [esp + 0xd8]
add edx, edx
add edx, edx
imul edx, ecx
add edx, ebx
cmp edx, dword [esi + 0x50]
jge 0x6003bc10
mov ecx, dword [esp + 0x134]
mov edx, dword [esi + 0x78]
mov edi, dword [ecx + 0x1c]
cmp edi, edx
jge 0x6003b1fd
mov ecx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xd0]
shl ecx, 7
mov eax, dword [ebp + 4]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe4]
mov edi, dword [esp + 0xe0]
imul edx, ebx
mov ebx, dword [esp + 0x138]
add edx, ebp
mov ebp, dword [esp + 0xd0]
xor ecx, ecx
imul edx, edi
mov esi, dword [ebp]
add edx, dword [ebx + 0x4de4]
test esi, esi
jle 0x6003b09f
mov edi, ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0xd4], eax
mov ebp, dword [edi + 0x37cc]
mov edi, edx
mov edx, ebx
mov ebx, edi
lea esi, [esi]
mov eax, dword [edx + ebp + 4]
inc ecx
shl eax, 7
imul eax, dword [edx + ebp + 8]
add edx, 0x10
add ebx, eax
cmp ecx, esi
jl 0x6003b080
mov eax, dword [esp + 0xd4]
mov edx, ebx
mov esi, dword [esp + 0xfc]
xor ebx, ebx
mov ecx, eax
shl ecx, 7
imul esi, ecx
add esi, edx
test eax, eax
jle 0x6003b1c7
lea ebp, [ebx + ebx]
mov edi, dword [esp + 0x134]
add ebp, ebp
mov edx, dword [esp + 0xd0]
add ebp, ebp
nop
lea ecx, [eax + eax]
add ecx, ecx
add ecx, ecx
imul ecx, dword [esp + 0xe4]
add ecx, ebp
mov dword [esp + 0x114], edi
mov edi, dword [esp + 0x138]
cmp ecx, dword [edi + 0x4c]
mov edi, dword [esp + 0x114]
jge 0x6003bbf0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x6003bba9
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [edi + 8]
mov dword [esp + 8], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
call fcn.6002a2d0
add esi, 0x80
mov eax, dword [esp + 0xe4]
mov edx, dword [edi + 0x34]
mov dword [esp + 4], edi
imul eax, dword [edx + 4]
add eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd8]
imul eax, dword [edx + 8]
mov edx, dword [esp + 0xfc]
add eax, edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x104]
mov dword [esp], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.600395e0
test eax, eax
jne 0x6003c1b0
mov edx, dword [edi + 0x34]
inc ebx
mov eax, dword [edx + 4]
add ebp, 8
cmp ebx, eax
jl 0x6003b0d0
mov ecx, dword [esp + 0x138]
mov dword [esp + 0xd0], edx
mov ecx, dword [ecx + 0x78]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0xdc]
inc edx
cmp edx, ecx
mov dword [esp + 0xe4], edx
jl 0x6003b021
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xcc]
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x138]
mov edx, dword [esp + 0xfc]
add ebx, 8
inc edx
cmp edx, eax
mov dword [esp + 0xfc], edx
jl 0x6003afc0
mov ebp, dword [esi + 0x37c0]
cmp ebp, dword [esi + 0x37d4]
jg 0x6003b5b0
cmp ebp, dword [esi + 0x37d8]
jg 0x6003b5b0
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xf0]
cmp eax, edx
jl 0x6003b5b0
mov edx, dword [esp + 0xec]
cmp eax, edx
jge 0x6003b5b0
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x6003b26e
mov eax, dword [eax]
test eax, eax
je 0x6003b3f0
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0xf8]
mov eax, dword [edx + 0x1c]
sub eax, ecx
test eax, eax
jle 0x6003bd50
mov edx, dword [esi + 0x37bc]
mov ecx, dword [esp + 0xd8]
imul edx, dword [esi + 0x3c]
mov ebx, dword [esp + 0xf0]
mov edi, dword [esi + 0x30]
sub ecx, ebx
mov ebx, dword [esp + 0x108]
imul edx, ecx
imul edi, dword [esi + 0x37b8]
mov ecx, dword [esi + 0x20]
imul edi, eax
mov eax, dword [esp + 0x130]
add edx, edi
mov ebp, dword [esp + 0xf8]
imul ebx, edx
mov edx, dword [esp + 0xf4]
add ecx, ebx
mov dword [eax + 0x2c], ecx
cmp ebp, edx
jge 0x6003bcc1
mov eax, dword [esp + 0xe8]
mov edx, eax
shl edx, 7
shl eax, 7
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], eax
mov eax, ebp
mov ebp, esi
mov esi, eax
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
imul eax, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x4de4]
add eax, esi
mov edi, dword [ebp + 0x4834]
imul edx, eax
mov eax, dword [esp + 0xe0]
add ecx, edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edi
call dword [0x60053d5c]
mov dword [esp + 0xd4], edi
xor eax, eax
mov edx, dword [ebp + 0x37c0]
mov dword [esp + 0xe4], eax
test edx, edx
jle 0x6003bc4b
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], edi
mov ebx, dword [esp + 0xd4]
mov eax, dword [esp + 0xe4]
mov ecx, dword [ebp + 0x37cc]
shl eax, 4
xor esi, esi
mov dword [esp + 0xfc], eax
add eax, ecx
mov edi, dword [eax + 4]
imul edi, dword [eax + 8]
test edi, edi
jg 0x6003b3bf
jmp 0x6003bc26
mov eax, dword [ebp + 0x37cc]
mov edx, dword [esp + 0xfc]
add eax, edx
mov eax, dword [eax + 0xc]
mov dword [esp], ebx
imul eax, eax, 0xb4
mov eax, dword [eax + ebp + 0x9c]
mov dword [esp + 4], eax
call dword [0x60053c68]
inc esi
add ebx, 0x80
cmp esi, edi
jl 0x6003b3b0
jmp 0x6003bc20
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
mov dword [esp + 0xc8], eax
cmp eax, edx
jge 0x6003b5b0
mov eax, dword [esp + 0xe8]
mov edx, dword [esi + 0x78]
shl eax, 7
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc0]
imul eax, edx
add eax, ebx
imul ecx, eax
xor edi, edi
add ecx, dword [esi + 0x4de4]
test ebp, ebp
mov dword [esp + 0xd4], ecx
jle 0x6003bdb4
mov ecx, dword [esi + 0x37cc]
mov dword [esp + 0xc8], ebx
mov ebx, edi
shl ebx, 4
xor esi, esi
mov eax, dword [ebx + ecx + 8]
test eax, eax
jle 0x6003bd9d
mov dword [esp + 0xfc], ebx
mov dword [esp + 0xcc], eax
mov ebp, dword [ebx + ecx + 4]
xor ebx, ebx
test ebp, ebp
jle 0x6003bd80
mov eax, dword [esp + 0xc8]
lea ecx, [edi + edi]
shl eax, 4
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], esi
jmp 0x6003b4d2
mov eax, dword [esp + 0xfc]
mov eax, dword [eax + ecx + 8]
mov dword [esp + 0xcc], eax
mov esi, dword [esp + 0xd8]
shl edx, 7
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x138]
imul esi, edx
imul edx, ebp
imul esi, ebp
mov dword [esp + 0xd0], ebx
shl ebx, 4
imul esi, eax
mov ecx, dword [ecx + 0x4ddc]
mov eax, dword [esp + 0xdc]
add esi, dword [ecx + eax*2 + 4]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
imul ebp, eax
imul edx, ecx
add esi, ebp
mov edi, 0xfffffff8
add esi, edx
add esi, ebx
mov ebx, dword [esp + 0xd4]
mov esi, esi
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0x60053d5c]
mov eax, dword [esp + 0x138]
mov ebp, dword [esp + 0xfc]
mov edx, dword [eax + 0x78]
add ebx, 0x10
mov ecx, edx
shl ecx, 4
mov dword [esp + 0x114], ecx
mov ecx, dword [eax + 0x37cc]
mov ebp, dword [ebp + ecx + 4]
mov eax, dword [esp + 0x114]
imul eax, ebp
add esi, eax
inc edi
jne 0x6003b540
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0xd0]
inc ebx
cmp ebx, ebp
jl 0x6003b4c0
jmp 0x6003bd60
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x6003beed
mov eax, dword [esp + 0xd8]
mov ebp, dword [esi + 0x7c]
inc eax
cmp eax, ebp
mov dword [esp + 0xd8], eax
jl 0x6003af7f
jmp 0x6003bdd0
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0xc8], eax
cmp eax, edx
jge 0x6003bb85
mov ebp, esi
mov esi, edx
mov eax, dword [edi + 0x1c]
mov edx, dword [esp + 0xe4]
mov dword [esp + 0xdc], eax
cmp eax, edx
jge 0x6003bb66
mov eax, dword [esp + 0xe8]
shl eax, 7
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xfc]
imul eax, edx
mov edx, dword [edi + 0x34]
add eax, ebx
mov esi, dword [edx]
imul ecx, eax
add ecx, dword [ebp + 0x4de4]
mov eax, ecx
xor ecx, ecx
mov dword [esp + 0xe0], eax
test esi, esi
jle 0x6003b6a4
mov eax, dword [ebp + 0x37cc]
mov edx, ecx
shl edx, 4
mov ebp, eax
mov ebx, dword [esp + 0xe0]
lea esi, [esi]
inc ecx
mov eax, dword [edx + ebp + 4]
shl eax, 7
imul eax, dword [edx + ebp + 8]
add edx, 0x10
add ebx, eax
cmp ecx, esi
jl 0x6003b680
mov dword [esp + 0xe0], ebx
mov ebp, dword [esp + 0x138]
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x6003b760
xor esi, esi
mov eax, dword [edi]
test eax, eax
jle 0x6003b7c2
mov ebx, dword [esp + 0xe0]
mov ebp, esi
xor esi, esi
mov edx, dword [esp + ebp*4 + 0xa8]
test edx, edx
jle 0x6003b73c
mov dword [esp], ebx
mov dword [esp + 4], 0x80
call dword [0x60053d58]
mov eax, dword [edi + ebp*4 + 0x24]
mov edx, dword [esp + 0x130]
mov word [esp + 0xb8], ax
mov eax, dword [edi + 0x14]
mov dword [esp], edx
mov edx, dword [esp + ebp*4 + 0x88]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xb8]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
call fcn.60029f40
movsx eax, word [esp + 0xb8]
inc esi
add ebx, 0x80
cmp esi, dword [esp + ebp*4 + 0xa8]
mov dword [edi + ebp*4 + 0x24], eax
jl 0x6003b6d1
mov eax, dword [edi]
inc ebp
cmp ebp, eax
jl 0x6003b6c4
mov ebp, dword [esp + 0x138]
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003b7c2
xor esi, esi
mov eax, dword [edi]
test eax, eax
jle 0x6003b7c2
mov ebx, dword [esp + 0xe0]
xor ebp, ebp
mov edx, dword [esp + esi*4 + 0xa8]
test edx, edx
jle 0x6003b7ac
lea esi, [esi]
mov eax, dword [esp + 0x130]
mov edx, dword [edi + 0x14]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.6002a050
inc ebp
add ebx, 0x80
cmp ebp, dword [esp + esi*4 + 0xa8]
jl 0x6003b780
mov eax, dword [edi]
inc esi
cmp esi, eax
jl 0x6003b76f
mov ebp, dword [esp + 0x138]
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0xe4]
mov ecx, dword [ebp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 8], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
call fcn.600395e0
test eax, eax
jne 0x6003c1a0
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xf8]
cmp eax, edx
jl 0x6003bb30
mov edx, dword [esp + 0xf4]
cmp eax, edx
jge 0x6003bb20
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xf0]
cmp eax, edx
jl 0x6003bb10
mov edx, dword [esp + 0xec]
cmp eax, edx
jge 0x6003bb00
mov eax, dword [ebp + 0x37c0]
cmp eax, dword [ebp + 0x37d4]
jg 0x6003baf0
cmp eax, dword [ebp + 0x37d8]
jg 0x6003bae0
mov ecx, dword [esp + 0xc8]
mov ebx, dword [ebp + 0x78]
mov esi, dword [esp + 0xdc]
mov dword [esp + 0xe4], ebx
imul ecx, ebx
mov ebx, dword [esp + 0xfc]
add ecx, esi
mov edx, dword [ebp + 0x4ddc]
imul ebx, ecx
add ebx, dword [ebp + 0x4de4]
test edx, edx
mov dword [esp + 0xd0], ebx
je 0x6003ba20
mov edx, dword [edx]
test edx, edx
jne 0x6003ba20
xor esi, esi
test eax, eax
jle 0x6003bb3a
mov ecx, dword [ebp + 0x37cc]
mov edi, esi
mov ebx, edi
shl ebx, 4
xor esi, esi
mov edx, dword [ebx + ecx + 8]
test edx, edx
jle 0x6003bfa0
mov ebp, dword [ebx + ecx + 4]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0xe4]
xor ebx, ebx
test ebp, ebp
jle 0x6003bf7c
mov eax, dword [esp + 0xdc]
lea ecx, [edi + edi]
shl eax, 4
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xe0], edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0xbc], esi
jmp 0x6003b942
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + ecx + 8]
mov dword [esp + 0xd8], eax
mov esi, dword [esp + 0xc8]
shl edx, 7
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x138]
imul esi, edx
imul edx, ebp
imul esi, ebp
mov dword [esp + 0xd4], ebx
shl ebx, 4
imul esi, eax
mov ecx, dword [ecx + 0x4ddc]
mov eax, dword [esp + 0xcc]
add esi, dword [ecx + eax*2 + 4]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xbc]
imul ebp, eax
imul edx, ecx
add esi, ebp
mov edi, 0xfffffff8
add esi, edx
add esi, ebx
mov ebx, dword [esp + 0xd0]
mov esi, esi
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0x60053d5c]
mov eax, dword [esp + 0x138]
mov ebp, dword [esp + 0xc0]
mov edx, dword [eax + 0x78]
add ebx, 0x10
mov ecx, edx
shl ecx, 4
mov dword [esp + 0x114], ecx
mov ecx, dword [eax + 0x37cc]
mov ebp, dword [ebp + ecx + 4]
mov eax, dword [esp + 0x114]
imul eax, ebp
add esi, eax
inc edi
jne 0x6003b9b0
mov dword [esp + 0xd0], ebx
mov ebx, dword [esp + 0xd4]
inc ebx
cmp ebx, ebp
jl 0x6003b930
jmp 0x6003bf5c
mov eax, dword [esp + 0xe8]
mov edx, dword [ebp + 0x4834]
shl eax, 7
mov ecx, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp + 0xe4], edx
mov dword [esp], edx
call dword [0x60053d5c]
xor eax, eax
mov edx, dword [ebp + 0x37c0]
mov dword [esp + 0xc0], eax
test edx, edx
mov esi, dword [ebp + 0x4834]
jle 0x6003bfe4
mov ebx, esi
mov eax, dword [esp + 0xc0]
mov ecx, dword [ebp + 0x37cc]
shl eax, 4
xor esi, esi
mov dword [esp + 0xbc], eax
add eax, ecx
mov edi, dword [eax + 4]
imul edi, dword [eax + 8]
test edi, edi
jg 0x6003baaf
jmp 0x6003bfc6
mov eax, dword [ebp + 0x37cc]
mov edx, dword [esp + 0xbc]
add eax, edx
mov eax, dword [eax + 0xc]
mov dword [esp], ebx
imul eax, eax, 0xb4
mov eax, dword [eax + ebp + 0x9c]
mov dword [esp + 4], eax
call dword [0x60053c68]
inc esi
add ebx, 0x80
cmp esi, edi
jl 0x6003baa0
jmp 0x6003bfc0
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003bb3a
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003bb3a
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003bb3a
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003bb3a
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003bb3a
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x6003c060
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe4]
inc eax
cmp eax, edx
mov dword [esp + 0xdc], eax
jl 0x6003b627
mov esi, dword [ebp + 0x7c]
mov eax, dword [esp + 0xc8]
inc eax
mov dword [esp + 0xc8], eax
cmp eax, esi
jl 0x6003b5fd
mov esi, ebp
mov ebp, dword [esi + 0x37c0]
cmp ebp, dword [esi + 0x37d4]
jg 0x6003bb9c
cmp ebp, dword [esi + 0x37d8]
jg 0x6003bb9c
mov eax, 2
jmp 0x6003bb9e
xor eax, eax
add esp, 0x11c
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [edi + 8]
mov dword [esp + 8], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 4], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
call fcn.6002a0d0
add esi, 0x80
jmp 0x6003b140
mov ecx, dword [esp + 0x138]
mov dword [esp + 0xd0], edx
mov ecx, dword [ecx + 0x78]
mov dword [esp + 0xdc], ecx
jmp 0x6003b1c7
mov ebp, dword [esi + 0x37c0]
jmp 0x6003b21d
mov edx, dword [ebp + 0x37c0]
mov eax, dword [esp + 0xe4]
inc eax
mov dword [esp + 0xe4], eax
cmp eax, edx
jl 0x6003b377
mov edi, dword [esp + 0xcc]
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 8], edx
mov edx, dword [ebp + 0x78]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x1c], edx
mov dl, byte [esp + 0x100]
mov dword [esp + 0x20], ecx
mov dword [esp], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], edi
mov byte [esp + 0x28], dl
call fcn.600380a0
inc esi
mov eax, dword [esp + 0xf4]
cmp esi, eax
jl 0x6003b307
mov eax, ebp
mov ebp, esi
mov esi, eax
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x6003b5b0
mov eax, dword [esp + 0xf4]
cmp ebp, eax
jne 0x6003b5b0
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 8], edx
mov edx, dword [esi + 0x4834]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x100]
mov dword [esp + 0x20], eax
mov dword [esp], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0xc], ebp
mov byte [esp + 0x28], cl
call fcn.600380a0
jmp 0x6003b5b0
xor eax, eax
jmp 0x6003b289
mov eax, dword [esp + 0xfc]
mov esi, dword [esp + 0xe4]
mov eax, dword [eax + ecx + 8]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0xcc], eax
inc esi
mov eax, dword [esp + 0xcc]
cmp esi, eax
jl 0x6003b487
mov eax, dword [esp + 0x138]
mov ebp, dword [eax + 0x37c0]
inc edi
cmp edi, ebp
jl 0x6003b462
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x138]
inc ebx
mov eax, dword [esp + 0xf4]
cmp ebx, eax
jl 0x6003b428
jmp 0x6003b5b0
mov dword [esp + 0xd4], ebp
mov edi, dword [esp + 0x134]
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x6003bdf2
mov eax, dword [eax]
test eax, eax
je 0x6003bebb
mov eax, dword [esp + 0x110]
test eax, eax
je 0x6003beb0
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
cmp eax, edx
jg 0x6003bec6
mov bh, byte [esp + 0x100]
mov ebp, dword [esp + 0xd4]
jmp 0x6003be33
mov ebp, dword [esi + 0x7c]
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xc], edx
mov edx, dword [esi + 0x4834]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x13c]
mov dword [esp], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 8], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebp
mov byte [esp + 0x28], bh
call fcn.600380a0
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0xf4]
inc eax
cmp eax, edx
mov dword [esp + 0xf8], eax
jle 0x6003be30
jmp 0x6003bec6
mov ebp, dword [esi + 0x37c0]
jmp 0x6003bb85
mov ebp, dword [esi + 0x37c0]
jmp 0x6003bb85
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x6003bed8
mov ebp, dword [esi + 0x37c0]
jmp 0x6003bb85
xor edx, edx
add esp, 0x11c
xor eax, eax
mov dword [edi + 0x20], edx
mov dword [edi + 0x1c], edx
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0x134]
inc eax
mov edx, dword [esp + 0x110]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], 0
add edx, dword [esi + 0x7c]
cmp eax, edx
jne 0x6003bf28
mov dword [edi + 0x20], 0
add esp, 0x11c
xor eax, eax
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esi + 0x78]
mov ecx, dword [esp + 0xd8]
dec edx
mov ebx, dword [esp + 0x110]
sub ecx, ebx
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x78]
mov dword [esi + 0x10], ecx
dec edx
mov dword [esi + 8], ecx
mov eax, 1
mov dword [esi + 4], edx
add esp, 0x11c
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xbc]
mov eax, dword [eax + ecx + 8]
mov edi, dword [esp + 0xe0]
mov dword [esp + 0xd8], eax
inc esi
mov eax, dword [esp + 0xd8]
cmp esi, eax
jl 0x6003b8f7
mov ebx, dword [esp + 0x138]
mov dword [esp + 0xe4], edx
mov eax, dword [ebx + 0x37c0]
inc edi
cmp edi, eax
jl 0x6003b8cb
mov edi, dword [esp + 0x134]
mov ebp, dword [esp + 0x138]
jmp 0x6003bb3a
mov edx, dword [ebp + 0x37c0]
mov eax, dword [esp + 0xc0]
inc eax
mov dword [esp + 0xc0], eax
cmp eax, edx
jl 0x6003ba69
mov edi, dword [esp + 0x134]
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xc8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x7c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x100]
mov dword [esp + 0x20], eax
mov dword [esp], ebp
mov dword [esp + 0x24], edx
mov dword [esp + 8], edi
mov byte [esp + 0x28], cl
call fcn.600380a0
mov eax, dword [ebp + 0x78]
mov dword [esp + 0xe4], eax
jmp 0x6003bb3a
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe4]
inc eax
mov esi, ebp
mov ecx, edx
cdq
idiv ecx
test edx, edx
mov dword [edi + 0x1c], edx
je 0x6003c089
mov eax, dword [esp + 0xc8]
mov dword [edi + 0x20], eax
jmp 0x6003c0ad
mov eax, dword [esp + 0xc8]
inc eax
mov dword [edi + 0x20], eax
cmp eax, dword [esi + 0x7c]
jne 0x6003c0ad
mov dword [edi + 0x20], 0
add esp, 0x11c
xor eax, eax
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x10c]
sub edx, ecx
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0x110]
mov dword [esi + 0xc], edx
sub ecx, ebx
mov dword [esi + 4], edx
add esp, 0x11c
mov dword [esi + 0x10], ecx
mov dword [esi + 8], ecx
mov eax, 1
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x104]
cmp eax, 2
jne 0x6003adf6
mov eax, 1
mov dword [esp + 0x110], eax
jmp 0x6003adff
mov edx, dword [esp + 0xe0]
cmp edx, 2
jne 0x6003ade4
mov edx, 1
mov dword [esp + 0x10c], edx
jmp 0x6003aded
mov byte [esp + 0x100], bh
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x134]
jmp 0x6003ad62
mov eax, dword [esi + 0x37bc]
mov dword [esp + 0x104], eax
cmp eax, 1
jne 0x6003acec
xor al, al
mov ebp, dword [esi + 0x37c0]
mov byte [esp + 0x100], al
jmp 0x6003ad62
mov dword [esp + 0xa8], 1
jmp 0x6003acc9
mov dword [edi + ebx*4 + 0x24], 0
mov eax, dword [edi]
lea edx, [ebx + ebx]
mov dword [esp + 0xbc], eax
add edx, edx
jmp 0x6003ac6a
add esp, 0x11c
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x11c
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret