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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rdi, rcx
mov rax, qword [rsp + 0x120]
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0xb0], rcx
mov dword [rsp + 0xac], 0
mov dword [rsp + 0xa8], 0
mov r15, 0xffffffffffffffd4
cmp rax, 0x5d4
jb 0x14011333b
mov rsi, r9
mov eax, dword [rsp + 0x128]
lea rcx, [r9 + 0x68]
lea r14, [r9 + 0x4d4]
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0xac]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], 0x36c
lea r9, [rsp + 0xa8]
mov edx, 0x100
mov rcx, r14
mov r8, rsi
call fcn.1400b08c0
mov r11, rax
cmp rax, 0xffffffffffffff88
ja 0x140113331
mov ebp, dword [rdi]
movzx eax, bpl
inc eax
cmp eax, 0xb
mov r13d, 0xb
cmovb r13d, eax
mov ebx, dword [rsp + 0xac]
mov r12d, dword [rsp + 0xa8]
mov ecx, r13d
sub ecx, ebx
jae 0x140112a34
cmp ebx, eax
jbe 0x140112c1b
jmp 0x14011333b
jbe 0x140112a50
test r12, r12
je 0x140112b3e
movzx edx, cl
cmp r12d, 8
jae 0x140112a58
xor r8d, r8d
jmp 0x140112c63
mov ebx, r13d
jmp 0x140112c1b
cmp r12d, 0x20
jae 0x140112a66
xor r8d, r8d
jmp 0x140112aec
mov r8d, r12d
and r8d, 0xffffffe0
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor eax, eax
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rsi + rax + 0x4d4]
movdqu xmm3, xmmword [rsi + rax + 0x4e4]
movdqa xmm4, xmm2
pcmpeqb xmm4, xmm1
pandn xmm4, xmm0
movdqa xmm5, xmm3
pcmpeqb xmm5, xmm1
pandn xmm5, xmm0
paddb xmm4, xmm2
paddb xmm5, xmm3
movdqu xmmword [rsi + rax + 0x4d4], xmm4
movdqu xmmword [rsi + rax + 0x4e4], xmm5
add rax, 0x20
cmp r8, rax
jne 0x140112a90
cmp r8, r12
je 0x140112b3e
test r12b, 0x18
je 0x140112c63
mov rax, r8
mov r8d, r12d
and r8d, 0xfffffff8
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pxor xmm1, xmm1
nop word [rax + rax]
movq xmm2, qword [r14 + rax]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm1
pandn xmm3, xmm0
paddb xmm3, xmm2
movq qword [r14 + rax], xmm3
add rax, 8
cmp r8, rax
jne 0x140112b10
cmp r8, r12
jne 0x140112c63
mov r15, rbx
mov qword [rsp + 0x58], r11
cmp ecx, r13d
jae 0x140112bf0
mov edx, r13d
mov r9, r15
lea eax, [r15 - 1]
mov r8d, r9d
and r8d, 3
je 0x140112b86
nop word cs:[rax + rax]
mov r10d, r9d
mov r10d, dword [rsi + r10*4]
mov dword [rsi + rdx*4], r10d
dec rdx
dec r9d
dec r8d
jne 0x140112b70
cmp eax, 3
jb 0x140112bf0
lea r8, [rsi + rdx*4]
lea r9d, [r15 + rdx]
sub r9d, r13d
lea r10d, [r9 - 3]
lea r11d, [r9 - 2]
lea ebx, [r9 - 1]
xor eax, eax
nop word cs:[rax + rax]
lea r14d, [r9 + rax]
mov r14d, dword [rsi + r14*4]
mov dword [r8 + rax*4], r14d
lea r14d, [rbx + rax]
mov r14d, dword [rsi + r14*4]
mov dword [r8 + rax*4 - 4], r14d
lea r14d, [r11 + rax]
mov r14d, dword [rsi + r14*4]
mov dword [r8 + rax*4 - 8], r14d
lea r14d, [r10 + rax]
mov r14d, dword [rsi + r14*4]
mov dword [r8 + rax*4 - 0xc], r14d
add rax, 0xfffffffffffffffc
lea r14d, [rax + rdx]
cmp ecx, r14d
jb 0x140112bb0
cmp r13d, r15d
je 0x140112c13
mov eax, ecx
not r15d
add r15d, r13d
sub rax, r15
lea rcx, [rsi + rax*4]
lea r8, [r15*4 + 4]
xor edx, edx
call fcn.140124a30
mov ebx, r13d
mov r11, qword [rsp + 0x58]
mov eax, ebp
shr eax, 0x18
mov byte [rdi], bpl
mov byte [rdi + 1], 0
mov byte [rdi + 2], bl
mov byte [rdi + 3], al
test ebx, ebx
js 0x140112ce7
mov edx, ebx
inc rdx
mov ecx, edx
and ecx, 3
cmp ebx, 3
jae 0x140112c74
xor eax, eax
xor r8d, r8d
jmp 0x140112cbc
add r9b, al
mov byte [r14 + r8], r9b
inc r8
cmp r12, r8
je 0x140112b3e
movzx eax, byte [r14 + r8]
xor r9d, r9d
test al, al
je 0x140112c50
mov r9d, edx
jmp 0x140112c50
and edx, 0xfffffffc
xor eax, eax
xor r8d, r8d
nop dword [rax]
mov r9d, dword [rsi + rax*4]
add r9d, r8d
mov dword [rsi + rax*4 + 0x34], r8d
mov r8d, dword [rsi + rax*4 + 4]
add r8d, r9d
mov dword [rsi + rax*4 + 0x38], r9d
mov r9d, dword [rsi + rax*4 + 8]
add r9d, r8d
mov dword [rsi + rax*4 + 0x3c], r8d
mov r8d, dword [rsi + rax*4 + 0xc]
add r8d, r9d
mov dword [rsi + rax*4 + 0x40], r9d
add rax, 4
cmp rdx, rax
jne 0x140112c80
test rcx, rcx
je 0x140112ce7
lea rax, [rsi + rax*4]
xor edx, edx
nop word [rax + rax]
mov r9d, dword [rax + rdx*4]
add r9d, r8d
mov dword [rax + rdx*4 + 0x34], r8d
inc rdx
mov r8d, r9d
cmp rcx, rdx
jne 0x140112cd0
xor ecx, ecx
cmp r12d, 4
jl 0x140112d8e
lea eax, [r12 - 3]
mov edx, eax
xor ecx, ecx
nop dword [rax]
movzx eax, byte [rsi + rcx + 0x4d4]
mov r8d, dword [rsi + rax*4 + 0x34]
lea r9d, [r8 + 1]
mov dword [rsi + rax*4 + 0x34], r9d
mov byte [rsi + r8 + 0x3d4], cl
movzx eax, byte [rsi + rcx + 0x4d5]
mov r8d, dword [rsi + rax*4 + 0x34]
lea r9d, [r8 + 1]
mov dword [rsi + rax*4 + 0x34], r9d
lea eax, [rcx + 1]
mov byte [rsi + r8 + 0x3d4], al
movzx eax, byte [rsi + rcx + 0x4d6]
mov r8d, dword [rsi + rax*4 + 0x34]
lea r9d, [r8 + 1]
mov dword [rsi + rax*4 + 0x34], r9d
lea eax, [rcx + 2]
mov byte [rsi + r8 + 0x3d4], al
movzx eax, byte [rsi + rcx + 0x4d7]
mov r8d, dword [rsi + rax*4 + 0x34]
lea r9d, [r8 + 1]
mov dword [rsi + rax*4 + 0x34], r9d
lea eax, [rcx + 3]
mov byte [rsi + r8 + 0x3d4], al
add rcx, 4
cmp rcx, rdx
jb 0x140112d00
cmp ecx, r12d
jge 0x140112e24
mov edx, ecx
mov r8d, r12d
sub r8d, ecx
mov rax, rdx
not rax
test r8b, 1
je 0x140112dcd
movzx r8d, byte [rsi + rdx + 0x4d4]
mov r9d, dword [rsi + r8*4 + 0x34]
lea r10d, [r9 + 1]
mov dword [rsi + r8*4 + 0x34], r10d
mov byte [rsi + r9 + 0x3d4], cl
inc rdx
add rax, r12
je 0x140112e24
nop word cs:[rax + rax]
movzx eax, byte [rsi + rdx + 0x4d4]
mov ecx, dword [rsi + rax*4 + 0x34]
lea r8d, [rcx + 1]
mov dword [rsi + rax*4 + 0x34], r8d
mov byte [rsi + rcx + 0x3d4], dl
movzx eax, byte [rsi + rdx + 0x4d5]
mov ecx, dword [rsi + rax*4 + 0x34]
lea r8d, [rcx + 1]
mov dword [rsi + rax*4 + 0x34], r8d
lea eax, [rdx + 1]
mov byte [rsi + rcx + 0x3d4], al
add rdx, 2
cmp rdx, r12
jne 0x140112de0
inc ebx
cmp ebx, 2
jb 0x140113331
mov qword [rsp + 0x58], r11
mov r8d, dword [rsi]
mov eax, ebx
mov qword [rsp + 0x98], rax
lea rax, [rdi + 4]
mov qword [rsp + 0x88], rax
lea rax, [rsi + 0x3d4]
mov qword [rsp + 0x80], rax
lea rax, [rsi + 0x3d5]
mov qword [rsp + 0x60], rax
lea rax, [rsi + 0x3dc]
mov qword [rsp + 0x70], rax
lea rax, [rdi + 0x14]
mov qword [rsp + 0x68], rax
lea rax, [rdi + 7]
mov qword [rsp + 0x78], rax
lea rax, [rdi + 0x1c]
mov qword [rsp + 0x90], rax
xor eax, eax
mov qword [rsp + 0x50], rax
mov ecx, 1
mov qword [rsp + 0xa0], rbx
jmp 0x140112eda
add r8d, r12d
imul r12d, r10d
add r12d, dword [rsp + 0x50]
inc rcx
mov qword [rsp + 0x50], r12
cmp rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
je 0x140113336
mov ebp, 1
shl ebp, cl
mov r12d, dword [rsi + rcx*4]
mov r10d, ebp
sar r10d, 1
mov r11d, ebx
sub r11d, ecx
lea eax, [r10 - 1]
cmp eax, 7
ja case.0x140112f0c.3
lea rdx, [0x140113364]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
test r12d, r12d
jle 0x140112eb0
movsxd rbp, r8d
movsxd rax, dword [rsp + 0x50]
cmp r12d, 0x10
jb 0x140112f5a
mov rbx, qword [rsp + 0x88]
lea rdx, [rbx + rax*2]
lea r9, [r12 + rbp]
mov r14, qword [rsp + 0x80]
add r9, r14
cmp rdx, r9
jae 0x1401132b9
lea rdx, [rax + r12]
lea rdx, [rbx + rdx*2]
lea r9, [r14 + rbp]
cmp r9, rdx
jae 0x1401132b9
mov rbx, rax
xor r14d, r14d
test r12b, 1
jne 0x14011324c
mov r15, r14
jmp 0x14011326b
test r12d, r12d
jle 0x140112eb0
movsxd r14, r8d
movsxd rbx, dword [rsp + 0x50]
cmp r12d, 1
jne 0x140113097
xor eax, eax
jmp 0x1401130ec
test r12d, r12d
jle 0x140112eb0
movzx r11d, r11b
movsxd rbx, r10d
movsxd r14, r8d
movsxd rax, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x90]
lea rax, [rdx + rax*2]
lea r15, [rbx + rbx]
xor r9d, r9d
jmp 0x140112fef
inc r9
add rax, r15
cmp r9, r12
je 0x140112eb0
cmp ebp, 2
jl 0x140112fe0
lea rdx, [r9 + r14]
movzx r13d, byte [rsi + rdx + 0x3d4]
shl r13, 8
or r13, r11
movabs rdx, 0x1000100010001
imul r13, rdx
xor edx, edx
nop dword [rax + rax]
mov qword [rax + rdx*2 - 0x18], r13
mov qword [rax + rdx*2 - 0x10], r13
mov qword [rax + rdx*2 - 8], r13
mov qword [rax + rdx*2], r13
add rdx, 0x10
cmp rdx, rbx
jl 0x140113020
jmp 0x140112fe0
test r12d, r12d
jle 0x140112eb0
movzx r11d, r11b
movsxd r14, r8d
movsxd rbx, dword [rsp + 0x50]
cmp r12d, 1
jne 0x140113118
xor eax, eax
jmp 0x140113178
test r12d, r12d
jle 0x140112eb0
movzx ebp, r11b
movsxd rbx, r8d
movsxd r11, dword [rsp + 0x50]
cmp r12d, 1
jne 0x1401131ac
xor r14d, r14d
jmp 0x140113212
mov r9d, r12d
and r9d, 0xfffffffe
mov rax, qword [rsp + 0x60]
lea r15, [rax + r14]
xor eax, eax
nop dword [rax]
movzx edx, byte [r15 + rax - 1]
mov byte [rdi + rbx*2 + 4], r11b
mov byte [rdi + rbx*2 + 5], dl
mov byte [rdi + rbx*2 + 6], r11b
mov byte [rdi + rbx*2 + 7], dl
movzx edx, byte [r15 + rax]
mov byte [rdi + rbx*2 + 8], r11b
mov byte [rdi + rbx*2 + 9], dl
mov byte [rdi + rbx*2 + 0xa], r11b
mov byte [rdi + rbx*2 + 0xb], dl
add rbx, 4
add rax, 2
cmp r9, rax
jne 0x1401130b0
test r12b, 1
je 0x140112eb0
add rax, r14
movzx eax, byte [rsi + rax + 0x3d4]
mov byte [rdi + rbx*2 + 4], r11b
mov byte [rdi + rbx*2 + 5], al
mov byte [rdi + rbx*2 + 6], r11b
mov byte [rdi + rbx*2 + 7], al
jmp 0x140112eb0
mov r9d, r12d
and r9d, 0xfffffffe
mov rax, qword [rsp + 0x60]
lea r15, [rax + r14]
xor eax, eax
movabs r13, 0x1000100010001
nop word cs:[rax + rax]
movzx edx, byte [r15 + rax - 1]
shl rdx, 8
or rdx, r11
imul rdx, r13
mov qword [rdi + rbx*2 + 4], rdx
movzx edx, byte [r15 + rax]
shl rdx, 8
or rdx, r11
imul rdx, r13
mov qword [rdi + rbx*2 + 0xc], rdx
add rbx, 8
add rax, 2
cmp r9, rax
jne 0x140113140
test r12b, 1
je 0x140112eb0
add rax, r14
movzx eax, byte [rsi + rax + 0x3d4]
shl rax, 8
or rax, r11
movabs rdx, 0x1000100010001
imul rax, rdx
mov qword [rdi + rbx*2 + 4], rax
jmp 0x140112eb0
mov eax, r12d
and eax, 0xfffffffe
mov rdx, qword [rsp + 0x60]
lea r9, [rdx + rbx]
xor r14d, r14d
movabs r15, 0x1000100010001
nop dword [rax + rax]
movzx edx, byte [r9 + r14 - 1]
shl rdx, 8
or rdx, rbp
imul rdx, r15
mov qword [rdi + r11*2 + 4], rdx
mov qword [rdi + r11*2 + 0xc], rdx
movzx edx, byte [r9 + r14]
shl rdx, 8
or rdx, rbp
imul rdx, r15
mov qword [rdi + r11*2 + 0x14], rdx
mov qword [rdi + r11*2 + 0x1c], rdx
add r11, 0x10
add r14, 2
cmp rax, r14
jne 0x1401131d0
test r12b, 1
je 0x140112eb0
add r14, rbx
movzx eax, byte [rsi + r14 + 0x3d4]
shl rax, 8
or rax, rbp
movabs rdx, 0x1000100010001
imul rax, rdx
mov qword [rdi + r11*2 + 4], rax
mov qword [rdi + r11*2 + 0xc], rax
jmp 0x140112eb0
lea rax, [r14 + rbp]
movzx eax, byte [rsi + rax + 0x3d4]
mov byte [rdi + rbx*2 + 4], r11b
mov byte [rdi + rbx*2 + 5], al
inc rbx
mov r15, r14
or r15, 1
not r14
add r14, r12
je 0x140112eb0
mov rax, qword [rsp + 0x78]
lea rax, [rax + rbx*2]
mov r9, r12
sub r9, r15
add rbp, r15
add rbp, qword [rsp + 0x60]
xor ebx, ebx
movzx edx, byte [rbp + rbx - 1]
mov byte [rax + rbx*2 - 3], r11b
mov byte [rax + rbx*2 - 2], dl
movzx edx, byte [rbp + rbx]
mov byte [rax + rbx*2 - 1], r11b
mov byte [rax + rbx*2], dl
add rbx, 2
cmp r9, rbx
jne 0x140113290
jmp 0x140112eb0
mov r14d, r12d
and r14d, 0xfffffff0
lea rbx, [r14 + rax]
movzx edx, r11b
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
mov rdx, qword [rsp + 0x70]
lea r9, [rdx + rbp]
mov rdx, qword [rsp + 0x68]
lea rax, [rdx + rax*2]
xor r15d, r15d
nop word [rax + rax]
movq xmm1, qword [r9 + r15 - 8]
movq xmm2, qword [r9 + r15]
movdqa xmm3, xmm0
punpcklbw xmm3, xmm1
movdqu xmmword [rax + r15*2 - 0x10], xmm3
movdqa xmm1, xmm0
punpcklbw xmm1, xmm2
movdqu xmmword [rax + r15*2], xmm1
add r15, 0x10
cmp r14, r15
jne 0x1401132f0
cmp r14, r12
je 0x140112eb0
jmp 0x140112f60
mov r15, r11
jmp 0x14011333b
mov r15, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.14011fde0
mov rax, r15
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret