Function at 0x5f6110
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 0x5f614e
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 0x5f6120
mov byte [esp + 0x44], 0
jmp 0x5f660f
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 0x5f660b
mov ebp, edi
mov byte [esp + 0x30], 0
jmp 0x5f65fe
lea esi, [ebp + 0x14f0]
mov edx, dword [ebx]
mov eax, dword [esi]
cmp edx, eax
jne 0x5f65f7
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 4]
cmp ecx, eax
jne 0x5f65f7
mov eax, dword [esi + 8]
mov edx, dword [ebx + 8]
cmp edx, eax
jne 0x5f65f7
cmp dword [ebx + 0x20], 0
je 0x5f6241
mov eax, dword [edi + 0x5554]
and eax, 1
je 0x5f61f0
movzx eax, byte [esp + 0x30]
and eax, 1
jne 0x5f6200
xor al, al
jmp 0x5f6202
movzx eax, byte [esp + 0x30]
and eax, 1
je 0x5f6200
xor al, al
jmp 0x5f6202
mov al, 1
test al, al
je 0x5f6234
movzx eax, byte [esp + 0x30]
mov ecx, 0x983b98
push eax
call fcn.005d6620
test al, al
jne 0x5f6234
mov byte [ebx + 0x55], 1
mov byte [esi + 0x55], 1
mov dword [esi + 8], 0x26d6
mov dword [esi], 0xfffffffb
jmp 0x5f65f7
cmp dword [ebx + 0x50], 0
jne 0x5f6241
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 0x5f6260
mov byte [ebx + 0x54], 0
mov byte [esi + 0x54], 0
jmp 0x5f65f7
cmp byte [ebx + 0xd], 0
je 0x5f62c7
cmp byte [edi + 4], 0
je 0x5f6290
mov cl, byte [ebx + 0x2c]
cmp cl, 0x3f
jae 0x5f6280
movzx eax, cl
mov dword [esp + 8], eax
jmp 0x5f6288
mov dword [esp + 8], 0x3f
shl dword [esp + 8], 1
jmp 0x5f6298
movzx eax, byte [ebx + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x14]
mov ecx, 0x983b98
push eax
movzx eax, byte [esp + 0x34]
push eax
mov dword [esp + 0x28], eax
call fcn.005d6770
mov ecx, 0x983b98
push dword [esp + 8]
push dword [esp + 0x24]
call fcn.005d6920
jmp 0x5f65e1
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, 0x7e4690
fstp dword [esp + 0x54]
mov ebp, dword [ebx + 0x14]
call fcn.0046f773
test al, al
fldz
fldz
fldz
jne 0x5f6443
fld dword [0x6be9c8]
fcomp dword [esp + 0x54]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x5f6443
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 0x5f6337
jmp 0x5f6443
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 0x5f6443
fld st(2)
fcomp dword [0x6be9c8]
fnstsw ax
test ah, 5
jne 0x5f63e5
fld dword [0x6be9cc]
fcomp st(3)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5f63a0
fld dword [0x6be9cc]
jmp 0x5f63a2
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 0x5f6443
fld dword [0x6be9d0]
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x5f6400
fld dword [0x6be9d0]
jmp 0x5f6402
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 0x5f6a11
cmp ecx, ebp
jle 0x5f6474
lea eax, [ebp + 0x1770]
cmp eax, ecx
jge 0x5f6470
add ebp, 0x1770
jmp 0x5f6486
mov ebp, ecx
jmp 0x5f6486
lea eax, [ebp - 0x1770]
cmp eax, ecx
jle 0x5f6484
lea ecx, [ebp - 0x1770]
mov ebp, ecx
mov dword [esi + 0x14], ebp
push ebp
movzx eax, byte [esp + 0x34]
fcompp
mov ecx, 0x983b98
push eax
fstp st(0)
call fcn.005d6770
movzx eax, byte [esi + 0x2c]
mov dword [esp + 0x34], eax
movzx eax, byte [ebx + 0x2c]
cmp eax, dword [esp + 0x34]
je 0x5f658e
cmp eax, dword [esp + 0x34]
jle 0x5f64d6
mov edx, dword [esp + 0x34]
add edx, 0xa
cmp edx, eax
jge 0x5f64d0
add dword [esp + 0x34], 0xa
jmp 0x5f64ec
mov dword [esp + 0x34], eax
jmp 0x5f64ec
mov ebp, dword [esp + 0x34]
add ebp, 0xfffffff6
cmp ebp, eax
jle 0x5f64e8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff6
mov dword [esp + 0x34], eax
cmp byte [edi + 4], 0
je 0x5f6510
cmp dword [esp + 0x34], 0x3f
jge 0x5f6500
mov ecx, dword [esp + 0x34]
jmp 0x5f6505
mov ecx, 0x3f
add ecx, ecx
jmp 0x5f6514
mov ecx, dword [esp + 0x34]
xor ebp, ebp
cmp byte [edi + ebp + 0x5536], 0
je 0x5f6524
mov al, 1
jmp 0x5f652c
inc ebp
cmp ebp, 2
jl 0x5f6516
xor al, al
test al, al
je 0x5f6550
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 0x5f6573
mov al, byte [edi + 0x5538]
cmp al, 0x7f
jae 0x5f6573
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, 0x983b98
push edx
push eax
call fcn.005d6920
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.005f7980
movzx eax, byte [esp + 0x30]
mov ecx, 0x983b98
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push eax
mov dword [esp + 0x24], eax
call fcn.005d68e0
push eax
mov ecx, 0x983b98
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.005d68b0
movzx eax, byte [esp + 0x30]
mov dl, byte [ebx + 0x48]
mov ecx, 0x983b98
push edx
push eax
call fcn.005d6b10
jmp 0x5f660b
add ebp, 0x60
inc byte [esp + 0x30]
mov al, byte [esp + 0x30]
cmp al, byte [edi + 3]
jb 0x5f61a0
inc byte [esp + 0x44]
movzx edx, byte [edi + 0x74]
mov al, byte [esp + 0x44]
cmp al, byte [edi + edx + 0x14ee]
jb 0x5f6160
xor bl, bl
mov ebp, edi
jmp 0x5f6665
lea esi, [ebp + 0x14f0]
cmp dword [esi + 8], 0x26d6
je 0x5f6660
cmp byte [esi + 0x54], 0
jne 0x5f6660
movzx eax, bl
mov ecx, 0x983b98
push eax
call fcn.005d6550
mov dword [esi + 8], 0x26d6
mov dword [esi], 0xfffffffb
add ebp, 0x60
inc bl
cmp bl, byte [edi + 3]
jb 0x5f6630
mov byte [esp + 0x40], 0
jmp 0x5f69e5
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 0x5f69e1
cmp byte [ebx + 0x55], 0
jne 0x5f69e1
mov esi, dword [ebx]
lea esi, [esi + esi*4]
cmp byte [edi + esi*8 + 0x1f18], 0
je 0x5f69e1
cmp dword [ebx + 8], 0x26d6
jae 0x5f69e1
cmp dword [ebx + 4], 0xff
jbe 0x5f66f3
cmp dword [ebx + 0x20], 0
je 0x5f66f3
cmp byte [ebx + 0x49], 0
je 0x5f66f3
dec byte [ebx + 0x49]
mov dword [ebx + 0x50], 1
jmp 0x5f69e1
mov byte [esp + 0x28], 0
jmp 0x5f69d4
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 0x5f69d0
cmp dword [ebx + 0x20], 0
je 0x5f6772
movzx ecx, byte [edi + 0x5550]
xor edx, edx
mov eax, dword [ebx + 0x14]
div ecx
mov ecx, 0x983b98
mov ebp, eax
mov eax, dword [ebx + 8]
push eax
call fcn.005d6ea0
imul eax, dword [ebx + 0x20]
test ebp, ebp
je 0x5f69d0
xor edx, edx
div ebp
inc eax
mov dword [ebx + 0x50], eax
push 0x60
push ebx
push dword [esp + 8]
call fcn.0064dc40
mov eax, dword [esp + 0xc]
add esp, 0xc
cmp byte [eax + 0xd], 0
jne 0x5f679b
add eax, 0x3c
lea esi, [esp + 0x64]
mov ecx, edi
push esi
push eax
call fcn.005f7980
cmp byte [edi + 4], 0
je 0x5f67c3
mov eax, dword [esp]
mov dl, byte [eax + 0x2c]
cmp dl, 0x3f
jae 0x5f67b5
movzx eax, dl
mov dword [esp + 0x1c], eax
jmp 0x5f67bd
mov dword [esp + 0x1c], 0x3f
shl dword [esp + 0x1c], 1
jmp 0x5f67ce
mov ecx, dword [esp]
movzx eax, byte [ecx + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov ecx, 0x983b98
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.005d69a0
test al, al
je 0x5f69be
mov eax, dword [esp]
mov ecx, 0x983b98
mov eax, dword [eax + 0x14]
push eax
push dword [esp + 0x40]
call fcn.005d6770
xor edx, edx
cmp byte [edi + edx + 0x5536], 0
je 0x5f6820
mov al, 1
jmp 0x5f6828
inc edx
cmp edx, 2
jl 0x5f6810
xor al, al
test al, al
je 0x5f6860
mov eax, dword [esp]
cmp byte [eax + 0xd], 0
jne 0x5f6860
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 0x5f6892
mov al, byte [edi + 0x5538]
cmp al, 0x7f
jae 0x5f688d
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, 0x983b98
push eax
push dword [esp + 0x40]
call fcn.005d6920
mov eax, dword [esp]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x24]
push ecx
push eax
mov ecx, 0x983b98
push dword [esp + 0x44]
call fcn.005d6700
mov eax, dword [esp]
mov ecx, 0x983b98
mov eax, dword [eax + 0x20]
push eax
push dword [esp + 0x40]
call fcn.005d66a0
mov eax, dword [esp]
mov ecx, 0x983b98
mov al, byte [eax + 0x48]
push eax
push dword [esp + 0x40]
call fcn.005d6b10
mov eax, dword [esp]
cmp byte [eax + 0xd], 0
fldz
fldz
fldz
je 0x5f6956
mov dl, byte [eax + 0x4b]
cmp dl, 0x3f
jne 0x5f6903
fld dword [0x6be9c8]
jmp 0x5f6938
cmp dl, 0x3f
jae 0x5f6924
movzx edx, dl
mov eax, 0x3f
sub eax, edx
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x6be9d4]
fchs
jmp 0x5f6938
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 0x5f6968
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, 0x983b98
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.005d68e0
mov eax, dword [esp]
mov ecx, 0x983b98
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.005d68b0
mov ecx, 0x983b98
push dword [esp + 0x3c]
call fcn.005d65c0
mov eax, dword [esp]
mov byte [eax + 0x54], 1
mov byte [ebx + 0x54], 1
mov byte [ebx + 0x5c], 0xff
jmp 0x5f69e1
inc byte [esp + 0x28]
mov cl, byte [edi + 3]
cmp byte [esp + 0x28], cl
jb 0x5f6700
inc byte [esp + 0x40]
movzx edx, byte [edi + 0x74]
mov al, byte [esp + 0x40]
cmp al, byte [edi + edx + 0x14ee]
jb 0x5f6674
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 0x5f649e