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

Disassembly:
sub esp, 0x74
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x8c]
push ebx
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 8]
push ebp
mov ebp, dword [esp + 0xac]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x14]
push esi
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], eax
mov al, byte [ebp + 0xc]
add ecx, 3
push edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x80], esi
mov esi, dword [ebp + 0x10]
mov byte [esp + 0x11], al
mov eax, dword [ebp + 0x18]
sar ecx, 2
mov edi, 0
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], edi
je 0x10014e55
fld dword [esp + 0x94]
fld dword [esp + 0x90]
jmp 0x1001491c
mov ecx, dword [esp + 0x5c]
lea eax, [ecx - 1]
cmp edi, eax
jae 0x1001492d
mov dword [esp + 0x30], 4
jmp 0x10014941
lea ecx, [eax*4]
mov eax, dword [esp + 0x9c]
sub eax, ecx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x98], 0
mov eax, dword [esp + 0x38]
mov cl, byte [eax]
mov al, byte [eax + 1]
mov byte [esp + 0x13], al
jbe 0x10014e40
lea ebp, [edi*4]
mov eax, 4
sub eax, ebp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x38]
add eax, 2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
sub eax, edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x38]
sub eax, edx
mov dword [esp + 0x70], eax
or eax, 0xffffffff
lea ebp, [edx + 1]
sub eax, edx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], eax
jmp 0x100149a3
mov cl, byte [esp + 0x12]
mov al, byte [esp + 0x13]
mov dl, cl
mov ecx, dword [esp + 0x40]
movzx ecx, byte [ecx]
mov byte [esp + 0x12], al
mov byte [esp + 0x13], cl
movzx ecx, byte [esp + 0x74]
movzx eax, al
shr eax, cl
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x27], dl
and eax, 0xf
cmp eax, dword [ecx*4 + 0x1009b9d8]
mov dword [esp + 0x6c], eax
je 0x10014e16
mov edi, dword [esp + 0x34]
mov cl, dl
or cl, byte [esp + 0x13]
or cl, byte [esp + 0x12]
cmp edi, 1
mov byte [esp + 0x1b], cl
je 0x100149fa
test cl, 0xf8
jmp 0x100149fd
test cl, 0x1f
je 0x10014e16
add edi, edi
add edi, edi
cmp dword [esp + 0x30], 0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x4c], 0
jbe 0x10014e07
jmp 0x10014a24
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
cmp byte [edx + eax*4 + 0x1009b9f0], 0
jne 0x10014deb
mov al, byte [edi + 0x1009b9b0]
test cl, al
mov byte [esp + 0x26], al
je 0x10014deb
mov ecx, dword [edi*4 + 0x1009b9b8]
movzx edx, byte [esp + 0x27]
movzx ebx, byte [esp + 0x12]
movzx eax, al
and edx, eax
movzx esi, cl
mov ecx, esi
shr edx, cl
and ebx, eax
shr ebx, cl
add edx, edx
add edx, edx
add edx, edx
or edx, ebx
movzx ebx, byte [esp + 0x13]
add edx, edx
and ebx, eax
add edx, edx
shr ebx, cl
add edx, edx
or edx, ebx
cmp edi, 7
jne 0x10014a89
add edx, edx
mov ecx, dword [esp + 0x58]
mov edi, dword [ecx]
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + edx*4]
mov esi, dword [ecx + 4]
movzx ecx, byte [edi + eax]
mov ebx, dword [esp + 0x1c]
add edi, eax
add esi, eax
mov eax, dword [ecx*4 + 0x10089f80]
mov ecx, eax
shr ecx, 0x10
shr ebx, 0x10
cmp ebx, ecx
mov dword [esp + 0x2c], ecx
jb 0x10014b24
sub dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0xffff0000
sub ebx, ecx
mov ecx, dword [esp + 0x14]
test ecx, 0x8000
mov dword [esp + 0x1c], ebx
je 0x10014af2
cmp byte [esi], 0
mov esi, dword [esp + 0x28]
setne byte [esp + 0x10]
jmp 0x10014bcf
cmp ecx, dword [esp + 0x2c]
jb 0x10014b07
cmp byte [esi], 0
setne byte [esp + 0x10]
shr eax, 8
mov byte [edi], al
jmp 0x10014b60
mov cl, byte [esi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x10]
mov bl, al
and bl, 1
xor bl, cl
shr eax, 1
and al, 0x7f
mov byte [esi], bl
mov byte [edi], al
jmp 0x10014b5c
add ecx, ecx
cmp dword [esp + 0x14], ecx
jae 0x10014b39
cmp byte [esi], 0
setne byte [esp + 0x10]
shr eax, 8
jmp 0x10014b52
mov cl, byte [esi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x10]
mov bl, al
and bl, 1
xor bl, cl
shr eax, 1
mov byte [esi], bl
and al, 0x7f
mov byte [edi], al
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x54]
test esi, esi
jne 0x10014bb4
mov esi, dword [esp + 0x20]
cmp esi, edi
je 0x10014ba9
mov al, byte [esi]
add esi, 1
cmp byte [esp + 0x11], 0xff
mov dword [esp + 0x20], esi
mov byte [esp + 0x11], al
je 0x10014b96
movzx eax, al
shl eax, 8
add ebx, eax
jmp 0x10014baf
cmp al, 0x8f
ja 0x10014ba9
movzx eax, al
shl eax, 9
add ebx, eax
mov esi, 7
jmp 0x10014bb4
add ebx, 0xff00
mov esi, 8
add ecx, ecx
add ebx, ebx
sub esi, 1
test ecx, 0x8000
je 0x10014b6c
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x3c]
mov ecx, edi
mov eax, 0x80
sar eax, cl
mov ecx, dword [esp + 0x7c]
or byte [ecx + ebp], al
cmp byte [esp + 0x10], 0
mov dword [esp + 0x2c], eax
je 0x10014de7
movzx ecx, byte [ebp - 1]
mov al, byte [ebp]
mov byte [esp + 0x10], cl
mov cl, byte [ebp + 1]
mov byte [esp + 0x64], cl
or cl, al
or cl, byte [esp + 0x10]
mov byte [esp + 0x68], al
movzx eax, byte [esp + 0x26]
test al, cl
je 0x10014c35
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
push ecx
push eax
mov al, byte [esp + 0x18]
lea esi, [esp + 0x58]
mov ecx, edi
call fcn.10014230
add esp, 8
jmp 0x10014c3f
and edx, 0xaa
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x50]
mov eax, dword [ecx + edx*4]
mov edx, dword [esp + 0x58]
mov edi, dword [edx]
mov esi, dword [edx + 4]
mov cl, al
shr eax, 1
add edi, eax
add esi, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x10089f80]
mov ebp, eax
mov edx, ebx
shr ebp, 0x10
shr edx, 0x10
and cl, 1
cmp edx, ebp
jb 0x10014cbf
sub dword [esp + 0x14], ebp
mov edx, eax
and edx, 0xffff0000
sub ebx, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
mov dword [esp + 0x1c], ebx
je 0x10014ca9
mov al, byte [esi]
mov esi, dword [esp + 0x28]
xor al, cl
setne byte [esp + 0x10]
jmp 0x10014d62
cmp edx, ebp
mov dl, byte [esi]
mov ebp, dword [esp + 0x14]
jb 0x10014cd7
xor dl, cl
setne byte [esp + 0x10]
shr eax, 8
jmp 0x10014cf4
lea edx, [ebp + ebp]
cmp dword [esp + 0x14], edx
mov dl, byte [esi]
jae 0x10014cd7
xor dl, cl
setne byte [esp + 0x10]
shr eax, 8
jmp 0x10014cf0
mov bl, dl
xor bl, cl
xor bl, 1
setne byte [esp + 0x10]
mov cl, al
and cl, 1
xor cl, dl
shr eax, 1
mov byte [esi], cl
and al, 0x7f
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x28]
mov byte [edi], al
test esi, esi
jne 0x10014d47
mov eax, dword [esp + 0x20]
cmp eax, edx
je 0x10014d3c
mov cl, byte [eax]
add eax, 1
cmp byte [esp + 0x11], 0xff
mov dword [esp + 0x20], eax
mov byte [esp + 0x11], cl
je 0x10014d28
movzx eax, cl
shl eax, 8
add ebx, eax
jmp 0x10014d42
cmp cl, 0x8f
ja 0x10014d3c
movzx ecx, cl
shl ecx, 9
add ebx, ecx
mov esi, 7
jmp 0x10014d47
add ebx, 0xff00
mov esi, 8
add ebp, ebp
add ebx, ebx
sub esi, 1
test ebp, 0x8000
je 0x10014cfe
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebp
mov al, byte [esp + 0x2c]
or byte [esp + 0x12], al
mov cl, byte [esp + 0x1b]
or cl, byte [esp + 0x12]
cmp byte [esp + 0x10], 0
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0xa8]
mov byte [esp + 0x1b], cl
je 0x10014dc0
or byte [ebp], al
fld st(0)
mov eax, edi
fchs
imul eax, dword [esp + 0xb0]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
add eax, dword [esp + 0x44]
add eax, ebp
add eax, eax
add eax, eax
fst dword [eax + edx]
mov edx, dword [esp + 0xac]
fsub st(2)
fstp dword [eax + edx]
jmp 0x10014deb
mov eax, edi
imul eax, dword [esp + 0xb0]
add eax, dword [esp + 0x44]
add eax, ebp
add eax, eax
add eax, eax
fst dword [eax + edx]
mov edx, dword [esp + 0xac]
fld st(0)
fadd st(2)
fstp dword [eax + edx]
jmp 0x10014deb
mov cl, byte [esp + 0x1b]
mov eax, dword [esp + 0x4c]
add eax, 1
add edi, 1
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], edi
jb 0x10014a20
mov al, byte [esp + 0x12]
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x34]
mov byte [ecx + ebp], al
mov edx, dword [esp + 0x44]
add dword [esp + 0x40], 1
add ebp, 1
add edx, ebp
cmp edx, dword [esp + 0x98]
mov dword [esp + 0x48], ebp
jb 0x1001499f
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0x78]
add edi, 1
cmp edi, dword [esp + 0x5c]
mov dword [esp + 0x34], edi
jb 0x10014918
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x11]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x20]
mov byte [ebp + 0xc], cl
mov ecx, dword [ebp + 0x14]
mov edx, eax
sub edx, dword [esp + 0x80]
mov dword [ebp + 4], ebx
mov dword [ebp + 0x10], esi
pop edi
mov dword [ecx + 8], edx
mov edx, dword [ebp + 0x14]
pop esi
pop ebp
mov dword [edx], eax
pop ebx
add esp, 0x74
ret