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

Disassembly:
sub esp, 0x44
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x50]
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
push ecx
mov dword [esp + 0x44], ebx
mov eax, dword [edi]
add eax, 0x100
push eax
mov dl, byte [ecx + eax]
mov byte [esp + 0x1f], dl
mov dl, byte [ecx + eax + 0x1680]
mov byte [esp + 0x27], dl
call fcn.1045f990
mov dword [esp + 0x44], eax
mov ecx, 1
mov eax, dword [edi + 0x3eab8]
cmp eax, ecx
cmovg ecx, eax
movzx eax, byte [edi + 0x916d8]
push eax
mov eax, dword [edi]
mov dword [esp + 0x1c], ecx
push dword [eax + 0xec]
call fcn.10081820
mov esi, dword [edi + 0x5cbc8]
mov ecx, eax
mov ebp, dword [edi + 0x5cbc4]
xor eax, eax
add esi, ebx
mov dword [esp + 0x28], ecx
test esi, esi
cmovle esi, eax
sub ebp, ebx
dec ebp
test ebp, ebp
cmovle ebp, eax
cmp ebx, esi
mov eax, ecx
cmovl esi, ebx
sub eax, ebx
dec eax
cmp eax, ebp
cmovl ebp, eax
movzx eax, byte [edi + 0x916d8]
push eax
mov eax, dword [edi]
push ebx
push dword [eax + 0xec]
call fcn.100819d0
mov ecx, dword [edi + 0x3e7a8]
lea edx, [edi + 0x3f198]
mov dword [esp + 0x44], eax
xor eax, eax
push 0x32
cmp byte [ecx + 0x4d], al
push dword [ecx + 0x48]
sete al
lea eax, [eax*2 + 1]
mov dword [esp + 0x68], eax
dec eax
push eax
push 0
push edx
push dword [esp + 0x58]
call fcn.10138990
mov edx, dword [edi]
movzx eax, byte [edi + 0x6d660]
mov cl, byte [eax + edx + 0x1780]
mov eax, dword [edi + 0x3e7a8]
push dword [eax + 0x48]
movzx eax, cl
push dword [edx + eax*4 + 0xaad4]
call fcn.100c9b40
fstp qword [esp + 0x68]
cvttsd2si eax, qword [esp + 0x68]
add esp, 0x3c
mov dword [esp + 0x48], eax
movsd xmm1, qword [0x1059ba70]
xor eax, eax
cmp dword [edi + 0x5cbc8], eax
mov edx, 0xe8
movsd xmm4, qword [0x106b38f8]
mov ecx, 1
cmove eax, edx
movaps xmm2, xmm1
mov edx, dword [edi + 0x917d8]
movaps xmm3, xmm1
sub edx, eax
movsd qword [esp + 0x34], xmm2
mov dword [esp + 0x20], edx
movsd qword [esp + 0x2c], xmm3
cmp ebp, ecx
jl 0x1013b11b
mov eax, dword [edi]
mov eax, dword [eax + 0x5b74]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
lea eax, [ebx + 1]
imul eax, eax, 0xe8
add eax, edx
cmp eax, dword [esp + 0x24]
jae 0x1013b0df
movsd xmm0, qword [eax + 0xd0]
inc ecx
maxsd xmm0, xmm4
add eax, 0xe8
mulsd xmm3, xmm0
movsd qword [esp + 0x2c], xmm3
cmp ecx, ebp
jle 0x1013b0b7
jmp 0x1013b0e7
lea ebp, [ecx - 1]
cmp ebp, 1
jl 0x1013b11b
movd xmm2, ebp
movaps xmm0, xmm3
cvtdq2pd xmm2, xmm2
divsd xmm1, xmm2
call fcn.105205c0
movsd xmm1, qword [0x1059ba70]
movsd xmm2, qword [esp + 0x34]
movsd xmm4, qword [0x106b38f8]
mov edx, dword [esp + 0x20]
movsd qword [esp + 0x2c], xmm0
mov ecx, 1
cmp esi, ecx
jl 0x1013b196
mov eax, dword [edi]
mov eax, dword [eax + 0x5b74]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
imul eax, ebx, 0xe8
add eax, 0xd0
add edx, eax
nop
mov eax, ebx
sub eax, ecx
inc eax
imul eax, eax, 0xe8
add eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x24]
jbe 0x1013b174
movsd xmm0, qword [edx]
inc ecx
maxsd xmm0, xmm4
sub edx, 0xe8
mulsd xmm2, xmm0
movsd qword [esp + 0x34], xmm2
cmp ecx, esi
jle 0x1013b140
jmp 0x1013b17c
lea esi, [ecx - 1]
cmp esi, 1
jl 0x1013b196
movaps xmm0, xmm2
movd xmm2, esi
cvtdq2pd xmm2, xmm2
divsd xmm1, xmm2
call fcn.105205c0
movsd qword [esp + 0x34], xmm0
mov ecx, dword [esp + 0x10]
mov eax, 6
cmp ecx, 1
jne 0x1013b1a8
xor eax, eax
jmp 0x1013b222
mov dl, byte [esp + 0x17]
test dl, dl
jne 0x1013b1bb
cmp dword [esp + 0x48], 0xa
jg 0x1013b1bb
xor eax, eax
jmp 0x1013b222
mov ecx, dword [edi + 0x5ccd8]
test ecx, ecx
jle 0x1013b21e
test dl, dl
je 0x1013b21e
cmp dword [edi + 0x5cbc8], 0
jle 0x1013b21e
movsd xmm1, qword [edi + 0x3f198]
lea eax, [esp + 0x48]
movsd xmm0, qword [0x1058db20]
add eax, ecx
comisd xmm0, xmm1
mov dword [esp + 0x48], 0x4020406
mov word [esp + 0x4c], 2
jbe 0x1013b204
movzx eax, byte [eax + ecx*2 - 3]
jmp 0x1013b21e
movsd xmm0, qword [0x1059ba70]
comisd xmm0, xmm1
jbe 0x1013b219
movzx eax, byte [eax + ecx*2 - 2]
jmp 0x1013b21e
movzx eax, byte [eax + ecx*2 - 1]
mov ecx, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x18]
cmp eax, ecx
cmovl ecx, eax
cmp byte [esp + 0x1f], 0
mov dword [esp + 0x18], ecx
jne 0x1013b265
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cdq
sub eax, edx
mov edx, dword [esp + 0x18]
sar eax, 1
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, ebp
cmp ecx, esi
cmovl esi, ecx
dec edx
cmp edx, ebp
mov ebx, esi
mov dword [esp + 0x10], ebx
cmovge edx, eax
jmp 0x1013b37d
mov ecx, dword [edi]
lea eax, [edi + 0x6d668]
push 0
push 0
push 0
push ebp
push esi
push ebx
push eax
lea eax, [ecx + 0x8948]
push eax
lea eax, [edi + 0x917d8]
push eax
lea eax, [ecx + 0x5aa8]
push eax
call fcn.10147810
mov ecx, eax
add esp, 0x28
mov eax, 0x1b4e81b5
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
cmovl eax, dword [esp + 0x18]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
cmp byte [esp + 0x17], 6
mov dword [esp + 0x18], ecx
jne 0x1013b2d4
mov eax, 3
cmp ecx, eax
cmovl eax, ecx
mov ecx, eax
mov dword [esp + 0x18], eax
mov eax, ecx
mov ecx, esi
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
cmp ebp, esi
mov dword [esp + 0x10], ebx
cmovl ecx, ebp
cmp ecx, ebx
jl 0x1013b2f3
mov edx, ebx
jmp 0x1013b37d
mov edx, ebp
cmp ebp, ebx
jge 0x1013b309
mov ebx, dword [esp + 0x18]
mov eax, esi
sub ebx, ebp
dec ebx
cmp ebx, esi
cmovge ebx, eax
jmp 0x1013b317
mov eax, dword [esp + 0x18]
mov ebx, esi
sub eax, esi
dec eax
cmp eax, ebp
cmovl edx, eax
mov dword [esp + 0x10], ebx
test ebp, ebp
jle 0x1013b37d
test esi, esi
jle 0x1013b37d
movsd xmm1, qword [0x1059ba70]
movsd xmm0, qword [0x1075c8c8]
cmp edx, ebx
jge 0x1013b35e
subsd xmm1, qword [esp + 0x2c]
mov ecx, edx
maxsd xmm1, qword [0x105e46c8]
divsd xmm0, xmm1
cvttsd2si eax, xmm0
sub ecx, eax
cmp ebx, ecx
cmovl ecx, ebx
mov ebx, ecx
mov dword [esp + 0x10], ebx
jmp 0x1013b37d
subsd xmm1, qword [esp + 0x34]
mov ecx, ebx
maxsd xmm1, qword [0x105e46c8]
divsd xmm0, xmm1
cvttsd2si eax, xmm0
sub ecx, eax
cmp edx, ecx
cmovge edx, ecx
lea eax, [ebx + 1]
xor esi, esi
add eax, edx
mov dword [esp + 0x20], eax
test eax, eax
jle 0x1013b3c4
mov ebp, dword [esp + 0x40]
sub ebp, ebx
mov ebx, eax
movzx eax, byte [edi + 0x916d8]
push eax
lea eax, [esi + ebp]
push eax
mov eax, dword [edi]
push dword [eax + 0xec]
call fcn.100819d0
mov dword [edi + esi*4 + 0x3f0b8], eax
add esp, 0xc
inc esi
cmp esi, ebx
jl 0x1013b394
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
mov dword [edi + 0x3f178], eax
mov dword [edi + 0x3f180], ebx
mov eax, dword [edi + 0x3e7a8]
push dword [eax + 0x1c]
lea eax, [edi + 0x15030]
push esi
push 0
push 0
push dword [esp + 0x38]
push eax
call fcn.1010fb10
mov eax, dword [edi + 0x3e7a8]
push esi
push dword [eax + 0x64]
push dword [eax + 0x60]
lea eax, [edi + 0x15110]
push eax
call fcn.100b8b40
mov ecx, dword [esp + 0x78]
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x44
ret