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

Disassembly:
sub esp, 0x624
mov eax, dword [0x68b740]
xor eax, esp
mov dword [esp + 0x620], eax
push edi
mov edi, ecx
mov ecx, dword [edi + 0xbc]
mov eax, ecx
shr eax, 1
shr ecx, 2
and al, 1
and cl, 1
test al, al
je 0x5f80c7
test cl, cl
je 0x5f80c7
mov eax, dword [0x8e48f4]
mov ecx, dword [eax + 0xe440]
mov dword [esp + 0x28], ecx
push 0
mov ecx, 0x12c5598
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
call fcn.0057f5e0
test eax, eax
mov dword [esp + 0x10], eax
je 0x5f80c7
push ebx
push ebp
push esi
jmp 0x5f7bd0
mov ebx, dword [esp + 0x1c]
mov eax, dword [0x12c5540]
imul ebx, ebx, 0x113b8
cmp dword [ebx + eax + 0x1040], 0
jl 0x5f7ff9
movzx ebp, word [ebx + eax + 0x1584]
movzx esi, word [ebx + eax + 0x1586]
shl ebp, 4
add ebp, dword [ebx + eax + 0x12a8]
shl esi, 5
add esi, dword [ebx + eax + 0x12ac]
add ebp, ebp
cmp ebp, dword [edi + 0x4a8]
mov dword [esp + 0x28], esi
jl 0x5f7ff9
cmp ebp, dword [edi + 0x4b0]
jge 0x5f7ff9
cmp esi, dword [edi + 0x4ac]
jl 0x5f7ff9
cmp esi, dword [edi + 0x4b4]
jge 0x5f7ff9
mov ecx, 0x161c9d8
mov byte [esp + 0x13], 0
call fcn.005f0740
test eax, eax
mov edx, dword [0x12c5540]
jne 0x5f7d49
mov eax, dword [ebx + edx + 0x24]
test eax, eax
jne 0x5f7c7b
mov eax, dword [edi + 0x4e4]
mov dword [esp + 0x14], eax
jmp 0x5f7e46
cmp eax, 3
jne 0x5f7c8f
mov ecx, dword [edi + 0x4e8]
mov dword [esp + 0x14], ecx
jmp 0x5f7e46
cmp eax, 1
mov ecx, dword [0x8e48f4]
jne 0x5f7cf8
mov edx, dword [esp + 0x1c]
cmp edx, dword [ecx + 0x8c44]
je 0x5f7cf8
cmp dword [esp + 0x34], 0
je 0x5f7ce9
mov eax, dword [0x12c5540]
mov eax, dword [ebx + eax]
cmp dword [0x1340ef0], eax
je 0x5f7ccc
push eax
mov ecx, 0x1340ee8
call fcn.0058db60
test eax, eax
jl 0x5f7ce9
mov eax, dword [esp + 0x20]
cmp eax, 8
jge 0x5f7ce9
mov dword [esp + eax*8 + 0x38], ebp
mov dword [esp + eax*8 + 0x3c], esi
add eax, 1
mov dword [esp + 0x20], eax
jmp 0x5f7ff9
mov ecx, dword [edi + 0x4e0]
mov dword [esp + 0x14], ecx
jmp 0x5f7e46
cmp eax, 2
jne 0x5f7ff9
mov edx, dword [0x12c5540]
cmp dword [ebx + edx + 0x1570], 0
je 0x5f7d3a
add ecx, 0x11090
call fcn.0053abc0
mov ecx, dword [0x12c5540]
cmp dword [ebx + ecx + 0x1570], eax
jne 0x5f7d3a
mov edx, dword [edi + 0x4ec]
mov dword [esp + 0x14], edx
jmp 0x5f7e46
mov eax, dword [edi + 0x4f0]
mov dword [esp + 0x14], eax
jmp 0x5f7e46
mov ecx, dword [0x8e48f4]
mov eax, dword [ecx + 0x8c44]
mov ecx, eax
imul ecx, ecx, 0x113b8
mov ecx, dword [ecx + edx + 0xe8]
add edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [edx + 0xe8]
cmp edx, ecx
jne 0x5f7de9
cmp dword [esp + 0x1c], eax
je 0x5f7de5
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x24]
cmp eax, 1
mov byte [esp + 0x13], 1
jne 0x5f7d96
mov edx, dword [edi + 0x4fc]
jmp 0x5f7e21
cmp eax, 2
jne 0x5f7dd9
cmp dword [ecx + 0x1570], 0
je 0x5f7dd9
mov eax, dword [0x12c5540]
lea ecx, [ebx + eax]
mov dword [esp + 0x18], ecx
mov ecx, dword [0x8e48f4]
add ecx, 0x11090
call fcn.0053abc0
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x1570], eax
jne 0x5f7dd9
mov eax, dword [edi + 0x4ec]
mov dword [esp + 0x14], eax
jmp 0x5f7e25
mov ecx, dword [edi + 0x500]
mov dword [esp + 0x14], ecx
jmp 0x5f7e25
cmp edx, ecx
je 0x5f7e10
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x24], 1
mov byte [esp + 0x13], 1
jne 0x5f7e04
mov eax, dword [edi + 0x4f8]
mov dword [esp + 0x14], eax
jmp 0x5f7e25
mov ecx, dword [edi + 0x4f4]
mov dword [esp + 0x14], ecx
jmp 0x5f7e25
cmp dword [esp + 0x1c], eax
jne 0x5f7e25
mov edx, dword [edi + 0x4e0]
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x24], 3
jne 0x5f7e3b
mov ecx, dword [edi + 0x4e8]
mov dword [esp + 0x14], ecx
jmp 0x5f7e46
cmp byte [esp + 0x13], 0
je 0x5f7ff9
push 0x57e5c0
push 2
push 0xac
lea edx, [esp + 0x4e4]
push edx
call fcn.0045cb40
mov eax, dword [0x12c5540]
lea ebx, [ebx + eax + 0x2d84]
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], ebx
lea ecx, [ebx + 0x44]
lea eax, [esp + 0x4f6]
mov dword [esp + 0x30], 6
lea esp, [esp]
cmp dword [ebx], 0
je 0x5f7f2f
cmp dword [ecx - 0x40], 3
jne 0x5f7f2f
mov edx, eax
sub edx, ecx
mov esi, ecx
lea ebx, [edx + 2]
lea esp, [esp]
mov dl, byte [esi]
mov byte [esi + ebx], dl
add esi, 1
test dl, dl
jne 0x5f7eb0
mov esi, dword [esp + 0x28]
mov byte [eax - 2], dl
mov word [eax], 1
mov byte [eax - 3], 0xff
mov word [eax + 0x86], 0xffff
mov byte [eax - 1], 1
mov edx, dword [ecx + 0x50]
mov dword [eax + 0x82], edx
mov dx, word [ecx - 0x24]
mov word [eax + 0x88], dx
add dword [esp + 0x18], 1
mov ebx, dword [esp + 0x2c]
mov edx, ebp
sub edx, dword [ecx - 8]
sub edx, dword [edi + 0x4a8]
add edx, dword [esp + 0x638]
mov dword [eax - 0x1e], edx
mov edx, esi
sub edx, dword [ecx - 4]
mov dword [eax - 0x16], 0
sub edx, dword [edi + 0x4ac]
add edx, dword [esp + 0x63c]
add eax, 0xac
mov dword [eax - 0xc6], edx
add ebx, 0x9c
add ecx, 0x9c
sub dword [esp + 0x30], 1
mov dword [esp + 0x2c], ebx
jne 0x5f7e90
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x5f7f71
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
push 1
push 3
lea esi, [esp + 0x4e0]
push esi
push eax
mov eax, dword [edx + 0x48]
call eax
jmp 0x5f7ff9
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
sub ebp, dword [edi + 0x4a8]
mov edx, dword [esp + 0x638]
sub esi, dword [edi + 0x4ac]
lea eax, [ebx*8]
sub eax, ebx
add eax, eax
add eax, eax
mov dword [esp + eax + 0x90], ecx
lea ecx, [edx + ebp - 1]
mov edx, dword [esp + 0x63c]
lea edx, [esi + edx - 1]
add ebx, 1
mov dword [esp + eax + 0x78], ecx
mov dword [esp + eax + 0x7c], edx
add ecx, 3
add edx, 3
cmp ebx, 0x28
mov dword [esp + eax + 0x84], ecx
mov dword [esp + eax + 0x88], edx
mov dword [esp + 0x24], ebx
jne 0x5f7ff9
mov ecx, dword [0x6e0f70]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
push 1
push 8
lea edx, [esp + 0x80]
push edx
push ebx
call eax
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, 0x12c5598
call fcn.0057f5e0
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x5f7bd0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5f8036
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
push 1
push 8
lea esi, [esp + 0x80]
push esi
push eax
mov eax, dword [edx + 0x48]
call eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5f80c4
xor ecx, ecx
test eax, eax
jle 0x5f80a6
mov edx, dword [edi + 0x4ac]
mov ebx, dword [edi + 0x4dc]
mov ebp, dword [edi + 0x4a8]
mov dword [esp + 0x28], edx
lea eax, [esp + 0x78]
mov edx, dword [esp + ecx*8 + 0x38]
mov esi, dword [esp + 0x638]
mov edi, dword [esp + 0x63c]
sub edx, ebp
lea edx, [edx + esi - 1]
mov esi, dword [esp + ecx*8 + 0x3c]
sub esi, dword [esp + 0x28]
mov dword [eax], edx
lea esi, [esi + edi - 1]
mov dword [eax + 4], esi
add edx, 3
add esi, 3
mov dword [eax + 0x18], ebx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], esi
add ecx, 1
add eax, 0x1c
cmp ecx, dword [esp + 0x20]
jl 0x5f8062
mov ecx, dword [0x6e0f70]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
push 1
push 8
lea edx, [esp + 0x80]
push edx
mov edx, dword [esp + 0x2c]
push edx
call eax
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x624]
pop edi
xor ecx, esp
call fcn.00612c78
add esp, 0x624
ret 8