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

Disassembly:
sub esp, 0x84
mov ecx, dword [eax + 8]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x8c]
push ebx
push ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
mov ebp, dword [ecx + 8]
mov dword [esp + 0x6c], eax
mov eax, dword [edx + 8]
push esi
mov esi, dword [esp + 0xbc]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 4]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
mov dword [esp + 0x64], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0x18]
add ecx, 3
push edi
mov edi, dword [eax]
mov al, byte [esi + 0xc]
mov dword [esp + 0x7c], edx
xor edx, edx
sar ecx, 2
cmp ecx, edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x90], edi
mov byte [esp + 0x12], al
mov dword [esp + 0x88], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], edx
jle 0x1000ccce
mov eax, dword [esp + 0xbc]
fld dword [esp + 0xa4]
fld dword [esp + 0xa0]
add eax, eax
fldz
add eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x58], eax
lea eax, [ecx - 1]
cmp edx, eax
jge 0x1000c93e
mov dword [esp + 0x44], 4
jmp 0x1000c957
lea eax, [ecx*4]
mov edi, eax
mov eax, dword [esp + 0xac]
sub eax, edi
add eax, 4
mov dword [esp + 0x44], eax
cmp dword [esp + 0xa8], 0
mov edi, dword [esp + 0x54]
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], 0
jle 0x1000cca8
mov edx, dword [esp + 0x54]
add edx, 8
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x74]
lea edi, [ebp + 4]
sub edx, ebp
mov ecx, 0x1c
sub ecx, dword [esp + 0x20]
mov ebp, 0xfffffffc
sub ebp, dword [esp + 0x5c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], ebp
jmp 0x1000c9b9
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
mov edx, dword [esp + 0x70]
mov edx, dword [edx + edi]
shr edx, cl
mov dword [esp + 0x48], eax
and edx, 0xf
mov dword [esp + 0x60], edx
je 0x1000cc75
mov eax, dword [edi]
shr eax, cl
and eax, 0xf
mov dword [esp + 0x6c], eax
xor eax, eax
cmp dword [esp + 0x44], eax
mov dword [esp + 0x28], eax
jle 0x1000cc75
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x20]
add ebp, edi
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x2c]
add ecx, ebp
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], ecx
cmp byte [eax + edx*4 + 0x1009b618], 0
je 0x1000cc43
mov edx, dword [esp + 0x6c]
cmp byte [eax + edx*4 + 0x1009b618], 0
je 0x1000ca46
mov eax, 0x10
jmp 0x1000caa3
mov edx, dword [esi*4 + 0x1009b500]
mov ecx, dword [esi*4 + 0x1009b580]
mov eax, edx
and eax, dword [esp + 0x8c]
mov ebp, edx
and ebp, dword [esp + 0x4c]
and edx, dword [esp + 0x48]
shr eax, cl
shr ebp, cl
shr edx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, ebp
add eax, eax
add eax, eax
add eax, eax
or eax, edx
cmp esi, 0x1f
jne 0x1000ca84
add eax, eax
mov edx, dword [esp + 0xb0]
xor ecx, ecx
cmp dword [edx + eax*4], ecx
mov edx, 0x80000000
setne cl
add ecx, 0xe
mov eax, ecx
mov ecx, esi
shr edx, cl
or dword [edi], edx
mov edx, dword [esp + 0x84]
mov ecx, esi
mov edi, 0x80000000
shr edi, cl
mov ecx, dword [esp + 0x64]
or dword [ecx + edx + 4], edi
mov ecx, dword [esp + 0x7c]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
add edi, eax
add esi, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x10089b00]
mov ebp, eax
mov ecx, ebx
shr ebp, 0x10
shr ecx, 0x10
cmp ecx, ebp
jb 0x1000cb35
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0xffff0000
sub ecx, ebp
sub ebx, edx
test ecx, 0x8000
mov dword [esp + 0x18], ecx
je 0x1000cb07
cmp byte [esi], 0
setne dl
jmp 0x1000cbd9
cmp ecx, ebp
jb 0x1000cb16
cmp byte [esi], 0
setne dl
shr eax, 8
jmp 0x1000cb6f
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x13]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
mov dl, byte [esp + 0x13]
and al, 0x7f
jmp 0x1000cb6b
lea ecx, [ebp + ebp]
cmp dword [esp + 0x18], ecx
jae 0x1000cb4a
cmp byte [esi], 0
setne dl
shr eax, 8
jmp 0x1000cb67
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x13]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
mov dl, byte [esp + 0x13]
and al, 0x7f
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x18]
mov byte [edi], al
cmp dword [esp + 0x14], 0
jne 0x1000cbc4
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x68]
je 0x1000cbb6
mov al, byte [esi]
add esi, 1
cmp byte [esp + 0x12], 0xff
mov dword [esp + 0x24], esi
mov byte [esp + 0x12], al
je 0x1000cba0
movzx eax, al
shl eax, 8
add ebx, eax
jmp 0x1000cbbc
cmp al, 0x8f
ja 0x1000cbb6
movzx eax, al
shl eax, 9
add ebx, eax
mov dword [esp + 0x14], 7
jmp 0x1000cbc4
add ebx, 0xff00
mov dword [esp + 0x14], 8
sub dword [esp + 0x14], 1
add ecx, ecx
add ebx, ebx
test ecx, 0x8000
je 0x1000cb71
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0xb4]
fcom dword [ecx + esi]
mov edi, dword [esp + 0x38]
movzx edx, dl
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0xb8]
jp 0x1000cc18
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul st(2)
fadd dword [ecx + esi]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [ecx + esi]
fadd st(3)
jmp 0x1000cc34
fld dword [ecx + esi]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [ecx + esi]
fsub st(3)
mov esi, dword [esp + 0x3c]
fstp dword [ecx + eax]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
add dword [esp + 0x34], ecx
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], esi
jl 0x1000ca23
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0xc0]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x30], 4
add eax, 1
add edi, 4
cmp eax, dword [esp + 0xa8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edi
jl 0x1000c9b5
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
add dword [esp + 0x20], 4
add dword [esp + 0x40], eax
add edx, 1
cmp edx, ecx
mov dword [esp + 0x50], edx
jl 0x1000c92d
mov edi, dword [esp + 0x24]
fstp st(2)
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x12]
mov eax, dword [esp + 0x14]
mov dword [esi + 8], ecx
mov byte [esi + 0xc], dl
mov edx, dword [esi + 0x14]
mov ecx, edi
sub ecx, dword [esp + 0x90]
mov dword [esi + 4], ebx
mov dword [esi + 0x10], eax
mov dword [edx + 8], ecx
mov eax, dword [esi + 0x14]
mov dword [eax], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret