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

Disassembly:
sub esp, 0x48
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
push edi
mov edi, dword [ebx + 4]
mov esi, ecx
mov eax, dword [ebx]
mov ebp, dword [ebx + 0x8c]
mov edx, dword [ebx + 0x88]
add ebp, dword [esp + 0x64]
add edx, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], edx
mov dword [esi], ebx
mov dword [esi + 4], 0
mov dword [esi + 8], 0x40
cmp dword [eax + 4], 0
mov dword [esp + 0x2c], esi
je 0x5f6d47
cmp byte [eax + 0x159], 0
jne 0x5f6d47
movzx eax, byte [ebx + 0xc]
cmp eax, dword [edi + 0x3c]
jg 0x5f6d40
cmp byte [edi + 0x98], 0
je 0x5f6d40
cmp ebp, dword [ebx + 0x9c]
jl 0x5f6d40
mov ecx, dword [ebx + 0x98]
cmp edx, ecx
jl 0x5f6d40
mov eax, dword [ebx + 0xa4]
add eax, dword [ebx + 0x9c]
cmp ebp, eax
jge 0x5f6d40
mov eax, dword [ebx + 0xa0]
add eax, ecx
cmp edx, eax
jl 0x5f6d47
mov dword [esi + 8], 0
mov eax, dword [esp + 0x30]
lea ecx, [ebx + 0x4c]
mov eax, dword [eax + 0x88]
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [ebx + 0x78]
mov dword [ecx], eax
mov eax, dword [ebx + 0x7c]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 0x80]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x84]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x58]
imul eax, ebp
add dword [ebx + 0x50], eax
mov eax, dword [ebx + 0x54]
imul eax, edx
add dword [ecx], eax
lea eax, [ebx + 0x18]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.005c7b00
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x159], 0
je 0x5f6dd0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xe5], 0
je 0x5f6de7
movzx eax, byte [ebx + 0xc]
cmp eax, dword [edi + 0x3c]
jg 0x5f6de7
cmp byte [edi + 0x98], 0
mov byte [esp + 0x13], 0
jne 0x5f6dec
mov byte [esp + 0x13], 1
lea ecx, [esi + 0x38]
mov dword [esp + 0x28], 0
mov dword [esi + 0x28], ecx
cmp byte [ebx + 0xaf], 0
mov dl, byte [ebx + 0xae]
movzx eax, dl
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [esp + 0x50], eax
jbe 0x5f6eb4
xor esi, esi
lea esp, [esp]
mov eax, dword [ebx + 0xb0]
add eax, esi
mov dword [esp + 0x44], eax
movzx ecx, byte [eax + 0x29]
mov dword [esp + 0x48], ecx
movzx ecx, byte [eax + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x3c]
mov edi, dword [eax + 0x40]
mov ebp, dword [eax + 0x48]
add ebp, edi
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x4c]
test ecx, 0xfffffffe
jne 0x5f6e65
sub edi, ecx
sub ebp, ecx
inc edi
inc ebp
sar edi, 1
sar ebp, 1
mov ecx, dword [esp + 0x48]
test ecx, 0xfffffffe
jne 0x5f6e7b
sub edx, ecx
sub eax, ecx
inc edx
inc eax
sar edx, 1
sar eax, 1
mov ecx, dword [esp + 0x44]
sub eax, edx
sub ebp, edi
add esi, 0x68
mov dword [ecx + 0x3c], edx
mov dword [ecx + 0x40], edi
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x48], ebp
mov ecx, dword [esp + 0x28]
movzx eax, byte [ebx + 0xaf]
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, eax
jl 0x5f6e20
mov dl, byte [ebx + 0xae]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x44], 0
test dl, dl
je 0x5f71c9
xor edx, edx
xor edi, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edi
mov ebp, dword [esi + 0x28]
add ebp, edi
mov edi, dword [ebx + 0xb8]
add edi, edx
mov dword [esp + 0x18], ebp
mov dword [ebp], edi
movzx eax, byte [edi + 0x29]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [edi]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x48]
add eax, dword [esp + 0x28]
mov dword [esp + 0x34], edx
add edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
test ecx, 0xfffffffe
jne 0x5f6f38
sub eax, ecx
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x14]
inc eax
inc ecx
sar eax, 1
sar ecx, 1
mov dword [esp + 0x20], ecx
test dword [esp + 0x1c], 0xfffffffe
mov ecx, dword [esp + 0x34]
jne 0x5f6f54
sub ecx, dword [esp + 0x1c]
sub edx, dword [esp + 0x1c]
inc ecx
inc edx
sar ecx, 1
sar edx, 1
mov ebx, dword [esp + 0x20]
sub edx, ecx
sub ecx, dword [edi + 0x44]
sub ebx, eax
sub eax, dword [edi + 0x48]
mov dword [esp + 0x14], edx
add edx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], edx
lea ebp, [eax + ebx]
mov ebx, dword [edi + 0x50]
test eax, eax
jns 0x5f6f83
not eax
cdq
idiv ebx
not eax
jmp 0x5f6f86
cdq
idiv ebx
mov dword [esp + 0x1c], eax
test ebp, ebp
jg 0x5f6f95
mov eax, ebp
cdq
idiv ebx
jmp 0x5f6f9c
lea eax, [ebp - 1]
cdq
idiv ebx
inc eax
mov ebx, dword [edi + 0x4c]
mov dword [esp + 0x34], eax
test ecx, ecx
jns 0x5f6fb4
not ecx
mov eax, ecx
cdq
idiv ebx
mov ecx, eax
not ecx
jmp 0x5f6fbb
mov eax, ecx
cdq
idiv ebx
mov ecx, eax
mov eax, dword [esp + 0x28]
test eax, eax
jg 0x5f6fc8
cdq
idiv ebx
jmp 0x5f6fcd
dec eax
cdq
idiv ebx
inc eax
cmp dword [esp + 0x20], 0
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
je 0x5f6fe4
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x14], 0
jne 0x5f6fed
mov eax, ecx
sub edx, dword [esp + 0x1c]
sub eax, ecx
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], eax
lea eax, [esp + 0x50]
push eax
push edx
mov dword [ebp + 0x10], edx
push dword [ebp + 0xc]
call fcn.005ef710
mov dword [ebp + 0x14], eax
add esp, 0xc
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x50]
mov esi, dword [edi + 0x48]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
imul ecx, edx
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0xc]
add esi, ecx
mov ecx, dword [ebp + 4]
imul ecx, dword [esp + 0x28]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x24]
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
cmp dword [esi + 4], 0
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
jne 0x5f70a3
xor edi, edi
test edx, edx
jle 0x5f7198
lea ebx, [ebx]
xor edx, edx
cmp dword [ebp + 0x10], edx
jle 0x5f7098
jmp 0x5f7080
mov ecx, dword [ebx + 4]
inc edx
mov cl, byte [ecx + 0x8c]
mov byte [eax + 0x11], cl
add eax, 0x18
inc dword [esi + 0x18]
cmp edx, dword [ebp + 0x10]
jl 0x5f7080
inc edi
cmp edi, dword [ebp + 0xc]
jl 0x5f7070
jmp 0x5f7198
mov dword [esp + 0x34], 0
test edx, edx
jle 0x5f7198
mov edx, dword [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x14], ebx
cmp dword [ebp + 0x10], ebx
jle 0x5f717a
jmp 0x5f70d0
cmp byte [esp + 0x13], 0
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 4]
mov cl, byte [ecx + 0x8c]
mov byte [eax + 0x11], cl
mov ecx, dword [esp + 0x1c]
jne 0x5f714e
mov ebx, dword [edi + 0x1c]
add ecx, edx
cmp ecx, ebx
jle 0x5f71fb
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x28]
mov ebp, dword [edi + 0x18]
cmp ecx, ebp
jle 0x5f7142
mov ecx, dword [edi + 0x24]
add ecx, ebx
cmp edx, ecx
jge 0x5f7142
mov ebx, dword [edi + 0x20]
lea ecx, [ebx + ebp]
cmp dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
jge 0x5f7146
test ecx, ecx
jle 0x5f7146
cmp dword [esp + 0x28], 0
jle 0x5f7146
cmp dword [edi + 0x24], 0
jle 0x5f7146
mov ebp, dword [esp + 0x18]
test ebx, ebx
mov ebx, dword [esp + 0x14]
jle 0x5f714e
inc dword [esi + 0x18]
jmp 0x5f7163
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
cmp byte [esi + 0x159], 0
mov esi, dword [esp + 0x2c]
jne 0x5f7163
mov byte [eax + 0xa], 0xff
inc ebx
add edx, ecx
add eax, 0x18
mov dword [esp + 0x14], ebx
cmp ebx, dword [ebp + 0x10]
jl 0x5f70d0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
add ecx, dword [esp + 0x28]
inc edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], ecx
cmp edx, dword [ebp + 0xc]
jl 0x5f70b3
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
inc ecx
mov edx, dword [esp + 0x4c]
add edi, 0x18
movzx eax, byte [ebx + 0xae]
add edx, 0x84
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edx
cmp ecx, eax
jl 0x5f6ed0
cmp dword [esi + 0x18], 0
jne 0x5f71dd
mov eax, dword [esp + 0x24]
cmp dword [eax + 4], 0
je 0x5f71dd
or dword [esi + 8], 0x10
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xe3], 0
je 0x5f71f1
mov dword [esi + 0x14], 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0xc
mov ecx, dword [esp + 0x1c]
jmp 0x5f714a