Function at 0x6003ccd0
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, 0x174
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
mov edx, 0
mov dword [esp + 0x14c], edx
jle 0x6003e020
mov esi, dword [esi + 0x74]
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], esi
mov esi, edx
mov edx, ecx
shl edx, 4
lea ebp, [edx + ecx*8]
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x37e0]
test eax, eax
je 0x6003dfd4
lea edx, [ecx + ecx]
add edx, edx
mov eax, dword [edi + 0x34]
inc ecx
mov ebx, dword [ebp + eax + 4]
imul ebx, dword [ebp + eax + 8]
add esi, ebx
mov dword [esp + 0x16c], edi
lea edi, [esp + 0xe8]
mov dword [edx + edi], ebx
mov ebx, dword [ebp + eax + 0x14]
lea edi, [esp + 0xd8]
mov ebx, dword [ebx + 8]
mov dword [edx + edi], ebx
mov ebx, dword [ebp + eax + 0x10]
lea edi, [esp + 0xb8]
mov dword [edx + edi], ebx
mov eax, dword [ebp + eax + 0xc]
lea ebx, [esp + 0xc8]
add ebp, 0x18
mov dword [edx + ebx], eax
mov eax, dword [esp + 0x118]
cmp ecx, eax
mov edi, dword [esp + 0x16c]
jl 0x6003cd20
mov dword [esp + 0x14c], esi
mov esi, dword [esp + 0x190]
cmp eax, 1
je 0x6003df2d
mov ecx, dword [esi + 0x37bc]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x150], ecx
add ecx, ecx
mov edx, dword [esi + 0x37b8]
add ecx, ecx
mov dword [esp + 0x154], edx
add ecx, ecx
add edx, edx
mov ebx, dword [esi + 0x78]
imul eax, ecx
mov dword [esp + 0x120], ebx
add edx, edx
mov dword [esp + 0x160], eax
add edx, edx
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x168], edx
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x154]
cmp eax, 1
je 0x6003df0f
mov dl, 1
xor ebp, ebp
mov eax, dword [esi + 0x37c0]
mov byte [esp + 0x15c], dl
test eax, eax
jle 0x6003ce85
mov edi, eax
mov edx, ebp
shl edx, 4
mov bh, byte [esp + 0x15c]
mov dword [esp + 0x144], ecx
mov eax, edx
lea esi, [esi]
mov dl, bh
test dl, dl
je 0x6003def5
mov ecx, dword [esi + 0x37cc]
mov edx, dword [eax + ecx + 4]
cmp edx, dword [eax + ecx + 8]
je 0x6003ce5c
xor bh, bh
cmp edx, 1
je 0x6003ce68
cmp edx, 2
je 0x6003ce68
xor bh, bh
inc ebp
add eax, 0x10
cmp ebp, edi
jl 0x6003ce40
mov ecx, dword [esp + 0x144]
mov byte [esp + 0x15c], bh
mov edi, dword [esp + 0x18c]
mov eax, dword [esp + 0x168]
mov edx, dword [esp + 0x194]
mov ebx, edx
cdq
idiv ebx
mov dword [esp + 0x164], eax
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x164]
mov ebx, edx
cdq
idiv ebx
mov ebp, eax
mov eax, dword [esi + 0xc]
mov edx, ebx
lea eax, [eax + edx - 1]
mov ebx, edx
cdq
idiv ebx
mov dword [esp + 0x158], eax
mov eax, ecx
mov edx, dword [esp + 0x194]
mov ebx, edx
cdq
idiv ebx
mov ecx, eax
mov eax, dword [esi + 8]
cdq
idiv ecx
mov dword [esp + 0x144], eax
mov eax, dword [esi + 0x10]
lea eax, [eax + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0x168], eax
mov eax, dword [esi + 0x4de8]
cmp eax, 1
je 0x6003ded4
xor edx, edx
mov dword [esp + 0x154], edx
cmp eax, 1
je 0x6003deb3
xor eax, eax
mov dword [esp + 0x150], eax
test ebp, ebp
je 0x6003cf25
mov eax, edx
sub ebp, eax
mov eax, dword [esp + 0x144]
test eax, eax
je 0x6003cf40
mov edx, dword [esp + 0x150]
sub eax, edx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x120]
cmp eax, edx
jge 0x6003cf69
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0x158]
add eax, edx
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x168]
mov edx, dword [esp + 0x11c]
cmp eax, edx
jge 0x6003cf8b
mov edx, dword [esp + 0x150]
add eax, edx
mov dword [esp + 0x168], eax
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x144]
mov dword [esp + 0x128], eax
cmp eax, edx
jg 0x6003cfa9
mov eax, edx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x114]
cmp eax, 1
je 0x6003dd40
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x6003d1b0
mov eax, dword [esp + 0x128]
mov edx, dword [esi + 0x4830]
mov ecx, eax
shl ecx, 5
lea ecx, [ecx + eax*8]
cmp dword [ecx + edx], 0xffffffff
jne 0x6003d9fc
mov dword [esp + 0x114], eax
mov ecx, eax
shl ecx, 5
lea ecx, [ecx + eax*8]
cmp dword [ecx + edx], 0xffffffff
jne 0x6003d013
mov ebx, eax
mov ecx, ebx
shl ecx, 5
lea eax, [ecx + ebx*8]
dec ebx
add eax, 0xffffffd8
cmp dword [eax + edx], 0xffffffff
je 0x6003d002
mov dword [esp + 0x114], ebx
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x188]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0xc], esi
mov dword [esp + 4], edx
call fcn.600393f0
test eax, eax
jne 0x6003d1a5
mov eax, dword [esi + 0x4834]
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x118], eax
cmp edx, ecx
jge 0x6003d1b0
mov esi, dword [esp + 0x188]
mov dword [esp + 0x148], ebp
xor ebp, ebp
mov eax, dword [esp + 0x120]
test eax, eax
jle 0x6003d155
xor ebx, ebx
mov eax, dword [edi]
test eax, eax
jle 0x6003d10c
mov dword [esp + 0x124], ebp
xor ebp, ebp
mov edx, dword [esp + ebx*4 + 0xe8]
test edx, edx
jle 0x6003d100
mov eax, dword [edi + ebx*4 + 0x24]
mov edx, dword [esp + ebx*4 + 0xc8]
mov word [esp + 0xfc], ax
mov ecx, dword [esp + ebx*4 + 0xb8]
mov dword [esp + 4], edx
lea edx, [esp + 0xfc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 0x10], ecx
call dword [0x60053c80]
test eax, eax
movsx eax, word [esp + 0xfc]
mov dword [edi + ebx*4 + 0x24], eax
jl 0x6003e0af
inc ebp
cmp ebp, dword [esp + ebx*4 + 0xe8]
jl 0x6003d0a3
mov eax, dword [edi]
inc ebx
cmp ebx, eax
jl 0x6003d092
mov ebp, dword [esp + 0x124]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x114]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
call fcn.600395e0
test eax, eax
jne 0x6003e09f
inc ebp
mov eax, dword [esp + 0x120]
cmp ebp, eax
jl 0x6003d07f
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x190]
inc eax
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0x114], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
call fcn.60039510
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x128]
cmp eax, edx
jl 0x6003d06e
mov ebp, dword [esp + 0x148]
mov esi, dword [esp + 0x190]
jmp 0x6003d1b0
add esp, 0x174
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x168]
cmp eax, edx
jge 0x6003d926
mov dword [esp + 0x148], ebp
mov eax, dword [esp + 0x190]
mov ebp, dword [edi + 0x1c]
mov eax, dword [eax + 0x4834]
mov edx, dword [esp + 0x148]
mov dword [esp + 0x140], eax
cmp ebp, edx
jge 0x6003d2d5
mov esi, dword [esp + 0x188]
xor ebx, ebx
mov eax, dword [edi]
test eax, eax
jle 0x6003d289
mov dword [esp + 0x12c], ebp
xor ebp, ebp
mov edx, dword [esp + ebx*4 + 0xe8]
test edx, edx
jle 0x6003d27d
mov eax, dword [edi + ebx*4 + 0x24]
mov esi, esi
mov edx, dword [esp + ebx*4 + 0xc8]
mov word [esp + 0x100], ax
mov ecx, dword [esp + ebx*4 + 0xb8]
mov dword [esp + 4], edx
lea edx, [esp + 0x100]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 0x10], ecx
call dword [0x60053c80]
test eax, eax
movsx eax, word [esp + 0x100]
mov dword [edi + ebx*4 + 0x24], eax
jl 0x6003e129
inc ebp
cmp ebp, dword [esp + ebx*4 + 0xe8]
jl 0x6003d220
mov eax, dword [edi]
inc ebx
cmp ebx, eax
jl 0x6003d20d
mov ebp, dword [esp + 0x12c]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x128]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
call fcn.600395e0
test eax, eax
jne 0x6003e119
inc ebp
mov eax, dword [esp + 0x148]
cmp ebp, eax
jl 0x6003d1fa
mov ebp, dword [edi + 0x1c]
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x4ddc]
test eax, eax
je 0x6003dcb0
mov eax, dword [esp + 0x148]
cmp ebp, eax
jg 0x6003d2f7
mov ebp, eax
mov eax, dword [esp + 0x158]
cmp ebp, eax
jge 0x6003d760
mov esi, dword [esp + 0x190]
mov dword [esp + 0x12c], ebp
mov eax, dword [esi + 0x4834]
xor ebp, ebp
mov ecx, dword [edi]
mov dword [esp + 0x134], eax
test ecx, ecx
jle 0x6003d60a
mov edx, dword [esp + 0x190]
mov eax, dword [edx + 0x4ddc]
test eax, eax
je 0x6003d520
mov eax, dword [eax]
test eax, eax
jne 0x6003d520
mov edx, dword [edi + 0x34]
xor esi, esi
mov ebx, ebp
shl ebx, 4
lea ebx, [ebx + ebp*8]
mov dword [esp + 0x118], ebx
mov eax, dword [ebx + edx + 8]
test eax, eax
jle 0x6003d5fa
mov dword [esp + 0x130], ebp
mov ecx, dword [ebx + edx + 4]
xor ebp, ebp
test ecx, ecx
jle 0x6003d4fd
mov ebx, dword [esp + 0x130]
mov dword [esp + 0x13c], ebp
add ebx, ebx
shl ebp, 4
mov dword [esp + 0x114], esi
mov dword [esp + 0x138], ebp
mov eax, dword [esp + 0x130]
mov edx, dword [edi + ebx*2 + 0x24]
mov ecx, dword [esp + eax*4 + 0xc8]
mov eax, dword [esp + eax*4 + 0xb8]
mov dword [esp + 4], ecx
mov word [esp + 0x104], dx
mov edx, dword [esp + 0x188]
mov dword [esp + 8], eax
lea eax, [esp + 0x104]
mov ecx, dword [esp + 0x134]
mov dword [esp], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
call dword [0x60053c84]
movsx edx, word [esp + 0x104]
test eax, eax
mov dword [edi + ebx*2 + 0x24], edx
jl 0x6003e04f
mov ebp, dword [esp + 0x128]
mov eax, dword [esp + 0x118]
mov edx, dword [edi + 0x34]
mov ecx, dword [esp + 0x114]
imul ebp, dword [eax + edx + 8]
mov dword [esp + 0x140], ebx
add ebp, ecx
mov ecx, dword [esp + 0x120]
mov esi, ecx
shl esi, 7
shl ecx, 4
mov dword [esp + 0x124], ecx
mov eax, dword [eax + edx + 4]
mov edx, dword [esp + 0x12c]
imul esi, eax
shl edx, 4
imul ebp, esi
imul edx, eax
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x138]
mov eax, dword [eax + 0x4ddc]
add edx, dword [eax + ebx*2 + 4]
mov esi, 0xfffffff8
mov ebx, dword [esp + 0x134]
add ebp, edx
add ebp, ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0x60053d5c]
mov eax, dword [esp + 0x118]
mov edx, dword [edi + 0x34]
add ebx, 0x10
mov ecx, dword [eax + edx + 4]
mov eax, dword [esp + 0x124]
imul eax, ecx
add ebp, eax
inc esi
jne 0x6003d480
mov eax, dword [esp + 0x138]
mov ebp, dword [esp + 0x13c]
add eax, 0x10
inc ebp
mov dword [esp + 0x138], eax
cmp ebp, ecx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x13c], ebp
mov ebx, dword [esp + 0x140]
jl 0x6003d3a2
mov ebx, dword [esp + 0x118]
mov esi, dword [esp + 0x114]
mov eax, dword [ebx + edx + 8]
inc esi
cmp esi, eax
jl 0x6003d377
mov ebp, dword [esp + 0x130]
mov ecx, dword [edi]
jmp 0x6003d5fa
xor eax, eax
lea edx, [ebp + ebp]
mov ebx, dword [esp + ebp*4 + 0xe8]
mov dword [esp + 0x13c], eax
test ebx, ebx
mov dword [esp + 0x140], edx
jle 0x6003d5fa
mov esi, dword [esp + 0x188]
mov ebx, dword [esp + 0x134]
mov eax, dword [esp + 0x140]
mov edx, dword [esp + ebp*4 + 0xc8]
mov dword [esp], esi
mov dword [esp + 4], edx
mov eax, dword [edi + eax*2 + 0x24]
mov edx, dword [esp + ebp*4 + 0xb8]
mov word [esp + 0x108], ax
lea eax, [esp + 0x108]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
call dword [0x60053c84]
movsx edx, word [esp + 0x108]
mov dword [esp], ebx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x138], eax
mov eax, dword [esp + ebp*4 + 0xd8]
mov dword [edi + ecx*2 + 0x24], edx
mov dword [esp + 4], eax
call dword [0x60053c68]
mov eax, dword [esp + 0x138]
test eax, eax
jl 0x6003e06f
mov eax, dword [esp + 0x13c]
add ebx, 0x80
inc eax
cmp eax, dword [esp + ebp*4 + 0xe8]
mov dword [esp + 0x13c], eax
jl 0x6003d551
mov dword [esp + 0x134], ebx
mov ecx, dword [edi]
inc ebp
cmp ebp, ecx
jl 0x6003d32d
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0x188]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov dword [esp], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x128]
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 0x6003e05f
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x6003dc30
mov eax, dword [eax]
test eax, eax
jne 0x6003dc30
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x6003d740
mov eax, dword [esi + 0x74]
cmp eax, 1
je 0x6003d730
mov eax, dword [esp + 0x154]
test eax, eax
je 0x6003d6b0
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x148]
cmp eax, edx
jne 0x6003d6b0
mov ecx, eax
inc ecx
jmp 0x6003d748
mov eax, dword [esp + 0x150]
test eax, eax
je 0x6003d6e0
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x144]
cmp eax, edx
jne 0x6003d6e0
mov ecx, dword [esp + 0x12c]
inc ecx
jmp 0x6003d748
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x154]
mov ebp, dword [esp + 0x158]
lea eax, [ebx + ebp - 1]
add ebx, ebp
mov ebp, ecx
inc ecx
mov edx, eax
mov eax, ecx
mov dword [esp + 0x16c], edx
cdq
idiv ebx
mov dword [edi + 0x1c], edx
mov ebx, dword [esp + 0x16c]
cmp ebp, ebx
jne 0x6003e0bf
xor eax, eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], eax
jmp 0x6003d748
mov ecx, dword [esp + 0x12c]
inc ecx
jmp 0x6003d748
mov ecx, dword [esp + 0x12c]
inc ecx
mov dword [esp + 0x12c], ecx
mov eax, dword [esp + 0x158]
cmp ecx, eax
jl 0x6003d314
mov ebp, ecx
mov eax, dword [esp + 0x154]
test eax, eax
jne 0x6003db90
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x11c]
inc eax
cmp edx, eax
mov dword [esp + 0x140], eax
jle 0x6003d8fb
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x74]
cmp eax, 1
je 0x6003da66
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x190]
mov edx, dword [edx + 0x4830]
mov ecx, eax
shl ecx, 5
lea ecx, [ecx + eax*8]
mov ecx, dword [ecx + edx + 0x28]
cmp ecx, 0xffffffff
jne 0x6003da2a
mov eax, dword [esp + 0x190]
mov ebp, dword [esp + 0x158]
mov eax, dword [eax + 0x4834]
mov edx, dword [esp + 0x120]
mov dword [esp + 0x124], eax
cmp ebp, edx
jge 0x6003d8d2
mov esi, dword [esp + 0x188]
xor ebx, ebx
mov eax, dword [edi]
test eax, eax
jle 0x6003d889
mov dword [esp + 0x118], ebp
xor ebp, ebp
mov edx, dword [esp + ebx*4 + 0xe8]
test edx, edx
jle 0x6003d87d
mov eax, dword [edi + ebx*4 + 0x24]
mov esi, esi
mov edx, dword [esp + ebx*4 + 0xc8]
mov word [esp + 0x110], ax
mov ecx, dword [esp + ebx*4 + 0xb8]
mov dword [esp + 4], edx
lea edx, [esp + 0x110]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 0x10], ecx
call dword [0x60053c80]
test eax, eax
movsx eax, word [esp + 0x110]
mov dword [edi + ebx*4 + 0x24], eax
jl 0x6003e03f
inc ebp
cmp ebp, dword [esp + ebx*4 + 0xe8]
jl 0x6003d820
mov eax, dword [edi]
inc ebx
cmp ebx, eax
jl 0x6003d80d
mov ebp, dword [esp + 0x118]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x128]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
call fcn.600395e0
test eax, eax
jne 0x6003e0f9
inc ebp
mov eax, dword [esp + 0x120]
cmp ebp, eax
jl 0x6003d7fa
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x188]
mov ecx, dword [esp + 0x190]
mov dword [esp], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], edx
call fcn.60039510
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x168]
mov dword [esp + 0x128], eax
cmp eax, edx
jl 0x6003d1cd
mov ebp, dword [esp + 0x148]
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0x150]
test eax, eax
je 0x6003d9cc
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0x158]
add eax, edx
mov dword [esp + 0x168], eax
cmp ebp, eax
jge 0x6003d9cc
mov bh, byte [esp + 0x15c]
nop
lea esi, [esi]
mov eax, dword [esp + 0x188]
mov edx, dword [esp + 0x128]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x4834]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x194]
mov dword [esp], esi
mov dword [esp + 0x20], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x24], eax
mov byte [esp + 0x28], bh
call fcn.600380a0
inc ebp
mov eax, dword [esp + 0x168]
cmp ebp, eax
jl 0x6003d960
call dword [0x60053c64]
mov eax, dword [esi + 0x37d8]
cmp eax, dword [esi + 0x37c0]
jge 0x6003d9e8
mov esi, dword [esi + 0x74]
cmp esi, 1
je 0x6003d9ef
mov eax, 2
jmp 0x6003d9f1
xor eax, eax
add esp, 0x174
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp + 0x188]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0xc], esi
mov dword [esp + 4], edx
call fcn.600393f0
test eax, eax
je 0x6003d1b0
add esp, 0x174
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x188]
mov ecx, dword [esp + 0x190]
mov dword [esp], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], edx
call fcn.600393f0
test eax, eax
je 0x6003d8fb
add esp, 0x174
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x188]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x6003d7a0
mov eax, dword [esp + 0x190]
mov ebp, dword [esp + 0x158]
mov eax, dword [eax + 0x4834]
mov edx, dword [esp + 0x120]
mov dword [esp + 0x124], eax
cmp ebp, edx
jge 0x6003d8fb
mov esi, dword [esp + 0x188]
xor ebx, ebx
mov eax, dword [edi]
test eax, eax
jle 0x6003db39
mov dword [esp + 0x118], ebp
xor ebp, ebp
mov edx, dword [esp + ebx*4 + 0xe8]
test edx, edx
jle 0x6003db2d
mov eax, dword [edi + ebx*4 + 0x24]
lea esi, [esi]
mov edx, dword [esp + ebx*4 + 0xc8]
mov word [esp + 0x10c], ax
mov ecx, dword [esp + ebx*4 + 0xb8]
mov dword [esp + 4], edx
lea edx, [esp + 0x10c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 0x10], ecx
call dword [0x60053c80]
test eax, eax
movsx eax, word [esp + 0x10c]
mov dword [edi + ebx*4 + 0x24], eax
jl 0x6003e109
inc ebp
cmp ebp, dword [esp + ebx*4 + 0xe8]
jl 0x6003dad0
mov eax, dword [edi]
inc ebx
cmp ebx, eax
jl 0x6003dabc
mov ebp, dword [esp + 0x118]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x128]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
call fcn.600395e0
test eax, eax
jne 0x6003e02f
inc ebp
mov eax, dword [esp + 0x120]
cmp ebp, eax
jl 0x6003daa9
jmp 0x6003d8fb
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x188]
mov ecx, dword [eax + 0x4834]
mov dword [esp], eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x14c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x194]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edx
mov dl, byte [esp + 0x15c]
mov dword [esp + 8], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], ebp
mov byte [esp + 0x28], dl
call fcn.600380a0
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x6003d76f
mov eax, dword [esp + 0x190]
mov eax, dword [eax + 0x74]
cmp eax, 1
je 0x6003d76f
xor eax, eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], eax
jmp 0x6003d76f
mov eax, dword [esp + 0x188]
mov edx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x128]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0xc], edx
mov edx, dword [esi + 0x4834]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x194]
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x15c]
mov dword [esp + 0x20], eax
mov dword [esp], esi
mov dword [esp + 0x24], edx
mov dword [esp + 8], edi
mov byte [esp + 0x28], cl
call fcn.600380a0
jmp 0x6003d669
mov eax, dword [esp + 0x148]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x6003dd30
mov eax, dword [esp + 0x160]
mov edx, dword [esp + 0x194]
mov ebx, dword [esp + 0x128]
mov esi, dword [esp + 0x144]
sub ebx, esi
mov esi, dword [esp + 0x190]
mov ebp, dword [esi + 0x30]
mov dword [esp + 0x16c], edx
cdq
mov dword [esp + 0x170], edi
mov edi, dword [esp + 0x16c]
idiv edi
mov edx, dword [esp + 0x164]
imul eax, ebx
imul ebp, edx
add eax, dword [esi + 0x20]
mov edx, dword [esp + 0x188]
imul ebp, ecx
add eax, ebp
mov dword [edx + 0x2c], eax
mov edi, dword [esp + 0x170]
mov ebp, dword [edi + 0x1c]
jmp 0x6003d2ea
xor ecx, ecx
jmp 0x6003dcbf
mov eax, dword [esp + 0x188]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x6003cfb9
mov eax, dword [esi + 0x4834]
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x124], eax
test edx, edx
jne 0x6003d1b0
xor eax, eax
mov edx, dword [esp + 0x128]
mov dword [esp + 0x118], eax
test edx, edx
jle 0x6003d1b0
mov esi, dword [esp + 0x188]
mov dword [esp + 0x148], ebp
xor ebp, ebp
mov eax, dword [esp + 0x120]
test eax, eax
jle 0x6003de82
xor ebx, ebx
mov eax, dword [edi]
test eax, eax
jle 0x6003de39
mov dword [esp + 0x114], ebp
xor ebp, ebp
mov edx, dword [esp + ebx*4 + 0xe8]
test edx, edx
jle 0x6003de2d
mov eax, dword [edi + ebx*4 + 0x24]
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esp + ebx*4 + 0xc8]
mov word [esp + 0xf8], ax
mov ecx, dword [esp + ebx*4 + 0xb8]
mov dword [esp + 4], edx
lea edx, [esp + 0xf8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 0x10], ecx
call dword [0x60053c80]
test eax, eax
movsx eax, word [esp + 0xf8]
mov dword [edi + ebx*4 + 0x24], eax
jl 0x6003e07f
inc ebp
cmp ebp, dword [esp + ebx*4 + 0xe8]
jl 0x6003ddd0
mov eax, dword [edi]
inc ebx
cmp ebx, eax
jl 0x6003ddb4
mov ebp, dword [esp + 0x114]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
call fcn.600395e0
test eax, eax
jne 0x6003e08f
inc ebp
mov eax, dword [esp + 0x120]
cmp ebp, eax
jl 0x6003dda1
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x128]
inc eax
cmp eax, edx
mov dword [esp + 0x118], eax
jl 0x6003dd90
mov ebp, dword [esp + 0x148]
mov esi, dword [esp + 0x190]
jmp 0x6003d1b0
mov eax, dword [esp + 0x150]
cmp eax, 2
jne 0x6003cf14
mov eax, 1
mov dword [esp + 0x150], eax
jmp 0x6003cf1d
mov edx, dword [esp + 0x154]
cmp edx, 2
jne 0x6003cf02
mov edx, 1
mov dword [esp + 0x154], edx
jmp 0x6003cf0b
mov ecx, dword [esp + 0x144]
mov byte [esp + 0x15c], bh
mov edi, dword [esp + 0x18c]
jmp 0x6003ce85
mov eax, dword [esp + 0x150]
cmp eax, 1
jne 0x6003ce11
xor al, al
mov byte [esp + 0x15c], al
jmp 0x6003ce85
mov eax, dword [esi + 0x37b8]
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x154], eax
add eax, eax
mov ebx, dword [ecx + 4]
add eax, eax
add eax, eax
cdq
idiv ebx
mov dword [esp + 0x168], eax
mov eax, dword [esi + 0x37bc]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x150], eax
add eax, eax
add eax, eax
add eax, eax
cdq
idiv ecx
mov ecx, eax
mov eax, dword [esi + 0x4c]
mov edx, dword [esp + 0x168]
mov ebx, dword [esi + 0x50]
lea eax, [eax + edx - 1]
mov ebp, dword [esi + 0x3c]
imul ebp, ecx
mov dword [esp + 0x160], ebp
mov ebp, edx
cdq
idiv ebp
mov dword [esp + 0x120], eax
mov eax, ebx
mov dword [esp + 0x144], ecx
cdq
xor eax, edx
sub eax, edx
mov ecx, dword [esp + 0x144]
mov edx, 1
lea eax, [eax + ecx - 1]
mov dword [esp + 0x14c], edx
cdq
mov dword [esp + 0xe8], 1
idiv ecx
mov dword [esp + 0x11c], eax
jmp 0x6003ce01
mov eax, dword [esp + 0x114]
cmp eax, 1
je 0x6003e010
mov dword [edi + ecx*4 + 0x24], 0
mov eax, dword [edi]
mov ebx, dword [esp + 0x190]
mov dword [esp + 0x118], eax
mov ebx, dword [ebx + 0x74]
lea edx, [ecx + ecx]
mov dword [esp + 0x114], ebx
add edx, edx
jmp 0x6003cd3a
lea edx, [ecx + ecx]
add edx, edx
jmp 0x6003cd3a
mov edx, dword [esi + 0x74]
mov dword [esp + 0x114], edx
jmp 0x6003cdaa
add esp, 0x174
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp + 0x154]
mov ecx, dword [esp + 0x128]
mov ebx, dword [esp + 0x150]
mov dword [edi + 0x20], ecx
sub ecx, ebx
add esp, 0x174
mov dword [esi + 8], ecx
mov dword [esi + 0x10], ecx
mov eax, 1
mov ecx, ebp
sub ecx, edx
mov dword [esi + 4], ecx
mov dword [esi + 0xc], ecx
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffe7
pop ebx
pop ebp
pop esi
pop edi
ret
add esp, 0x174
mov eax, 0xffffffeb
pop ebx
pop ebp
pop esi
pop edi
ret