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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf8
push esi
push edi
mov eax, dword [ebx]
fld qword [0x7d1ee8]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x78], ecx
lea ecx, [ebx + 0x38]
mov dword [esp + 0x9c], eax
xor eax, eax
mov esi, dword [ebx + 8]
mov edx, dword [esi + 0x2c]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
fstp qword [ebx + 0x50]
mov dword [esp + 0xb0], 0xffffffff
mov al, byte [esi + 0x20]
mov dword [esp + 0x8c], ecx
not al
movzx ecx, al
mov eax, dword [esi + 0x44]
and ecx, 8
shl ecx, 4
or ecx, 3
mov dword [esp + 0xa4], esi
mov dword [esp + 0x7c], edx
mov dword [esp + 0xb4], ecx
mov edi, 1
test eax, eax
je 0x5efd4b
mov dword [esp + 0x38], eax
mov dword [esp + 0xa0], 0xffffcfff
mov dword [esp + 0x88], ecx
jmp 0x5efddd
push 0x30
lea ecx, [esp + 0xd4]
push 0
push ecx
call fcn.00566330
lea eax, [esp + 0xd4]
mov dword [esp + 0xe4], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x1c]
add esp, 0xc
lea edx, [esp + 0xb0]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edi
test byte [esi + 0x24], 1
mov dword [esp + 0xf4], edi
mov dword [esp + 0xd4], edx
mov byte [esp + 0xfc], 5
mov dword [esp + 0xdc], eax
jne 0x5efdb8
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 8]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xd0]
mov dword [esp + 0xa0], 0xfff0ffff
mov dword [esp + 0x88], 3
mov dword [esp + 0x38], 0
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x5efdec
mov edx, dword [ecx]
jmp 0x5efdee
xor edx, edx
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x94], edx
test ecx, ecx
je 0x5efe1c
mov esi, dword [ebx + 0x34]
imul ecx, ecx, 0x58
movzx ecx, word [ecx + esi - 0x52]
cmp ecx, edx
mov dword [esp + 0x98], ecx
setl byte [esp + 0x2f]
mov byte [esp + 0x2e], 0
jmp 0x5efe37
test edx, edx
setg byte [esp + 0x2f]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x98], 0
setne byte [esp + 0x2e]
test eax, eax
je 0x5f0617
mov esi, dword [esp + 0x44]
fld1
mov ecx, dword [esi + 8]
fstp qword [esp + 0xc0]
mov dl, byte [esp + 0x2f]
xor eax, eax
mov dword [esp + 0x84], ecx
mov cl, byte [esp + 0x2e]
mov byte [esp + 0x37], dl
mov dx, word [esp + 0x98]
xor edi, edi
cmp dword [esi + 0x24], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x90], eax
mov byte [esp + 0x3f], cl
mov byte [esp + 0x3e], al
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov word [esp + 0x4e], dx
mov word [esp + 0x4c], di
jle 0x5eff68
mov ecx, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x88]
push edx
mov edx, dword [ebx + 0x14]
push ecx
mov ecx, dword [ebx + 0x10]
push edx
mov edx, dword [esp + 0x88]
push ecx
push eax
mov eax, dword [esp + 0x8c]
push edx
push eax
call fcn.005ef540
add esp, 0x1c
test eax, eax
je 0x5eff68
movzx ecx, word [eax + 0x10]
or dword [esp + 0x48], 0x11000
test cl, 1
je 0x5effd9
mov ecx, dword [eax]
mov dx, word [ecx + 2]
or dword [esp + 0x48], 0x40000
mov esi, 0x800
and dx, si
cmp dx, si
jne 0x5effba
mov ecx, dword [esp + 0x40]
imul ecx, ecx, 0x19
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], 1
mov esi, dword [esp + 0x44]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
or dword [esp + 0x6c], eax
or dword [esp + 0x68], edx
inc di
movzx eax, di
cmp eax, dword [esi + 0x24]
mov word [esp + 0x4c], di
jl 0x5efec4
mov eax, dword [esi + 0x24]
movzx ecx, di
mov dword [esp + 0x74], ecx
cmp ecx, eax
jne 0x5effee
cmp byte [esi + 0x2c], 0
je 0x5effee
test dword [esp + 0x48], 0xc0000
jne 0x5f00e8
mov eax, dword [ebx + 0x2c]
or dword [esp + 0x48], 0x2000000
test eax, eax
je 0x5effad
mov ecx, dword [ebx + 0x34]
imul eax, eax, 0x58
test dword [eax + ecx - 0x58], 0x4000000
je 0x5f00e8
or dword [esp + 0x48], 0x4000000
jmp 0x5f00e8
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x5eff43
mov ecx, dword [ecx]
test ecx, ecx
je 0x5eff43
imul ecx, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
jmp 0x5eff43
test cl, cl
jns 0x5eff47
or dword [esp + 0x48], 0x80000
jmp 0x5eff47
cmp byte [esi + 0x2e], 0
jne 0x5f00e8
cmp ecx, eax
jne 0x5f0001
or edi, 0xffffffff
jmp 0x5f0007
mov edx, dword [esi + 4]
mov edi, dword [edx + ecx*4]
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
push eax
mov eax, dword [esp + 0x80]
push 0x3c
push ecx
mov ecx, dword [esp + 0x84]
push edx
push edi
push eax
push ecx
call fcn.005ef540
add esp, 0x1c
test eax, eax
je 0x5f00e8
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push edx
mov edx, dword [esp + 0x80]
push 0x18
push eax
mov eax, dword [esp + 0x84]
push ecx
push edi
push edx
push eax
call fcn.005ef540
mov ecx, dword [esp + 0x54]
mov edx, dword [ebx + 0x14]
push ecx
mov ecx, dword [esp + 0x9c]
push 0x24
push edx
mov edx, dword [esp + 0xa0]
mov esi, eax
mov eax, dword [ebx + 0x10]
push eax
push edi
push ecx
push edx
call fcn.005ef540
mov ecx, eax
push esi
push ecx
lea eax, [esp + 0x100]
call fcn.005d3630
add esp, 0x40
test esi, esi
je 0x5f00bb
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
or dword [esp + 0x48], 0x100000
or dword [esp + 0x68], eax
or dword [esp + 0x6c], edx
mov dword [esp + 0x90], 1
test ecx, ecx
je 0x5f00dc
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
inc dword [esp + 0x90]
or dword [esp + 0x48], 0x200000
or dword [esp + 0x68], eax
or dword [esp + 0x6c], ecx
or dword [esp + 0x48], 0x22000
mov esi, dword [esp + 0x44]
cmp byte [esp + 0x2f], 0
mov edi, dword [esp + 0xa4]
je 0x5f0169
test byte [edi + 0x20], 8
jne 0x5f0169
mov eax, dword [esp + 0x7c]
lea edx, [esp + 0x80]
push edx
push eax
push esi
push ebx
mov dword [esp + 0x90], 2
call fcn.005ef980
mov word [esp + 0x5e], ax
movzx eax, ax
add esp, 0x10
cmp dword [esp + 0x98], eax
jl 0x5f0139
test dword [esp + 0x48], 0x4000000
je 0x5f0141
or dword [esp + 0x48], 0x800000
cmp dword [esp + 0x94], eax
jne 0x5f0157
or dword [esp + 0x48], 0x22000
mov byte [esp + 0x37], 0
test byte [esp + 0x80], 1
je 0x5f0169
or dword [esp + 0x48], 0x1000000
cmp byte [esp + 0x2e], 0
je 0x5f01af
mov ecx, dword [esp + 0x74]
mov edx, dword [ebx + 0x24]
mov eax, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0xa4]
push eax
push esi
push ecx
push edx
call fcn.005ef730
add esp, 0x18
test eax, eax
je 0x5f01af
test dword [esp + 0x48], 0x40000
jne 0x5f01af
or dword [esp + 0x48], 0x40022000
mov byte [esp + 0x3f], 0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x5f0231
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0xac], edx
test eax, eax
jle 0x5f0212
mov edi, dword [ecx + 4]
mov dword [esp + 0x80], eax
mov ecx, dword [edi]
cmp ecx, 0x3f
jge 0x5f0205
mov eax, 1
xor edx, edx
call fcn.006f5e10
not eax
and dword [esp + 0xa8], eax
not edx
and dword [esp + 0xac], edx
add edi, 4
sub dword [esp + 0x80], 1
jne 0x5f01e0
mov eax, dword [esp + 0xa8]
or eax, dword [esp + 0xac]
jne 0x5f022c
or dword [esp + 0x48], 0x400000
jmp 0x5f0231
mov byte [esp + 0x3e], 1
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x74]
mov ecx, dword [eax + ecx*4]
mov edx, ecx
imul edx, dword [esp + 0x40]
mov dword [esp + 0x80], edx
fild dword [esp + 0x80]
test edx, edx
jge 0x5f025e
fadd qword [0x7cb3d8]
cmp dword [esp + 0x30], 0
je 0x5f02c2
mov eax, dword [esp + 0x84]
fld st(0)
mov edx, dword [eax]
fadd st(1)
mov eax, edx
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jge 0x5f0286
fadd qword [0x7cb3d8]
fcompp
fnstsw ax
test ah, 5
jp 0x5f02c2
shr edx, 1
fstp st(0)
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
test edx, edx
jge 0x5f02a5
fadd qword [0x7cb3d8]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
test ecx, ecx
jge 0x5f02b7
fadd qword [0x7cb3d8]
fdivr st(1)
call fcn.006f5bf0
mov dword [esp + 0x40], eax
fdiv qword [esp + 0xc0]
fst qword [esp + 0x50]
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x5f02e0
fstp st(1)
fst qword [esp + 0x50]
jmp 0x5f02e2
fstp st(0)
mov ecx, dword [esp + 0x48]
mov edx, ecx
and edx, 0xfe7fffff
cmp edx, 0x400000
jne 0x5f0348
mov eax, dword [esp + 0x78]
test byte [eax + 0x16], 4
jne 0x5f0348
cmp dword [0x85b218], 0
je 0x5f0348
mov edx, dword [esp + 0x9c]
mov eax, dword [edx]
test byte [eax + 0x34], 0x40
jne 0x5f0348
mov edx, dword [esp + 0x84]
mov eax, dword [edx]
lea eax, [eax + eax*2]
add eax, dword [esi + 0x24]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jge 0x5f0339
fadd qword [0x7cb3d8]
or ecx, 0x80020000
mov dword [esp + 0x48], ecx
jmp 0x5f03e3
mov edx, dword [esp + 0x84]
mov eax, dword [edx]
test ecx, 0x100f3000
jne 0x5f039d
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
test eax, eax
jge 0x5f036f
fadd qword [0x7cb3d8]
and ecx, 0xffbfffff
fst qword [esp + 0x60]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x48], ecx
je 0x5f03e7
and ecx, 0xff7fffff
mov dword [esp + 0x48], ecx
mov cx, word [esp + 0x98]
mov word [esp + 0x4e], cx
jmp 0x5f03e7
fstp st(0)
fild dword [edx]
test eax, eax
jge 0x5f03ab
fadd qword [0x7cb3d8]
sub esp, 8
fstp qword [esp]
call fcn.005d35f0
add esp, 8
cmp dword [esp + 0x38], 0
je 0x5f03d7
cmp byte [esp + 0x3e], 0
je 0x5f03d7
fild dword [esp + 0x40]
fld qword [esp + 0x50]
fadd st(1), st(0)
fxch st(1)
fmulp st(2)
jmp 0x5f03df
fimul dword [esp + 0x40]
fld qword [esp + 0x50]
fadd st(1), st(0)
fxch st(1)
fst qword [esp + 0x60]
cmp byte [esp + 0x37], 0
je 0x5f0445
mov cx, word [esp + 0x4e]
fstp st(0)
mov eax, dword [esp + 0x94]
movzx edx, cx
sub eax, edx
mov dword [esp + 0x30], eax
sub esp, 8
fild dword [esp + 0x38]
fmulp st(1)
fidiv dword [esp + 0x9c]
fstp qword [esp]
call fcn.005d35f0
xor edx, edx
add esp, 8
test cx, cx
sete dl
add edx, 2
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmulp st(1)
fld qword [esp + 0x50]
fmul st(1), st(0)
fxch st(1)
fadd qword [esp + 0x60]
fst qword [esp + 0x60]
cmp byte [esp + 0x3f], 0
je 0x5f0472
fstp st(0)
sub esp, 8
fstp qword [esp]
call fcn.005d35f0
fld qword [esp + 0x58]
add esp, 8
fmul st(1), st(0)
fxch st(1)
fmul qword [0x7d1ee0]
fadd qword [esp + 0x60]
fst qword [esp + 0x60]
fld qword [0x7d1ed8]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5f0594
fcomp qword [ebx + 0x50]
fnstsw ax
test ah, 0x41
jp 0x5f0596
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
mov edx, dword [edi + 4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x30], ecx
call fcn.005d3410
fld qword [esp + 0x50]
fld qword [0x7d0af0]
mov dword [esp + 0xb8], eax
mov eax, dword [edi + 0x20]
fld qword [0x7d0900]
mov edi, dword [edi + 0x18]
fld qword [0x7d1ee0]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x30]
lea esi, [eax + 0x10]
jmp 0x5f04ed
fstp st(0)
test edi, edi
je 0x5f0573
test byte [esi + 2], 2
jne 0x5f0552
mov eax, dword [ebx + 0x18]
and eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0x1c]
and ecx, dword [esi + 0x14]
cmp eax, dword [esp + 0xb8]
jne 0x5f0552
cmp ecx, dword [esp + 0xbc]
jne 0x5f0552
movzx eax, word [esi]
test al, 0x83
je 0x5f0533
cmp dword [esp + 0x74], 0
je 0x5f052d
dec dword [esp + 0x74]
jmp 0x5f0552
fxch st(3)
fdiv st(1)
jmp 0x5f0550
test al, 0x3c
je 0x5f0542
test edx, edx
je 0x5f053e
dec edx
jmp 0x5f0552
fdiv st(3), st(0)
jmp 0x5f0552
mov ecx, 0x800
cmp ax, cx
je 0x5f0552
fxch st(3)
fmul st(2)
fxch st(3)
fld qword [0x7d1ed8]
dec edi
fcom st(4)
add esi, 0x28
fnstsw ax
test ah, 5
jnp 0x5f04eb
fstp st(1)
fstp st(1)
fstp st(1)
fxch st(1)
fst qword [esp + 0x50]
jmp 0x5f0585
fstp st(0)
fstp st(0)
fstp st(0)
fst qword [esp + 0x50]
fld qword [0x7d1ed8]
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x5f0594
fstp qword [esp + 0x50]
jmp 0x5f0596
fstp st(0)
cmp dword [esp + 0x38], 0
je 0x5f05a4
cmp dword [esp + 0x48], 0
je 0x5f05da
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x48]
call fcn.005d3360
test eax, eax
je 0x5f05da
mov eax, dword [esp + 0x8c]
mov esi, edx
mov edx, dword [esp + 0xa0]
mov edi, eax
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
and dword [eax], edx
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x48], eax
mov ecx, dword [esp + 0xa4]
cmp dword [ecx + 0x44], 0
jne 0x5f0617
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xa0], 0xffffcfff
mov dword [esp + 0x88], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], eax
test eax, eax
jne 0x5efe3f
cmp dword [ebx + 0x20], 0
jne 0x5f063c
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx]
test dword [edx + 0x18], 0x10000
je 0x5f063c
mov eax, dword [esp + 0x8c]
or dword [eax], 0x1000000
push ebx
call fcn.005f3cb0
add esp, 4
mov edi, ebx
call fcn.005dae80
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
or dword [eax], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret