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

Disassembly:
push ebx
push esi
push edi
push ebp
xor bl, bl
sub esp, 0x70
xor ebp, ebp
mov edi, ecx
jmp 0x5f612e
movzx ecx, byte [edi + 0x74]
movzx eax, bl
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
lea esi, [ecx*4]
lea esi, [esi + esi*2]
mov byte [edi + esi*8 + 0xcc], 0
mov byte [edi + ebp + 0x1544], 0
add ebp, 0x60
inc bl
cmp bl, byte [edi + 3]
jb 0x5f6100
mov byte [esp + 0x44], 0
jmp 0x5f65ef
mov ecx, edx
movzx eax, byte [esp + 0x44]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
movzx ebx, byte [edi + ecx + 0x14b8]
imul edx, edx, 0xa20
imul ebx, ebx, 0x60
add edx, edi
add ebx, edx
add ebx, 0x78
cmp dword [ebx + 8], 0x26d6
je 0x5f65eb
mov ebp, edi
mov byte [esp + 0x30], 0
jmp 0x5f65de
lea esi, [ebp + 0x14f0]
mov edx, dword [ebx]
mov eax, dword [esi]
cmp edx, eax
jne 0x5f65d7
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 4]
cmp ecx, eax
jne 0x5f65d7
mov eax, dword [esi + 8]
mov edx, dword [ebx + 8]
cmp edx, eax
jne 0x5f65d7
cmp dword [ebx + 0x20], 0
je 0x5f6221
mov eax, dword [edi + 0x5554]
and eax, 1
je 0x5f61d0
movzx eax, byte [esp + 0x30]
and eax, 1
jne 0x5f61e0
xor al, al
jmp 0x5f61e2
movzx eax, byte [esp + 0x30]
and eax, 1
je 0x5f61e0
xor al, al
jmp 0x5f61e2
mov al, 1
test al, al
je 0x5f6214
movzx eax, byte [esp + 0x30]
mov ecx, 0x983b90
push eax
call fcn.005d6600
test al, al
jne 0x5f6214
mov byte [ebx + 0x55], 1
mov byte [esi + 0x55], 1
mov dword [esi + 8], 0x26d6
mov dword [esi], 0xfffffffb
jmp 0x5f65d7
cmp dword [ebx + 0x50], 0
jne 0x5f6221
mov dword [ebx + 0x50], 1
mov byte [ebx + 0x54], 1
mov byte [esi + 0x54], 1
mov byte [ebx + 0x5c], 0xff
cmp byte [ebx + 0x38], 0
je 0x5f6240
mov byte [ebx + 0x54], 0
mov byte [esi + 0x54], 0
jmp 0x5f65d7
cmp byte [ebx + 0xd], 0
je 0x5f62a7
cmp byte [edi + 4], 0
je 0x5f6270
mov cl, byte [ebx + 0x2c]
cmp cl, 0x3f
jae 0x5f6260
movzx eax, cl
mov dword [esp + 8], eax
jmp 0x5f6268
mov dword [esp + 8], 0x3f
shl dword [esp + 8], 1
jmp 0x5f6278
movzx eax, byte [ebx + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x14]
mov ecx, 0x983b90
push eax
movzx eax, byte [esp + 0x34]
push eax
mov dword [esp + 0x28], eax
call fcn.005d6750
mov ecx, 0x983b90
push dword [esp + 8]
push dword [esp + 0x24]
call fcn.005d6900
jmp 0x5f65c1
fld dword [esi + 0x1c]
fstp dword [esp + 0x4c]
fld dword [ebx + 0x1c]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fstp dword [esi + 0x1c]
fld dword [ebx + 0x30]
mov ecx, 0x7e4688
fstp dword [esp + 0x54]
mov ebp, dword [ebx + 0x14]
call fcn.0046f773
test al, al
fldz
fldz
fldz
jne 0x5f6423
fld dword [0x6be9c8]
fcomp dword [esp + 0x54]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5f6423
fld dword [esp + 0x50]
fsub dword [esp + 0x4c]
fstp st(3)
fld dword [0x6be9c8]
fcomp st(3)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x5f6317
jmp 0x5f6423
mov al, byte [edi + 0x5550]
and eax, 0xff
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fdivr st(3)
fmul dword [esp + 0x54]
fstp st(3)
fld st(2)
fabs
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp st(2)
fld dword [edi + 8]
fstp st(1)
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 5
je 0x5f6423
fld st(2)
fcomp dword [0x6be9c8]
fnstsw ax
test ah, 5
jne 0x5f63c5
fld dword [0x6be9cc]
fcomp st(3)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5f6380
fld dword [0x6be9cc]
jmp 0x5f6382
fld st(2)
fstp st(3)
mov eax, ebp
mov dword [esp + 0x58], ebp
fld st(0)
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], eax
fadd st(3)
fild qword [esp + 0x58]
fmul st(2)
fdivrp st(1)
fnstcw word [esp + 0x48]
mov eax, dword [esp + 0x48]
or byte [esp + 0x49], 0xc
fldcw word [esp + 0x48]
mov dword [esp + 0x48], eax
fistp qword [esp + 0x58]
fldcw word [esp + 0x48]
mov ebp, dword [esp + 0x58]
jmp 0x5f6423
fld dword [0x6be9d0]
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x5f63e0
fld dword [0x6be9d0]
jmp 0x5f63e2
fld st(2)
fstp st(3)
mov eax, ebp
mov dword [esp + 0x58], ebp
fld st(0)
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], eax
fadd st(3)
fild qword [esp + 0x58]
fmul st(2)
fdivrp st(1)
fnstcw word [esp + 0x48]
mov eax, dword [esp + 0x48]
or byte [esp + 0x49], 0xc
fldcw word [esp + 0x48]
mov dword [esp + 0x48], eax
fistp qword [esp + 0x58]
fldcw word [esp + 0x48]
mov ebp, dword [esp + 0x58]
mov dword [ebx + 0x14], ebp
mov ebp, dword [esi + 0x14]
mov ecx, dword [ebx + 0x14]
cmp ecx, ebp
je 0x5f69f1
cmp ecx, ebp
jle 0x5f6454
lea eax, [ebp + 0x1770]
cmp eax, ecx
jge 0x5f6450
add ebp, 0x1770
jmp 0x5f6466
mov ebp, ecx
jmp 0x5f6466
lea eax, [ebp - 0x1770]
cmp eax, ecx
jle 0x5f6464
lea ecx, [ebp - 0x1770]
mov ebp, ecx
mov dword [esi + 0x14], ebp
push ebp
movzx eax, byte [esp + 0x34]
fcompp
mov ecx, 0x983b90
push eax
fstp st(0)
call fcn.005d6750
movzx eax, byte [esi + 0x2c]
mov dword [esp + 0x34], eax
movzx eax, byte [ebx + 0x2c]
cmp eax, dword [esp + 0x34]
je 0x5f656e
cmp eax, dword [esp + 0x34]
jle 0x5f64b6
mov edx, dword [esp + 0x34]
add edx, 0xa
cmp edx, eax
jge 0x5f64b0
add dword [esp + 0x34], 0xa
jmp 0x5f64cc
mov dword [esp + 0x34], eax
jmp 0x5f64cc
mov ebp, dword [esp + 0x34]
add ebp, 0xfffffff6
cmp ebp, eax
jle 0x5f64c8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff6
mov dword [esp + 0x34], eax
cmp byte [edi + 4], 0
je 0x5f64f0
cmp dword [esp + 0x34], 0x3f
jge 0x5f64e0
mov ecx, dword [esp + 0x34]
jmp 0x5f64e5
mov ecx, 0x3f
add ecx, ecx
jmp 0x5f64f4
mov ecx, dword [esp + 0x34]
xor ebp, ebp
cmp byte [edi + ebp + 0x5536], 0
je 0x5f6504
mov al, 1
jmp 0x5f650c
inc ebp
cmp ebp, 2
jl 0x5f64f6
xor al, al
test al, al
je 0x5f6530
movzx edx, byte [edi + 0x5538]
mov eax, 0x81020409
imul edx, ecx
mov ecx, edx
imul edx
add edx, ecx
shr ecx, 0x1f
sar edx, 6
add ecx, edx
jmp 0x5f6553
mov al, byte [edi + 0x5538]
cmp al, 0x7f
jae 0x5f6553
movzx edx, al
mov eax, 0x81020409
imul edx, ecx
mov ecx, edx
imul edx
add edx, ecx
shr ecx, 0x1f
sar edx, 6
add ecx, edx
movzx edx, cl
movzx eax, byte [esp + 0x30]
mov ecx, 0x983b90
push edx
push eax
call fcn.005d6900
mov al, byte [esp + 0x34]
mov byte [esi + 0x2c], al
lea eax, [ebx + 0x3c]
lea ebp, [esp + 0x64]
mov ecx, edi
push ebp
push eax
call fcn.005f7960
movzx eax, byte [esp + 0x30]
mov ecx, 0x983b90
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push eax
mov dword [esp + 0x24], eax
call fcn.005d68c0
push eax
mov ecx, 0x983b90
fld dword [ebx + 0x34]
fld dword [0x6be9c4]
fmul st(1)
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x1c]
fstp st(0)
call fcn.005d6890
movzx eax, byte [esp + 0x30]
mov dl, byte [ebx + 0x48]
mov ecx, 0x983b90
push edx
push eax
call fcn.005d6af0
jmp 0x5f65eb
add ebp, 0x60
inc byte [esp + 0x30]
mov al, byte [esp + 0x30]
cmp al, byte [edi + 3]
jb 0x5f6180
inc byte [esp + 0x44]
movzx edx, byte [edi + 0x74]
mov al, byte [esp + 0x44]
cmp al, byte [edi + edx + 0x14ee]
jb 0x5f6140
xor bl, bl
mov ebp, edi
jmp 0x5f6645
lea esi, [ebp + 0x14f0]
cmp dword [esi + 8], 0x26d6
je 0x5f6640
cmp byte [esi + 0x54], 0
jne 0x5f6640
movzx eax, bl
mov ecx, 0x983b90
push eax
call fcn.005d6530
mov dword [esi + 8], 0x26d6
mov dword [esi], 0xfffffffb
add ebp, 0x60
inc bl
cmp bl, byte [edi + 3]
jb 0x5f6610
mov byte [esp + 0x40], 0
jmp 0x5f69c5
mov ecx, edx
movzx eax, byte [esp + 0x40]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
movzx ebx, byte [edi + ecx + 0x14b8]
imul edx, edx, 0xa20
imul ebx, ebx, 0x60
add edx, edi
add ebx, edx
add ebx, 0x78
cmp byte [ebx + 0x54], 0
jne 0x5f69c1
cmp byte [ebx + 0x55], 0
jne 0x5f69c1
mov esi, dword [ebx]
lea esi, [esi + esi*4]
cmp byte [edi + esi*8 + 0x1f18], 0
je 0x5f69c1
cmp dword [ebx + 8], 0x26d6
jae 0x5f69c1
cmp dword [ebx + 4], 0xff
jbe 0x5f66d3
cmp dword [ebx + 0x20], 0
je 0x5f66d3
cmp byte [ebx + 0x49], 0
je 0x5f66d3
dec byte [ebx + 0x49]
mov dword [ebx + 0x50], 1
jmp 0x5f69c1
mov byte [esp + 0x28], 0
jmp 0x5f69b4
movzx eax, byte [edi + 6]
movzx edx, byte [esp + 0x28]
movzx ecx, cl
add eax, edx
cdq
idiv ecx
mov dword [esp + 0xc], edx
movzx eax, byte [esp + 0xc]
mov dword [esp], eax
imul eax, eax, 0x60
mov dword [esp], eax
add dword [esp], edi
add dword [esp], 0x14f0
mov eax, dword [esp]
cmp byte [eax + 0x54], 0
jne 0x5f69b0
cmp dword [ebx + 0x20], 0
je 0x5f6752
movzx ecx, byte [edi + 0x5550]
xor edx, edx
mov eax, dword [ebx + 0x14]
div ecx
mov ecx, 0x983b90
mov ebp, eax
mov eax, dword [ebx + 8]
push eax
call fcn.005d6e80
imul eax, dword [ebx + 0x20]
test ebp, ebp
je 0x5f69b0
xor edx, edx
div ebp
inc eax
mov dword [ebx + 0x50], eax
push 0x60
push ebx
push dword [esp + 8]
call fcn.0064dbf0
mov eax, dword [esp + 0xc]
add esp, 0xc
cmp byte [eax + 0xd], 0
jne 0x5f677b
add eax, 0x3c
lea esi, [esp + 0x64]
mov ecx, edi
push esi
push eax
call fcn.005f7960
cmp byte [edi + 4], 0
je 0x5f67a3
mov eax, dword [esp]
mov dl, byte [eax + 0x2c]
cmp dl, 0x3f
jae 0x5f6795
movzx eax, dl
mov dword [esp + 0x1c], eax
jmp 0x5f679d
mov dword [esp + 0x1c], 0x3f
shl dword [esp + 0x1c], 1
jmp 0x5f67ae
mov ecx, dword [esp]
movzx eax, byte [ecx + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov ecx, 0x983b90
mov al, byte [eax + 0xc]
push eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
push eax
movzx eax, byte [esp + 0x14]
push eax
mov dword [esp + 0x48], eax
call fcn.005d6980
test al, al
je 0x5f699e
mov eax, dword [esp]
mov ecx, 0x983b90
mov eax, dword [eax + 0x14]
push eax
push dword [esp + 0x40]
call fcn.005d6750
xor edx, edx
cmp byte [edi + edx + 0x5536], 0
je 0x5f6800
mov al, 1
jmp 0x5f6808
inc edx
cmp edx, 2
jl 0x5f67f0
xor al, al
test al, al
je 0x5f6840
mov eax, dword [esp]
cmp byte [eax + 0xd], 0
jne 0x5f6840
movzx edx, byte [edi + 0x5538]
mov eax, 0x81020409
imul edx, dword [esp + 0x1c]
mov ecx, edx
imul edx
add edx, ecx
shr ecx, 0x1f
sar edx, 6
add ecx, edx
movzx eax, cl
jmp 0x5f6872
mov al, byte [edi + 0x5538]
cmp al, 0x7f
jae 0x5f686d
movzx edx, al
mov eax, 0x81020409
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
imul edx
add edx, dword [esp + 0x1c]
shr dword [esp + 0x1c], 0x1f
sar edx, 6
add dword [esp + 0x1c], edx
movzx eax, byte [esp + 0x1c]
mov ecx, 0x983b90
push eax
push dword [esp + 0x40]
call fcn.005d6900
mov eax, dword [esp]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x24]
push ecx
push eax
mov ecx, 0x983b90
push dword [esp + 0x44]
call fcn.005d66e0
mov eax, dword [esp]
mov ecx, 0x983b90
mov eax, dword [eax + 0x20]
push eax
push dword [esp + 0x40]
call fcn.005d6680
mov eax, dword [esp]
mov ecx, 0x983b90
mov al, byte [eax + 0x48]
push eax
push dword [esp + 0x40]
call fcn.005d6af0
mov eax, dword [esp]
cmp byte [eax + 0xd], 0
fldz
fldz
fldz
je 0x5f6936
mov dl, byte [eax + 0x4b]
cmp dl, 0x3f
jne 0x5f68e3
fld dword [0x6be9c8]
jmp 0x5f6918
cmp dl, 0x3f
jae 0x5f6904
movzx edx, dl
mov eax, 0x3f
sub eax, edx
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x6be9d4]
fchs
jmp 0x5f6918
movzx eax, dl
add eax, 0xffffffc1
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x6be9d4]
fstp st(3)
fld dword [0x6be9c8]
fstp st(2)
fld dword [0x6be9c8]
mov eax, dword [esp]
fstp st(1)
mov dword [eax + 0x34], 0x47c35000
jmp 0x5f6948
fld dword [esp + 0x64]
fstp st(3)
fld dword [esp + 0x68]
fstp st(2)
fld dword [esp + 0x6c]
fstp st(1)
push eax
mov ecx, 0x983b90
fst dword [esp]
push eax
fld st(1)
fstp dword [esp]
push eax
fld st(2)
fstp dword [esp]
fcompp
push dword [esp + 0x48]
fstp st(0)
call fcn.005d68c0
mov eax, dword [esp]
mov ecx, 0x983b90
push eax
fld dword [eax + 0x34]
fld dword [0x6be9c4]
fmul st(1)
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x44]
fstp st(0)
call fcn.005d6890
mov ecx, 0x983b90
push dword [esp + 0x3c]
call fcn.005d65a0
mov eax, dword [esp]
mov byte [eax + 0x54], 1
mov byte [ebx + 0x54], 1
mov byte [ebx + 0x5c], 0xff
jmp 0x5f69c1
inc byte [esp + 0x28]
mov cl, byte [edi + 3]
cmp byte [esp + 0x28], cl
jb 0x5f66e0
inc byte [esp + 0x40]
movzx edx, byte [edi + 0x74]
mov al, byte [esp + 0x40]
cmp al, byte [edi + edx + 0x14ee]
jb 0x5f6654
movzx ebx, byte [edi + 3]
movzx eax, byte [edi + 6]
xor edx, edx
div ebx
mov byte [edi + 6], dl
add esp, 0x70
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
fstp st(0)
jmp 0x5f647e