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

Disassembly:
sub esp, 0x80
push ebx
push ebp
push esi
push edi
mov ebx, ecx
mov edi, dword [ebx + 0x94]
add edi, 0xc4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], edi
call fcn.0059ebf0
mov ebp, eax
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 4]
lea ecx, [ebx + 0x98]
mov dword [esp + 0x48], eax
cdq
and edx, 0x1f
add eax, edx
mov esi, eax
mov eax, dword [ebp + 8]
sub eax, dword [ebp]
sar esi, 5
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
add eax, 1
add esi, 1
mov dword [esp + 0x40], eax
imul eax, esi
push eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x5c], esi
call fcn.005a0b20
xor eax, eax
cmp dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
jle 0x5a11ee
lea ecx, [esi + esi*4]
shl ecx, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], ecx
lea ebx, [ebx]
test esi, esi
jle 0x5a11d9
fldz
mov ecx, dword [esp + 0x28]
shl eax, 5
fstp dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], esi
jmp 0x5a0d04
mov eax, dword [esp + 0x44]
mov esi, dword [ebx + 0xa0]
mov ebx, dword [ebp]
mov ecx, dword [ebp + 4]
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x1c]
add ebx, eax
lea eax, [ebx + 0x20]
lea edx, [ecx + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0xc]
cmp edx, eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x7c], edx
jl 0x5a0d3b
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x78]
cmp edx, eax
jl 0x5a0d4c
mov dword [esp + 0x78], eax
mov edx, eax
fild dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
fld dword [0x83dea4]
add eax, 1
fld st(0)
mov dword [esp + 0x30], eax
fmulp st(2)
lea eax, [edx + 1]
fld dword [edi + 4]
faddp st(2)
fxch st(1)
fstp dword [esi + 8]
fild dword [esp + 0x70]
fmul st(1)
fadd dword [edi]
fstp dword [esi + 0xc]
fild dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x7c]
sub eax, ecx
fmul st(1)
add eax, 1
lea ecx, [esi + 0x20]
fadd dword [edi + 4]
fstp dword [esi + 0x14]
fimul dword [esp + 0x30]
mov dword [esp + 0x30], eax
fadd dword [edi]
mov edi, edx
sub edi, ebx
add edi, 1
imul edi, eax
fstp dword [esi + 0x18]
push edi
call fcn.0046f520
push edi
lea ecx, [esi + 0x30]
call fcn.0046f720
fldz
xor edx, edx
cmp ebx, dword [esp + 0x78]
fst dword [esp + 0x64]
fst dword [esp + 0x68]
mov edi, ebx
fst dword [esp + 0x5c]
mov dword [esp + 0x10], ebx
fstp dword [esp + 0x60]
jg 0x5a0f6b
fld dword [0x83dea4]
fld qword [0x7d2fc0]
fild dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, edi
fmul st(2)
fadd dword [ecx]
mov ecx, dword [ebp]
sub eax, ecx
cmp edi, ecx
fstp dword [esp + 0x68]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp dword [esp + 0x60]
jne 0x5a0e20
fld dword [esp + 0x60]
fadd st(1)
fstp dword [esp + 0x60]
lea eax, [ecx + 1]
cmp edi, eax
jne 0x5a0e31
fld dword [esp + 0x60]
fsub st(1)
fstp dword [esp + 0x60]
mov eax, dword [ebp + 8]
lea edi, [eax - 1]
cmp dword [esp + 0x10], edi
jne 0x5a0e47
fld dword [esp + 0x60]
fsub st(1)
fstp dword [esp + 0x60]
mov edi, dword [esp + 0x10]
cmp edi, eax
jne 0x5a0e62
sub eax, ecx
sub eax, 2
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fadd st(1)
fstp dword [esp + 0x60]
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x2c], ecx
jg 0x5a0f56
fld dword [esp + 0x60]
lea eax, [edx + edx*2]
add eax, eax
add eax, eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov edi, ecx
fmul st(3)
fadd dword [eax + 4]
mov eax, dword [ebp + 4]
sub edi, eax
cmp ecx, eax
fstp dword [esp + 0x64]
mov dword [esp + 0x2c], edi
fild dword [esp + 0x2c]
fstp dword [esp + 0x5c]
jne 0x5a0eb5
fld dword [esp + 0x5c]
fadd st(2)
fstp dword [esp + 0x5c]
mov ebx, eax
lea eax, [ebx + 1]
cmp ecx, eax
jne 0x5a0ec8
fld dword [esp + 0x5c]
fsub st(2)
fstp dword [esp + 0x5c]
mov eax, dword [ebp + 0xc]
lea edi, [eax - 1]
cmp ecx, edi
jne 0x5a0edc
fld dword [esp + 0x5c]
fsub st(2)
fstp dword [esp + 0x5c]
cmp ecx, eax
jne 0x5a0ef3
sub eax, ebx
sub eax, 2
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fadd st(2)
fstp dword [esp + 0x5c]
mov eax, dword [esi + 0x28]
add eax, dword [esp + 0x18]
cmp dword [esp + 0x48], 1
mov edi, dword [esp + 0x64]
mov dword [eax], edi
mov edi, dword [esp + 0x68]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x6c]
mov dword [eax + 8], edi
mov eax, dword [esi + 0x38]
jne 0x5a0f28
fst dword [eax + edx*8]
mov eax, dword [esi + 0x38]
fld dword [esp + 0x5c]
fstp dword [eax + edx*8 + 4]
jmp 0x5a0f37
mov edi, dword [esp + 0x5c]
mov dword [eax + edx*8], edi
mov edi, dword [esp + 0x60]
mov dword [eax + edx*8 + 4], edi
add dword [esp + 0x18], 0xc
add ecx, 1
add edx, 1
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x2c], ecx
jle 0x5a0e83
mov edi, dword [esp + 0x10]
fstp st(0)
add edi, 1
cmp edi, dword [esp + 0x78]
mov dword [esp + 0x10], edi
jle 0x5a0def
fstp st(0)
fstp st(0)
add esi, 0x40
push 0
mov ecx, esi
mov dword [esp + 0x14], esi
call fcn.005a0540
mov eax, dword [esi + 4]
add eax, 9
cmp eax, dword [esi]
jbe 0x5a0f8d
push eax
mov ecx, esi
call fcn.005a0230
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x18], ebx
jmp 0x5a0fa0
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x28]
push ebp
lea edx, [esp + 0x78]
push edx
push ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
call fcn.0059ef40
test eax, eax
je 0x5a11a0
mov edi, dword [esi + 4]
add edi, 1
xor ebp, ebp
cmp edi, dword [esi]
jbe 0x5a1039
mov ecx, dword [esi + 0xc]
cmp ecx, ebp
jne 0x5a1021
cmp edi, 0xa
mov ecx, edi
jae 0x5a1015
lea eax, [edi - 1]
and eax, edi
je 0x5a1009
lea ecx, [ecx]
mov ecx, eax
lea eax, [ecx - 1]
and eax, ecx
jne 0x5a1000
cmp ecx, 1
jae 0x5a1021
mov ecx, 1
jmp 0x5a1021
mov dword [esi + 0xc], 0xa
mov ecx, 0xa
xor edx, edx
mov eax, edi
div ecx
cmp edx, ebp
je 0x5a1031
sub ecx, edx
add ecx, edi
mov edi, ecx
push edi
mov ecx, esi
call fcn.005a0230
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
add ecx, 1
cmp eax, ebp
mov dword [esi + 4], ecx
je 0x5a105f
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov esi, eax
jmp 0x5a1061
xor esi, esi
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov dword [esi + 4], ebp
mov ebp, dword [esp + 0x88]
sub edi, eax
sub ebp, ecx
mov dword [esi], ebx
add edi, 1
add ebp, 1
lea ebx, [ebp + ebp - 2]
lea edx, [edi + 1]
imul ebx, edx
cmp ebx, dword [esi + 0xc]
jbe 0x5a1102
cmp ebx, dword [esi + 8]
jbe 0x5a1102
mov ecx, dword [esi + 0x14]
test ecx, ecx
jne 0x5a10d9
cmp ebx, 0x80
mov ecx, ebx
jae 0x5a10cd
lea eax, [ebx - 1]
and eax, ebx
je 0x5a10c1
mov ecx, eax
lea eax, [ecx - 1]
and eax, ecx
jne 0x5a10b8
cmp ecx, 1
jae 0x5a10d9
mov ecx, 1
jmp 0x5a10d9
mov dword [esi + 0x14], 0x80
mov ecx, 0x80
xor edx, edx
mov eax, ebx
div ecx
test edx, edx
je 0x5a10e9
sub ecx, edx
add ecx, ebx
jmp 0x5a10eb
mov ecx, ebx
push ecx
lea ecx, [esi + 8]
call fcn.0040de50
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x74]
sub ecx, dword [esp + 0x70]
mov edx, eax
add ebp, 0xffffffff
xor eax, eax
test ebp, ebp
mov dword [esi + 0xc], ebx
jle 0x5a1192
imul ecx, dword [esp + 0x30]
add ecx, edx
mov dword [esp + 0x2c], ebp
mov edx, dword [esp + 0x30]
movzx ebx, cx
lea ebp, [ecx + edx]
mov ecx, dword [esi + 0x10]
mov word [ecx + eax*2], bx
add eax, 1
xor ecx, ecx
test edi, edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], ebx
jle 0x5a117b
jmp 0x5a1154
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esi + 0x10]
movzx edx, cx
add ebx, edx
mov word [ebp + eax*2], bx
mov ebp, dword [esp + 0x50]
mov ebx, dword [esi + 0x10]
add eax, 1
add edx, ebp
mov word [ebx + eax*2], dx
add ecx, 1
add eax, 1
cmp ecx, edi
jl 0x5a1150
mov ecx, dword [esi + 0x10]
lea edx, [edi + ebp - 1]
mov word [ecx + eax*2], dx
add eax, 1
sub dword [esp + 0x2c], 1
mov ecx, ebp
jne 0x5a1123
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
xor edi, edi
add ebx, 1
cmp ebx, 9
mov dword [esp + 0x18], ebx
jl 0x5a0fa0
add dword [esp + 0x1c], 0x50
add dword [esp + 0x20], 0x20
sub dword [esp + 0x38], 1
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
jne 0x5a0d00
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
jl 0x5a0cd0
mov ecx, ebx
call fcn.0059ee70
push 1
call fcn.0059f0e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret