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

Disassembly:
mov eax, dword [ebp - 4]
test al, 4
lea edx, [esi + 0xc]
jne 0x1007bde2
mov edx, esi
test al, 2
lea ecx, [esi + 0xc]
jne 0x1007bdeb
mov ecx, esi
test al, 1
lea eax, [esi + 0xc]
jne 0x1007bdf4
mov eax, esi
fld dword [eax]
mov eax, dword [ebp]
test al, 4
fstp dword [esp + 0x28]
fld dword [ecx + 4]
fstp dword [esp + 0x2c]
fld dword [edx + 8]
lea edx, [esi + 0xc]
fstp dword [esp + 0x30]
jne 0x1007be14
mov edx, esi
test al, 2
lea ecx, [esi + 0xc]
jne 0x1007be1d
mov ecx, esi
test al, 1
lea eax, [esi + 0xc]
jne 0x1007be26
mov eax, esi
mov edx, dword [edx + 8]
mov ecx, dword [ecx + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x50]
call fcn.10088f3a
mov eax, dword [ebp + 4]
test al, 4
lea edx, [esi + 0xc]
jne 0x1007be46
mov edx, esi
test al, 2
lea ecx, [esi + 0xc]
jne 0x1007be4f
mov ecx, esi
test al, 1
lea eax, [esi + 0xc]
jne 0x1007be58
mov eax, esi
mov edx, dword [edx + 8]
mov ecx, dword [ecx + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.10088f6c
mov eax, dword [ebp + 8]
test al, 4
lea edx, [esi + 0xc]
jne 0x1007be78
mov edx, esi
test al, 2
lea ecx, [esi + 0xc]
jne 0x1007be81
mov ecx, esi
test al, 1
lea eax, [esi + 0xc]
jne 0x1007be8a
mov eax, esi
mov edx, dword [edx + 8]
mov ecx, dword [ecx + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.10088f9e
lea ecx, [esp + 0x14]
call fcn.10088047
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0xe0]
push edx
lea ecx, [esp + 0x44]
call fcn.100895b5
push eax
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x58]
call fcn.100895d4
mov ecx, eax
call fcn.10094deb
mov ecx, eax
call fcn.100d8532
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 8]
push ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x20], eax
call fcn.10094df4
fchs
fstp dword [esp + 0x20]
lea edi, [ebx + 0xc]
fld dword [esp + 0x1c]
fmul dword [edi + 8]
fld dword [esp + 0x18]
fmul dword [edi + 4]
faddp st(1)
fld dword [esp + 0x14]
fmul dword [edi]
faddp st(1)
fcomp dword [0x10100498]
fnstsw ax
test ah, 1
je 0x1007c319
fld dword [esp + 0x20]
push ebx
fsub dword [esp + 0x174]
lea ecx, [esp + 0x18]
fstp dword [esp + 0x24]
call fcn.10094e3f
fadd dword [esp + 0x20]
push edi
lea ecx, [esp + 0x18]
fstp dword [esp + 0x38]
call fcn.10094e51
fdivr dword [esp + 0x34]
mov edx, dword [esp + 0x24]
fchs
fst dword [esp + 0x34]
fcomp dword [edx]
fnstsw ax
test ah, 0x41
je 0x1007c339
fld dword [esp + 0x1c]
push ecx
fadd dword [esp + 0x34]
fstp dword [esp]
push ecx
fld dword [esp + 0x20]
fadd dword [esp + 0x34]
fstp dword [esp]
push ecx
fld dword [esp + 0x20]
lea ecx, [esp + 0x94]
fadd dword [esp + 0x34]
fstp dword [esp]
call fcn.100890bc
lea ecx, [esp + 0x5c]
call 0x10088165
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x164]
push edx
lea ecx, [esp + 0x34]
call fcn.100896d6
add byte [eax - 0x73], dl
test byte [eax + edi*8], ah
add byte [eax], al
add byte [eax - 0x73], dl
mov word [esp + edx*4], fs
add byte [eax], al
add byte [ecx - 0x73], dl
xchg esp, eax
and al, 0x60
add dword [eax], eax
add byte [edx - 0x73], dl
dec esp
and al, 0x58
call fcn.100896f8
mov ecx, eax
call fcn.10094f0f
mov ecx, eax
call fcn.100d8656
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax + 4]
lea ecx, [esp + 0x88]
and al, 0x88
add byte [eax], al
add byte [ecx - 0x749fdbac], cl
inc eax
or byte [ecx - 0x73], dl
dec esp
and al, 0x60
mov dword [esp + 0x68], eax
call fcn.10094f1b
fchs
fstp dword [esp + 0x68]
push ecx
fld dword [esp + 0x50]
fadd dword [esp + 0x20]
fstp dword [esp]
push ecx
fld dword [esp + 0x50]
fadd dword [esp + 0x20]
fstp dword [esp]
push ecx
fld dword [esp + 0x20]
lea ecx, [esp + 0xa0]
fadd dword [esp + 0x50]
fstp dword [esp]
call fcn.10089171
lea ecx, [esp + 0x6c]
call fcn.1008821a
lea edx, [esp + 0x108]
push edx
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x140]
push ecx
lea ecx, [esp + 0x50]
call fcn.1008978b
push eax
lea edx, [esp + 0x128]
push edx
lea eax, [esp + 0xa0]
lea ecx, [esp + 0xf0]
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.100897ad
mov ecx, eax
call fcn.10094fc4
mov ecx, eax
call fcn.100d870b
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 8]
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x78], edx
call fcn.10094fd0
fchs
fstp dword [esp + 0x78]
push ecx
fld dword [esp + 0x44]
fadd dword [esp + 0x20]
fstp dword [esp]
push ecx
fld dword [esp + 0x44]
fadd dword [esp + 0x20]
fstp dword [esp]
push ecx
fld dword [esp + 0x20]
lea ecx, [esp + 0xcc]
fadd dword [esp + 0x44]
fstp dword [esp]
call fcn.10089226
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0xac]
add byte [eax], al
add al, ch
push eax
ret
pop es
add cl, bl
inc esp
and al, 0x58
fadd dword [esp + 0x1c]
push ecx
fstp dword [esp]
push ecx
fld dword [esp + 0x5c]
fadd dword [esp + 0x20]
fstp dword [esp]
push ecx
fld dword [esp + 0x5c]
lea ecx, [esp + 0xd8]
fadd dword [esp + 0x20]
fstp dword [esp]
call fcn.10089274
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0xbc]
call fcn.100f84e2
mov edi, dword [esp + 0x34]
push edi
lea ecx, [esp + 0x80]
push ecx
mov ecx, ebx
call fcn.100de3d6
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0x60]
call fcn.10095094
fadd dword [esp + 0x68]
fcomp dword [0x10100498]
fnstsw ax
test ah, 1
jne 0x1007c24b
invalid
add byte [eax], 0
invalid
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x70]
call fcn.100950b7
fadd dword [esp + 0x78]
fcomp dword [0x10100498]
cwde
add al, 0x10
invalid
fnstsw ax
test ah, 1
jne 0x1007c24b
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0xa4]
call fcn.100950d9
fadd dword [esp + 0xac]
fcomp dword [0x10100498]
fnstsw ax
test ah, 1
jne 0x1007c24b
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0xb4]
call fcn.100950fe
fadd dword [esp + 0xbc]
fcomp dword [0x10100498]
add al, 0x10
invalid
fnstsw ax
test ah, 1
jne 0x1007c24b
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.100f7172
or byte [esp + 0x12], al
jmp 0x100f8564
fld dword [esp + 0x170]
fcomp dword [0x10100498]
fnstsw ax
test ah, 0x41
jne 0x1007c319
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x170]
push ecx
push edi
push ebx
lea edx, [esp + 0xbc]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.100f79dd
mov dl, al
mov eax, dword [esp + 0x24]
push eax
push edi
push ebx
lea ecx, [esp + 0xac]
push ecx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x64]
push ecx
lea eax, [esp + 0x50]
push eax
mov bl, dl
call fcn.100f7a04
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x16c]
push ecx
push edi
push edx
or bl, al
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.100f7a2d
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x16c]
push ecx
push edi
push edx
or bl, al
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.100f7a56
or bl, al
mov al, byte [esp + 0x12]
or al, bl
mov ebx, dword [esp + 0x16c]
mov byte [esp + 0x12], al
add ebp, 0x10
cmp ebp, 0x10112c30
jl 0x1007bdd6
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x158
ret 0xc
or al, bl
or eax, 0x10103c48
fst dword [ebp - 4]
fsub dword [0x101004b0]
fstp qword [ebp - 0xc]
fld qword [ebp - 0xc]
fistp dword [ebp + 8]
mov eax, dword [ebp + 8]
shl eax, 2
fld dword [eax + 0x1012a684]
lea ecx, [eax + 0x1012a680]
fsub dword [ecx]
fild dword [ebp + 8]
fsubr dword [ebp - 4]
fmulp st(1)
fadd dword [ecx]
leave
ret