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

Disassembly:
sub esp, 0x58
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
mov ebx, dword [esp + 0x64]
push ebp
mov ebp, dword [esp + 0x74]
push esi
mov esi, dword [esp + 0x68]
push edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x10], esi
mov ecx, dword [esi + 0x3eee4]
mov edx, dword [esi + 0x3eee0]
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], ebp
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100a070f
mov eax, dword [ecx + 8]
cmp eax, dword [edx + 8]
jne 0x100a070f
mov eax, dword [ebx + 0x10e8]
test byte [eax + 0x8c], 8
jne 0x100a070f
mov eax, dword [esi + 0x3e7a8]
mov esi, dword [ecx + 0x20]
shl edi, 2
mov dword [esp + 0x24], esi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x14], eax
lea eax, [ebp*4]
mov ebp, edi
imul edi, esi
imul ebp, dword [esp + 0x14]
add edi, dword [ecx + 0x28]
add ebp, dword [edx + 0x28]
add edi, eax
mov edx, dword [esp + 0x10]
add ebp, eax
mov ecx, dword [esp + 0x28]
shl ecx, 6
mov eax, dword [edx]
lea edx, [esp + 0x3c]
push edx
push esi
push edi
push dword [esp + 0x20]
mov eax, dword [ecx + eax + 0xc5d8]
push ebp
call eax
mov esi, dword [esp + 0x50]
add esp, 0x14
mov ecx, eax
mov dword [esp + 0x30], ecx
cmp esi, 0x8ca0
jae 0x100a00ed
mov dword [ebx + 0x14d14], 2
test esi, esi
jne 0x100a010a
pop edi
mov dword [ebx + 0x14d10], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.105116c0
add esp, 0x58
ret
cmp esi, 0x2710
jae 0x100a011e
mov dword [ebx + 0x14d10], 1
jmp 0x100a0144
cmp esi, 0x186a0
jae 0x100a0132
mov dword [ebx + 0x14d10], 2
jmp 0x100a0144
cmp esi, 0xf4240
jbe 0x100a0144
mov dword [ebx + 0x14d10], 4
mov eax, esi
shr eax, 1
cmp ecx, eax
jae 0x100a0161
mov eax, esi
sub eax, ecx
cmp eax, 0x2710
jbe 0x100a0161
mov dword [ebx + 0x14d18], 1
sub esi, ecx
cmp esi, 0x1388
jae 0x100a0175
mov dword [ebx + 0x14d1c], 1
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x5d16c], 0
je 0x100a070f
cmp dword [ecx + 0x5cbd8], 0
jne 0x100a070f
cmp dword [ecx + 0x5cbf4], 0
ja 0x100a070f
jb 0x100a01b2
cmp dword [ecx + 0x5cbf0], 0x4e20
ja 0x100a070f
cmp dword [ecx + 0x91590], 1
jg 0x100a070f
mov eax, dword [ecx + 0x3e7a8]
push dword [eax + 0x48]
push 0
push dword [ecx + 0x3ae08]
call fcn.100c6690
mov ecx, dword [esp + 0x1c]
movsx ebx, ax
mov eax, dword [ecx + 0x3e7a8]
push dword [eax + 0x48]
mov eax, dword [ecx]
push 0
push dword [eax + 0xaad8]
call fcn.100c6690
mov edx, dword [esp + 0x28]
add esp, 0x18
cwde
cmp dword [edx + 0x5d16c], 1
jne 0x100a0225
cmp eax, 0xfa
jge 0x100a0216
mov eax, 0xfa
imul eax, ebx
jmp 0x100a022b
mov ecx, 0x3e8
cmp eax, ecx
cmovg eax, ecx
imul eax, ebx
jmp 0x100a022b
imul eax, ebx, 0xfa
cmp dword [esp + 0x30], eax
ja 0x100a070f
cmp esi, 0xf
ja 0x100a070f
mov esi, dword [esp + 0x34]
mov eax, edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x1c], 1
mov edx, dword [eax + 0x3adf4]
mov ecx, edx
mov eax, dword [eax + 0x3adec]
imul ecx, esi
add ecx, dword [esp + 0x2c]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x18], ecx
cmp esi, dword [ebx]
jle 0x100a02b0
lea eax, [edx*4]
sub ecx, eax
mov ecx, dword [ecx]
mov eax, dword [ecx + 0xc]
mov esi, eax
shr esi, 0x10
cmp byte [ecx + 5], 0xd
movzx eax, ax
jb 0x100a02ac
cwde
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x18
jg 0x100a02a4
movsx eax, si
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x18
jle 0x100a02ac
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp eax, dword [ebx + 8]
jle 0x100a02e9
mov ecx, dword [ecx - 4]
mov eax, dword [ecx + 0xc]
mov esi, eax
shr esi, 0x10
cmp byte [ecx + 5], 0xd
movzx eax, ax
jb 0x100a02e9
cwde
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x18
jg 0x100a02e5
movsx eax, si
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x18
jle 0x100a02e9
xor eax, eax
jmp 0x100a02ee
mov eax, 1
cmp dword [esp + 0x1c], 0
je 0x100a070f
test eax, eax
je 0x100a070f
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x91800], 0
mov ebx, dword [ecx + 0x3e7a8]
mov esi, dword [ebx + 0x1c]
je 0x100a0358
mov ebx, dword [ebx + 0x20]
cmp esi, 0xf
jne 0x100a0321
sar ebx, 1
mov eax, dword [ecx + 0x3add8]
dec eax
add eax, ebx
cdq
idiv ebx
mov ecx, eax
mov eax, dword [esp + 0x34]
cdq
idiv ebx
imul ecx, eax
mov eax, dword [esp + 0x2c]
cdq
idiv ebx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
add ecx, eax
shl esi, 6
mov eax, dword [edx + 0x91800]
mov eax, dword [eax + ecx*8]
jmp 0x100a0378
mov ebx, dword [esp + 0x24]
mov eax, dword [ecx]
push ebx
push edi
push dword [esp + 0x1c]
shl esi, 6
push ebp
mov eax, dword [eax + esi + 0xc5cc]
call eax
mov edx, dword [esp + 0x20]
add esp, 0x10
mov ecx, edi
mov dword [esp + 0x1c], eax
sub ecx, ebx
lea eax, [ebx + edi]
mov dword [esp + 0x54], ecx
lea ecx, [edi - 1]
mov dword [esp + 0x58], ecx
lea ecx, [edi + 1]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x44]
push ecx
push ebx
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x5c]
mov eax, dword [edx]
push ecx
push dword [esp + 0x20]
mov eax, dword [eax + esi + 0xc5e4]
push ebp
call eax
mov eax, dword [esp + 0x30]
add esp, 0x14
lea eax, [eax + eax*4]
shr eax, 3
cmp eax, dword [esp + 0x44]
jae 0x100a070f
cmp eax, dword [esp + 0x48]
jae 0x100a070f
cmp eax, dword [esp + 0x4c]
jae 0x100a070f
cmp eax, dword [esp + 0x50]
jae 0x100a070f
mov edx, dword [esp + 0x10]
xor ebx, ebx
mov ecx, dword [esp + 0x28]
movups xmm3, xmmword [0x10617190]
mov dword [esp + 0x54], 0
mov edi, dword [edx + 0x3eee0]
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], 0x28
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x60]
mov dword [esp + 0x48], eax
mov al, byte [ecx + 0x1060b458]
mov cl, byte [ecx + 0x1060b440]
movzx eax, al
mov byte [esp + 0x23], cl
mov dword [esp + 0x40], eax
mov esi, dword [edx + 0x3eee4]
xor eax, eax
mov ebp, dword [esp + 0x34]
test ebx, ebx
setne al
neg ebx
lea eax, [eax*4 + 0x20]
mov ecx, dword [eax + edi]
mov eax, dword [eax + esi]
mov dword [esp + 0x24], eax
sbb eax, eax
and eax, 4
mov dword [esp + 0x28], ecx
mov ecx, 2
mov edx, dword [esp + eax + 0x44]
sub ecx, edx
mov eax, dword [esp + eax + 0x54]
shl ebp, cl
mov ecx, 2
sub ecx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
mov ebx, ebp
imul ebx, dword [esp + 0x28]
imul ebp, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x1c]
add ebx, dword [edi + ecx]
add ebp, dword [ecx + esi]
add ebx, eax
add ebp, eax
mov cl, dl
mov eax, dword [esp + 0x40]
shr eax, cl
mov dword [esp + 0x14], eax
test eax, eax
je 0x100a06e0
movzx ecx, byte [esp + 0x18]
movzx edi, byte [esp + 0x23]
shr edi, cl
mov dword [esp + 0x18], edi
nop
xor edx, edx
test edi, edi
je 0x100a0687
cmp edi, 2
jb 0x100a0687
lea eax, [ebp - 1]
lea ecx, [ebx - 1]
add eax, edi
add ecx, edi
cmp ebx, eax
ja 0x100a04f9
cmp ecx, ebp
jae 0x100a0683
cmp edi, 0x10
jb 0x100a061d
mov eax, edi
and eax, 0x8000000f
jns 0x100a0510
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, edi
mov esi, ebp
sub ecx, eax
lea eax, [ebp + 0xc]
mov dword [esp + 0x38], eax
sub esi, ebx
mov edi, dword [esp + 0x38]
lea eax, [ebx + 4]
nop word [eax + eax]
movd xmm2, dword [edi - 0xc]
lea edi, [edi + 0x10]
movd xmm1, dword [eax - 4]
lea eax, [eax + 0x10]
xorps xmm0, xmm0
add edx, 0x10
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm2, xmm1
psrad xmm2, 1
andps xmm2, xmm3
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd dword [eax - 0x14], xmm2
movd xmm2, dword [eax + esi - 0x10]
movd xmm1, dword [eax - 0x10]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm2, xmm1
psrad xmm2, 1
andps xmm2, xmm3
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd dword [eax - 0x10], xmm2
movd xmm2, dword [edi - 0x14]
movd xmm1, dword [eax - 0xc]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm2, xmm1
psrad xmm2, 1
andps xmm2, xmm3
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd dword [eax - 0xc], xmm2
movd xmm2, dword [eax - 8]
movd xmm1, dword [edi - 0x10]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm2, xmm1
psrad xmm2, 1
andps xmm2, xmm3
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd dword [eax - 8], xmm2
cmp edx, ecx
jl 0x100a0530
mov edi, dword [esp + 0x18]
mov eax, edi
and al, 0xf
cmp al, 2
jb 0x100a0683
mov eax, edi
and eax, 0x80000001
jns 0x100a062b
dec eax
or eax, 0xfffffffe
inc eax
mov esi, edi
lea ecx, [edx + ebx]
mov edi, ebp
sub esi, eax
sub edi, ebx
movzx eax, word [edi + ecx]
lea ecx, [ecx + 2]
xorps xmm0, xmm0
add edx, 2
movd xmm2, eax
movzx eax, word [ecx - 2]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
movd xmm1, eax
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm2, xmm1
psrad xmm2, 1
andps xmm2, xmm3
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd eax, xmm2
mov word [ecx - 2], ax
cmp edx, esi
jl 0x100a0636
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp edx, edi
jge 0x100a06bf
mov ecx, ebp
lea eax, [edx + ebx]
sub ecx, ebx
mov esi, edi
mov dword [esp + 0x38], ecx
sub esi, edx
mov edi, ecx
nop dword [eax]
movzx edx, byte [edi + eax]
lea eax, [eax + 1]
movzx ecx, byte [eax - 1]
add edx, ecx
shr edx, 1
mov byte [eax - 1], dl
sub esi, 1
jne 0x100a06a0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add ebx, dword [esp + 0x28]
add ebp, dword [esp + 0x24]
sub eax, 1
mov dword [esp + 0x14], eax
jne 0x100a04d0
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 0x3eee0]
jmp 0x100a06e4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x3e7a8]
xor ecx, ecx
mov ebx, dword [esp + 0x30]
add dword [esp + 0x1c], 4
inc ebx
mov dword [esp + 0x30], ebx
cmp byte [eax + 0x4d], cl
sete cl
lea ecx, [ecx*2 + 1]
cmp ebx, ecx
jl 0x100a0441
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x58
ret