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

Disassembly:
sub esp, 0xe4
mov eax, dword [0x10583760]
xor eax, esp
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xe8]
push ebx
push esi
lea esi, [esp + 0xc8]
mov dword [esp + 0x14], eax
push edi
sub esi, edx
mov edi, 0x10
mov ebx, 0x8000
nop dword [eax]
movzx ecx, word [edx]
mov eax, ecx
and eax, 0x7c00
cmp eax, 0x7c00
jne 0x101c5af7
mov word [esi + edx], bx
jmp 0x101c5b06
test cx, cx
jns 0x101c5b00
not ecx
jmp 0x101c5b02
or ecx, ebx
mov word [esi + edx], cx
add edx, 2
sub edi, 1
jne 0x101c5ae0
xor edx, edx
xor eax, eax
cmp dword [0x1058f0d4], 2
mov dword [esp + 0x14], edx
jl 0x101c5b80
movups xmm0, xmmword [esp + 0xcc]
push ebp
xorps xmm1, xmm1
movaps xmm2, xmm1
pmaxuw xmm2, xmm0
movups xmm0, xmmword [esp + 0xe0]
pmaxuw xmm1, xmm0
pmaxuw xmm2, xmm1
movaps xmm0, xmm2
psrldq xmm0, 8
pmaxuw xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 4
pmaxuw xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 2
pmaxuw xmm2, xmm0
movd eax, xmm2
movzx edx, ax
or eax, 0xffffffff
mov dword [esp + 0x18], edx
movzx ebp, dx
jmp 0x101c5ba6
movzx ecx, word [esp + eax*2 + 0xcc]
cmp dx, cx
jae 0x101c5b8f
mov edx, ecx
inc eax
cmp eax, 0x10
jl 0x101c5b80
push ebp
mov dword [esp + 0x18], edx
or eax, 0xffffffff
movzx ebp, dx
jmp 0x101c5ba6
mov eax, dword [esp + 0x10]
inc eax
mov ebx, 1
mov dword [esp + 0x10], eax
xor eax, eax
mov ecx, dword [esp + 0x10]
shl ebx, cl
lea edi, [ecx + 1]
nop dword [eax + eax]
movzx ecx, word [esp + eax*2 + 0xd0]
mov esi, ebp
sub esi, ecx
mov ecx, edi
add esi, esi
mov edx, esi
sar edx, cl
and edx, 1
dec edx
add edx, esi
add edx, ebx
sar edx, cl
mov dword [esp + eax*4 + 0x54], edx
inc eax
cmp eax, 0x10
jl 0x101c5bc0
mov ecx, dword [esp + 0x64]
mov esi, 1
mov eax, dword [esp + 0x74]
mov edx, ecx
sub edx, eax
mov edi, dword [esp + 0x54]
add edx, 0x20
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
mov ebx, edi
mov dword [esp + 0x98], edx
sub ebx, ecx
mov edx, dword [esp + 0x84]
add ebx, 0x20
sub dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
add edx, 0x20
mov dword [esp + 0x94], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x9c], edx
mov edx, edi
sub edx, dword [esp + 0x58]
add edx, 0x20
mov dword [esp + 0x28], edx
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x68]
sub ecx, edx
add ecx, 0x20
sub edx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
add edx, 0x20
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x78]
sub eax, ecx
add eax, 0x20
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x88]
add eax, 0x20
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x30], eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x5c]
add eax, 0x20
mov dword [esp + 0x38], eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x7c]
sub ecx, eax
sub eax, dword [esp + 0x80]
add ecx, 0x20
mov dword [esp + 0x3c], ecx
add eax, 0x20
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x88]
sub ecx, edx
mov dword [esp + 0x4c], eax
sub edx, dword [esp + 0x90]
add ecx, 0x20
mov dword [esp + 0x40], ecx
add edx, 0x20
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x60]
add ecx, 0x20
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x70]
add ecx, 0x20
mov dword [esp + 0xcc], edx
cmp dword [0x1058f0d4], 2
mov edx, ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc4], ecx
mov ecx, ebx
mov dword [esp + 0xc8], eax
jl 0x101c5dd4
movd xmm0, ebx
mov esi, 9
pshufd xmm1, xmm0, 0
movups xmm0, xmmword [esp + 0x98]
movaps xmm4, xmm1
movaps xmm3, xmm1
pminsd xmm4, xmm0
pmaxsd xmm3, xmm0
movups xmm0, xmmword [esp + 0xa8]
movaps xmm2, xmm1
pmaxsd xmm1, xmm0
pminsd xmm2, xmm0
pmaxsd xmm3, xmm1
movaps xmm0, xmm3
psrldq xmm0, 8
pmaxsd xmm3, xmm0
movaps xmm0, xmm3
psrldq xmm0, 4
pmaxsd xmm3, xmm0
pminsd xmm4, xmm2
movaps xmm0, xmm4
movd edx, xmm3
psrldq xmm0, 8
pminsd xmm4, xmm0
movaps xmm0, xmm4
psrldq xmm0, 4
pminsd xmm4, xmm0
movd ecx, xmm4
mov eax, dword [esp + esi*4 + 0x94]
cmp ecx, eax
cmovg ecx, eax
cmp edx, eax
cmovl edx, eax
inc esi
cmp esi, 0xf
jl 0x101c5dd4
test ecx, ecx
js 0x101c5ba2
cmp edx, 0x3f
jg 0x101c5ba2
pop ebp
cmp ecx, 0x20
jne 0x101c5e4b
cmp edx, ecx
jne 0x101c5e4b
cmp byte [esp + 0xfc], 0
je 0x101c5e4b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xcc]
shr eax, 8
pop edi
mov byte [ecx], al
mov al, byte [esp + 0xc8]
pop esi
mov byte [ecx + 1], al
mov eax, 3
mov byte [ecx + 2], 0xfc
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.101f6477
add esp, 0xe4
ret
cmp byte [esp + 0x100], 0
mov ecx, dword [esp + 0xc]
je 0x101c5e6b
mov eax, dword [esp + 0x14]
shl di, cl
sub ax, di
mov word [esp + 0xcc], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xcc]
shr eax, 8
mov edx, dword [esp + 0x20]
mov byte [esi], al
mov al, byte [esp + 0xcc]
mov byte [esi + 1], al
mov eax, ebx
sar eax, 4
shl cl, 2
or al, cl
shl bl, 4
mov ecx, dword [esp + 0x1c]
mov byte [esi + 2], al
mov eax, ecx
sar eax, 2
or al, bl
shl cl, 6
or cl, byte [esp + 0x10]
mov byte [esi + 3], al
mov eax, edx
mov byte [esi + 4], cl
mov ecx, dword [esp + 0x24]
sar eax, 4
shl cl, 2
or al, cl
shl dl, 4
mov ecx, dword [esp + 0x28]
mov byte [esi + 5], al
mov eax, ecx
sar eax, 2
or al, dl
shl cl, 6
mov edx, dword [esp + 0x2c]
or cl, dl
mov edx, dword [esp + 0x30]
mov byte [esi + 6], al
mov eax, edx
mov byte [esi + 7], cl
mov ecx, dword [esp + 0x34]
sar eax, 4
shl cl, 2
or al, cl
shl dl, 4
mov ecx, dword [esp + 0x38]
mov byte [esi + 8], al
mov eax, ecx
sar eax, 2
or al, dl
shl cl, 6
or cl, byte [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov byte [esi + 9], al
mov eax, edx
mov byte [esi + 0xa], cl
mov ecx, dword [esp + 0x44]
shl cl, 2
sar eax, 4
or al, cl
shl dl, 4
mov ecx, dword [esp + 0x48]
mov byte [esi + 0xb], al
mov eax, ecx
shl cl, 6
or cl, byte [esp + 0x4c]
sar eax, 2
or al, dl
mov byte [esi + 0xd], cl
mov ecx, dword [esp + 0xec]
pop edi
mov byte [esi + 0xc], al
mov eax, 0xe
pop esi
pop ebx
xor ecx, esp
call fcn.101f6477
add esp, 0xe4
ret