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

Disassembly:
sub esp, 0x2c
imul eax, dword [esp + 0x38], 0xcc
mov ecx, dword [esp + 0x34]
add ecx, eax
push ebx
mov ebx, dword [esp + 0x34]
push esi
mov eax, dword [ecx + 0xc8]
mov esi, dword [ecx + 0xcc]
test byte [ebx + 0x10], 8
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], eax
jne 0x1014f884
mov eax, dword [ebx]
push ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x28], eax
add esi, dword [esp + 0x28]
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x24]
test ecx, ecx
jne 0x1014f542
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x78], cl
je 0x1014f555
cmp byte [eax + 0x7a], cl
jne 0x1014f570
mov dword [esp + 0x28], 0
push edi
xor edx, edx
mov dword [ebx + 0xc], ebp
xor esi, esi
mov dword [esp + 0x18], edx
xor edi, edi
mov dword [esp + 0x10], esi
cmp ecx, 1
jne 0x1014f60a
mov ecx, dword [esp + 0x44]
mov esi, dword [ebx]
add esi, dword [ebx + 4]
mov dword [esp + 0x24], esi
mov al, byte [ecx + 0x9bc]
mov byte [esp + 0x40], al
mov eax, dword [ecx + 0x19c]
add ecx, 0x1a0
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
test eax, eax
je 0x1014f59f
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x9b8]
mov dword [esp + 0x30], eax
neg eax
mov dword [esp + 0x34], eax
nop word [eax + eax]
sub esi, dword [ecx + 0xc]
cmp esi, eax
jl 0x1014f59f
mov eax, dword [ecx + 8]
add eax, dword [esp + 0x30]
cmp dword [esp + 0x24], eax
jle 0x1014f57d
mov eax, dword [esp + 0x20]
add ecx, 0x20
mov esi, dword [esp + 0x24]
dec eax
mov dword [esp + 0x20], eax
test eax, eax
mov eax, dword [esp + 0x34]
jne 0x1014f510
jmp 0x1014f59f
cmp ecx, 1
jne 0x1014f49d
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x79], 0
jne 0x1014f566
or dword [ebx + 0x10], 8
mov dword [ebx + 0xc], ebp
pop ebp
mov dword [ebx + 8], esi
pop esi
pop ebx
add esp, 0x2c
ret
cmp byte [eax + 0x7b], 0
je 0x1014f49d
mov dword [esp + 0x28], 1
jmp 0x1014f4a5
cmp byte [esp + 0x40], dl
jne 0x1014f58f
mov eax, dword [esp + 0x44]
cmp esi, dword [eax + 0x9b4]
jg 0x1014f59f
mov eax, dword [ecx + 0x10]
mov edx, 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx + 0x3a0]
mov eax, esi
shl eax, 5
add ecx, 0x384
add ecx, eax
test esi, esi
je 0x1014f602
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x9b8]
neg eax
mov dword [esp + 0x34], eax
nop word [eax + eax]
mov edx, dword [ecx + 8]
sub edx, dword [ebx]
cmp edx, eax
jl 0x1014f5fe
mov ebp, dword [esp + 0x44]
mov eax, dword [ecx + 0xc]
sub eax, dword [ebp + 0x9b8]
mov ebp, dword [esp + 0x28]
cmp dword [ebx], eax
jge 0x1014f69e
mov eax, dword [esp + 0x34]
sub ecx, 0x20
sub esi, 1
jne 0x1014f5d0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x10]
mov eax, edx
sub eax, 1
je 0x1014f800
sub eax, 1
je 0x1014f7fa
sub eax, 1
je 0x1014f7f3
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x1014f6c8
test byte [edi + 0x10], 8
jne 0x1014f64a
push dword [esp + 0x4c]
push ecx
push dword [esp + 0x4c]
push edi
call fcn.1014f3e0
add esp, 0x10
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 4]
mov esi, dword [edi + 0xc]
sar ecx, 1
sar eax, 1
sub ecx, eax
sar esi, 1
sub ecx, dword [edi]
add ecx, dword [ebx]
add esi, dword [edi + 8]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x48]
mov eax, ebp
sar eax, 1
sub ecx, eax
add ecx, esi
mov dword [esp + 0x14], ecx
jmp 0x1014f6d0
cmp byte [esp + 0x40], 0
jne 0x1014f6b5
mov eax, dword [esp + 0x44]
cmp edx, dword [eax + 0x9b4]
jge 0x1014f5fe
mov edx, dword [esp + 0x18]
mov edi, dword [ecx + 0x10]
or edx, 2
mov dword [esp + 0x18], edx
jmp 0x1014f602
mov ecx, dword [esp + 0x14]
mov eax, ebp
sar eax, 1
mov edx, dword [esp + 0x4c]
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], ebp
cmp byte [edx + 0x7c], 0
je 0x1014f7bb
cmp ebp, 0x40
jg 0x1014f755
cmp ebp, 0x20
jl 0x1014f701
add ecx, eax
mov ebp, 0x40
and ecx, 0xffffffc0
mov dword [esp + 0x14], ecx
jmp 0x1014f7bb
lea eax, [ecx + 0x20]
and eax, 0xffffffc0
mov dword [esp + 0x44], eax
test ebp, ebp
jle 0x1014f74d
mov edx, dword [esp + 0x14]
lea edi, [ecx + ebp]
mov esi, eax
lea eax, [edi + 0x20]
and eax, 0xffffffc0
sub esi, ecx
sub eax, ebp
mov ecx, eax
sub ecx, edx
sub edx, eax
test ecx, ecx
cmovns edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, ecx
sub eax, dword [esp + 0x44]
test esi, esi
cmovns eax, esi
cmp eax, edx
cmovg ecx, edi
add ecx, 0x20
and ecx, 0xffffffc0
mov dword [esp + 0x14], ecx
jmp 0x1014f7bb
mov ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1014f7bb
mov ecx, dword [esp + 0x38]
mov eax, ebp
mov ecx, dword [ecx + 0xc]
mov edx, ecx
sub edx, ebp
sub eax, ecx
cmovns edx, eax
cmp edx, 0x28
jge 0x1014f77b
cmp ecx, 0x30
jge 0x1014f778
mov ecx, 0x30
jmp 0x1014f786
cmp edx, 0x28
cmovge ecx, ebp
cmp ecx, 0xc0
jge 0x1014f7b1
mov eax, ecx
and ecx, 0xffffffc0
and eax, 0x3f
cmp eax, 0xa
jb 0x1014f7ac
cmp eax, 0x20
jae 0x1014f7a2
mov eax, 0xa
lea ebp, [eax + ecx]
jmp 0x1014f7b7
mov edx, 0x36
cmp eax, edx
cmovb eax, edx
lea ebp, [eax + ecx]
jmp 0x1014f7b7
lea ebp, [ecx + 0x20]
and ebp, 0xffffffc0
mov ecx, dword [esp + 0x14]
lea esi, [ebp + 0x20]
mov dword [ebx + 0xc], ebp
add esi, ecx
lea edi, [ecx + 0x20]
and esi, 0xffffffc0
and edi, 0xffffffc0
sub esi, ebp
mov eax, esi
sub eax, ecx
cdq
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x14]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0x10]
cmovg edi, esi
jmp 0x1014f808
mov eax, esi
sub eax, edi
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x10]
jmp 0x1014f808
mov eax, dword [esp + 0x10]
mov edi, eax
sub edi, ebp
mov dword [ebx + 8], edi
cmp dword [esp + 0x2c], 0
je 0x1014f87e
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x40
jge 0x1014f821
mov ecx, 0x40
jmp 0x1014f827
add ecx, 0x20
and ecx, 0xffffffc0
sub edx, 1
je 0x1014f876
sub edx, 1
je 0x1014f87b
sub edx, 1
je 0x1014f87e
mov edx, ecx
sar edx, 1
lea eax, [edx + edi]
test cl, 0x40
je 0x1014f85c
and eax, 0xffffffc0
mov dword [ebx + 0xc], ecx
pop edi
add eax, 0x20
pop ebp
sub eax, edx
or dword [ebx + 0x10], 8
pop esi
mov dword [ebx + 8], eax
pop ebx
add esp, 0x2c
ret
add eax, 0x20
mov dword [ebx + 0xc], ecx
pop edi
and eax, 0xffffffc0
pop ebp
sub eax, edx
or dword [ebx + 0x10], 8
pop esi
mov dword [ebx + 8], eax
pop ebx
add esp, 0x2c
ret
sub eax, ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
or dword [ebx + 0x10], 8
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x2c
ret