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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x30]
mov ebx, dword [eax + edx*4]
push edi
mov edi, dword [eax + ecx*4]
mov eax, dword [ebx + 4]
mov dword [ebp + 0x10], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 4]
test al, 1
mov dword [ebp - 0xc], ebx
je 0x5f2f32
test ah, 0x10
jne 0x5f2f32
mov eax, dword [edi]
mov ecx, eax
and ecx, 0x1f
mov dword [ebp - 4], ecx
mov ecx, dword [ebx]
mov edx, ecx
and edx, 0x40
mov dword [ebp + 0xc], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx]
and edx, 0xfff00000
cmp edx, 0x10000000
mov dword [ebp - 8], edx
jne 0x5f28f0
or ecx, dword [ebp - 4]
mov dword [ebx], ecx
mov eax, dword [ebp + 0x10]
jmp 0x5f2f2f
and eax, 0x60
or eax, ecx
mov ecx, 0xe000000
test ecx, eax
mov dword [ebx], eax
jne 0x5f2933
cmp edx, 0x10100000
je 0x5f2928
cmp edx, 0x10300000
je 0x5f2928
cmp edx, 0x10400000
je 0x5f2928
cmp edx, 0x10d00000
je 0x5f2928
cmp edx, 0x10e00000
jne 0x5f2933
mov edx, dword [edi]
and edx, ecx
or edx, eax
mov dword [ebx], edx
mov edx, dword [ebp - 8]
cmp edx, 0x10100000
push 4
pop eax
je 0x5f2999
cmp edx, 0x10300000
je 0x5f2962
cmp edx, 0x10400000
je 0x5f295e
cmp edx, 0x10500000
je 0x5f295e
cmp edx, 0x10700000
jne 0x5f29b4
or dword [ebx], eax
jmp 0x5f29b4
test byte [ebp - 4], al
je 0x5f2991
test byte [ebp - 4], 8
je 0x5f2991
cmp dword [ebp + 0xc], 0
jne 0x5f295e
push 0x6bef08
push 0xfa1
mov eax, dword [ebp + 8]
push dword [eax + 0x3c]
push esi
call fcn.005ef6b2
add esp, 8
jmp 0x5f2f1c
mov eax, dword [ebp - 4]
and eax, 0xc
jmp 0x5f295e
mov ecx, dword [ebp - 4]
shr ecx, 1
and ecx, eax
mov eax, dword [ebp - 4]
and eax, 4
shl eax, 1
or ecx, eax
mov eax, dword [ebp - 4]
and eax, 0xfffffff3
or ecx, eax
or dword [ebx], ecx
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 4]
test ch, 1
je 0x5f2bfe
cmp dword [edi + 8], 0xffffffff
jne 0x5f2bfe
mov eax, 0x10800000
cmp edx, eax
ja 0x5f2b17
je 0x5f2b0d
cmp edx, 0x10100000
je 0x5f2b03
cmp edx, 0x10300000
je 0x5f2ae3
cmp edx, 0x10400000
je 0x5f2ab5
cmp edx, 0x10500000
je 0x5f2aa2
cmp edx, 0x10600000
je 0x5f2a55
cmp edx, 0x10700000
jne 0x5f2f32
cmp dword [ebp + 0xc], 0
jne 0x5f2a4b
fldz
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 0x41
jne 0x5f2a4b
push 0x6bef1c
push 0xfa3
jmp 0x5f2bd3
fld qword [edi + 0x20]
fsqrt
jmp 0x5f2c9d
cmp dword [ebp + 0xc], 0
jne 0x5f2a6f
fld qword [edi + 0x20]
fcomp qword [0x692b10]
fnstsw ax
test ah, 0x44
jnp 0x5f2f32
fldz
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 0x41
jne 0x5f2a8a
push 0x6c7dc0
push 0xfa2
jmp 0x5f2bd3
fldln2
fld qword [edi + 0x20]
fyl2x
fldln2
fld qword [0x6a1a60]
fyl2x
fdivp st(1)
jmp 0x5f2c9d
fld qword [0x6a1a60]
fld qword [edi + 0x20]
call fcn.006760b0
jmp 0x5f2c9d
fld qword [edi + 0x20]
push ecx
push ecx
fstp qword [esp]
call fcn.006788e2
test eax, eax
pop ecx
pop ecx
je 0x5f2c9b
fld qword [edi + 0x20]
push ecx
push ecx
fstp qword [esp]
call fcn.00674fc0
fsubr qword [edi + 0x20]
pop ecx
pop ecx
jmp 0x5f2c9d
cmp dword [ebp + 0xc], 0
jne 0x5f2af9
fldz
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 0x44
jnp 0x5f2c9b
fld1
fdiv qword [edi + 0x20]
jmp 0x5f2c9d
fld qword [edi + 0x20]
fchs
jmp 0x5f2c9d
fld qword [edi + 0x20]
fsin
jmp 0x5f2c9d
cmp edx, 0x10900000
je 0x5f2bf4
cmp edx, 0x10a00000
je 0x5f2ba3
cmp edx, 0x10b00000
je 0x5f2b64
cmp edx, 0x10c00000
je 0x5f2b58
cmp edx, 0x10d00000
je 0x5f2c9b
cmp edx, 0x10e00000
jne 0x5f2f32
jmp 0x5f2c9b
fld qword [edi + 0x20]
fld1
fpatan
jmp 0x5f2c9d
cmp dword [ebp + 0xc], 0
jne 0x5f2b96
fld qword [edi + 0x20]
fcomp qword [0x6bef98]
fnstsw ax
test ah, 5
jnp 0x5f2b8a
fld qword [edi + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x41
jne 0x5f2b96
push 0x6c7da8
push 0xfa6
jmp 0x5f2bd3
fld qword [edi + 0x20]
call fcn.00676590
jmp 0x5f2c9d
cmp dword [ebp + 0xc], 0
jne 0x5f2be7
fld qword [edi + 0x20]
fcomp qword [0x6bef98]
fnstsw ax
test ah, 5
jnp 0x5f2bc9
fld qword [edi + 0x20]
fcomp qword [0x699e80]
fnstsw ax
test ah, 0x41
jne 0x5f2be7
push 0x6c7d94
push 0xfa5
mov eax, dword [ebp + 8]
push dword [eax + 0x3c]
push esi
call fcn.005ef6b2
add esp, 0x10
jmp 0x5f2c9b
fld qword [edi + 0x20]
call fcn.00675e80
jmp 0x5f2c9d
fld qword [edi + 0x20]
fcos
jmp 0x5f2c9d
mov al, byte [ebp - 4]
test al, 1
je 0x5f2c1d
cmp edx, 0x10400000
je 0x5f2c9b
cmp edx, 0x10700000
je 0x5f28e8
test al, 2
je 0x5f2c29
cmp edx, 0x10400000
je 0x5f2c9b
test al, 8
je 0x5f2c86
cmp edx, 0x10600000
je 0x5f2c56
cmp edx, 0x10700000
jne 0x5f2c86
cmp dword [ebp + 0xc], 0
jne 0x5f2f32
push 0x6bef1c
push 0xfa3
jmp 0x5f297d
cmp dword [ebp + 0xc], 0
jne 0x5f2f32
test al, 4
jne 0x5f2f32
mov eax, dword [ebp + 8]
push 0x6c7dc0
push 0xfa2
push dword [eax + 0x3c]
push esi
call fcn.005ef6b2
add esp, 0x10
jmp 0x5f2f32
test ch, 2
je 0x5f2ca4
cmp edx, 0x10d00000
je 0x5f2c9b
cmp edx, 0x10e00000
jne 0x5f2ca4
fldz
push ecx
push ecx
jmp 0x5f2f1e
cmp dword [ebp + 0xc], 0
jne 0x5f2f32
test cl, 2
je 0x5f2f32
cmp edx, 0x10100000
jne 0x5f2d4c
mov ecx, dword [esi + 0x18]
mov eax, dword [edi + 0x44]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax]
mov ecx, 0xfff00000
and edx, ecx
cmp edx, 0x10100000
je 0x5f2d3d
mov edx, dword [ebp - 8]
cmp edx, 0x10300000
jne 0x5f2d00
mov edx, dword [esi + 0x18]
mov eax, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov edx, dword [eax]
and edx, ecx
cmp edx, 0x10300000
je 0x5f2d3d
mov edx, dword [ebp - 8]
cmp edx, 0x10500000
jne 0x5f2d20
mov edx, dword [esi + 0x18]
mov eax, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov edx, dword [eax]
and edx, ecx
cmp edx, 0x10600000
je 0x5f2d3d
mov edx, dword [ebp - 8]
cmp edx, 0x10600000
jne 0x5f2d92
mov edx, dword [esi + 0x18]
mov eax, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov edx, dword [eax]
and edx, ecx
cmp edx, 0x10500000
jne 0x5f2d8f
and dword [ebp + 8], 0
cmp dword [eax + 0xc], 0
jbe 0x5f2d6e
mov ecx, dword [eax + 0x10]
jmp 0x5f2d56
mov ecx, 0xfff00000
jmp 0x5f2ce0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp dword [ecx], edx
je 0x5f2d6e
inc dword [ebp + 8]
add ecx, 4
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0xc]
jb 0x5f2d53
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0xc]
jae 0x5f2d8a
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x30]
jmp 0x5f2f2f
mov ecx, 0xfff00000
mov edx, dword [ebp - 8]
cmp edx, 0x10700000
jne 0x5f2e06
mov edx, dword [esi + 0x18]
mov eax, dword [edi + 0x44]
mov eax, dword [edx + eax*4]
mov edx, dword [eax]
and edx, ecx
cmp edx, 0x20500000
jne 0x5f2e03
mov edx, dword [eax + 0xc]
and dword [ebp + 8], 0
test edx, edx
jbe 0x5f2e03
mov ecx, edx
shl ecx, 2
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov ebx, dword [ebp + 0x10]
shl edx, 2
cmp dword [ecx + edx], ebx
jne 0x5f2dec
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx]
mov ebx, dword [ebp + 0xc]
cmp edx, dword [ecx + ebx]
jne 0x5f2dec
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx + edx*4]
test byte [ecx], 4
jne 0x5f2e3a
inc dword [ebp + 8]
mov ecx, dword [ebp + 8]
add dword [ebp + 0xc], 4
cmp ecx, dword [eax + 0xc]
jb 0x5f2dc2
mov ebx, dword [ebp - 0xc]
mov ecx, 0xfff00000
mov edx, dword [ebp - 8]
cmp edx, 0x10500000
jne 0x5f2f32
mov edx, dword [edi + 0x44]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + edx*4]
mov edx, dword [eax]
and edx, ecx
cmp edx, 0x20500000
jne 0x5f2f32
and dword [ebp + 8], 0
cmp dword [eax + 0xc], 0
jbe 0x5f2e72
mov edx, dword [eax + 0x10]
jmp 0x5f2e5a
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x30]
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x30], eax
jmp 0x5f2f32
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
cmp dword [edx], edi
je 0x5f2e72
inc dword [ebp + 8]
add edx, 4
mov dword [ebp + 0xc], edx
mov edx, dword [ebp + 8]
cmp edx, dword [eax + 0xc]
jb 0x5f2e57
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
and dword [ebp + 0xc], 0
shl edx, 2
mov dword [ebp - 4], edx
mov edx, dword [ebp + 8]
shl edx, 2
mov dword [ebp - 0xc], edx
add eax, edx
mov edi, dword [esi + 0x14]
mov edx, dword [eax]
mov edx, dword [edi + edx*4]
mov edi, dword [edx + 4]
mov dword [ebp + 8], edx
mov edx, dword [esi + 0x10]
mov edx, dword [edx + edi*4]
test byte [edx + 4], 2
je 0x5f2f08
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x44]
mov edx, dword [esi + 0x18]
mov edx, dword [edx + edi*4]
mov edi, dword [edx]
and edi, ecx
cmp edi, 0x10600000
mov dword [ebp + 0x10], edx
jne 0x5f2f08
and dword [ebp + 8], 0
cmp dword [edx + 0xc], 0
jbe 0x5f2eed
mov edx, dword [edx + 0x10]
mov edi, dword [ebp - 0xc]
mov edx, dword [edi + edx]
mov dword [ebp - 8], edx
mov edx, dword [ebp - 8]
cmp edx, dword [eax]
mov edx, dword [ebp + 0x10]
je 0x5f2eed
inc dword [ebp + 8]
mov edi, dword [ebp + 8]
cmp edi, dword [edx + 0xc]
jb 0x5f2ed8
mov edx, dword [edx + 8]
mov edi, dword [ebp + 8]
mov edi, dword [edx + edi*4]
mov edx, dword [esi + 0x14]
mov edx, dword [edx + edi*4]
mov edx, dword [edx]
test dl, 4
je 0x5f2f08
test dl, 8
jne 0x5f2f1a
inc dword [ebp + 0xc]
add eax, dword [ebp - 4]
cmp dword [ebp + 0xc], 2
jb 0x5f2e8d
jmp 0x5f2f32
push ecx
push ecx
fldz
fstp qword [esp]
push 0
push 0
push dword [esi + 0x78]
mov ecx, esi
call fcn.005ebc23
mov dword [ebx + 0x30], eax
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0xc