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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rbx, qword [0x140207460]
movdqu xmm1, xmmword [rdx + 4]
movdqu xmm0, xmmword [rdx + 0x14]
mov r13d, dword [rdx + 4]
mov rax, qword [rbx]
mov qword [rsp + 0xc8], rax
xor eax, eax
mov eax, dword [rdx + 0x24]
mov rbx, qword [rcx + 0x90]
mov rsi, rcx
mov qword [rsp + 0x30], r8
mov rdi, rdx
mov dword [rsp + 0x60], eax
mov eax, dword [rbx + 0xc]
movups xmmword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x50], xmm0
cmp dword [rbx + 8], eax
jb 0x140156b7a
mov eax, dword [rbx + 4]
mov edx, dword [rbx]
add eax, eax
cmp eax, edx
jae 0x140156ef8
sub edx, 1
mov rcx, rbx
call fcn.140155cd0
mov r15d, dword [rbx]
mov r11, qword [rbx + 0x10]
lea ebp, [r15 - 1]
mov r10d, ebp
and r10d, r13d
mov eax, r10d
shr eax, 4
lea r12, [r11 + rax*4]
lea eax, [r10 + r10]
mov edx, dword [r12]
mov ecx, eax
mov dword [rsp + 0x3c], eax
and ecx, 0x1e
mov r8d, edx
shr r8d, cl
and r8d, 2
jne 0x140156de0
mov rax, qword [0x140207cf0]
mov r14d, r15d
lea r12, [rsp + 0x70]
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
mov eax, r10d
jmp 0x140156c9b
mov rcx, qword [rbx + 0x18]
mov edx, eax
mov dword [rsp + 0x40], r13d
lea rdx, [rdx + rdx*8]
movdqu xmm4, xmmword [rsp + 0x40]
movdqu xmm5, xmmword [rsp + 0x50]
lea rdx, [rcx + rdx*4]
mov ecx, dword [rsp + 0x60]
movdqu xmm2, xmmword [rdx]
movdqu xmm3, xmmword [rdx + 0x10]
movups xmmword [rsp + 0x70], xmm4
movsxd rdx, dword [rdx + 0x20]
mov dword [rsp + 0x90], ecx
movups xmmword [rsp + 0xa0], xmm2
mov dword [rsp + 0xc0], edx
movups xmmword [rsp + 0xb0], xmm3
movups xmmword [rsp + 0x80], xmm5
test edx, edx
jne 0x140156d50
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx + 0x100]
cmp qword [rdx + 0x10], 0x20
mov rdx, qword [rsp + 0xa0]
je 0x140156d76
mov rcx, qword [rsp + 0xa8]
xor rdx, qword [r12]
xor rcx, qword [r12 + 8]
or rdx, rcx
je 0x140156dc0
mov edx, 1
xor edx, 1
test edx, edx
jne 0x140156f88
add r8d, 1
add eax, r8d
and eax, ebp
cmp r10d, eax
je 0x140156cca
mov edx, eax
shr edx, 4
mov edx, dword [r11 + rdx*4]
lea r9d, [rax + rax]
mov ecx, r9d
and ecx, 0x1e
shr edx, cl
test dl, 2
jne 0x140156f88
and edx, 1
je 0x140156bd8
add r8d, 1
mov r14d, eax
add eax, r8d
and eax, ebp
cmp r10d, eax
jne 0x140156c92
cmp r15d, r14d
je 0x140156fcc
mov eax, r14d
lea ecx, [r14 + r14]
shr eax, 4
and ecx, 0x1e
lea r12, [r11 + rax*4]
mov edx, dword [r12]
shr edx, cl
mov r8d, edx
and r8d, 2
mov ebp, r14d
lea rax, [rbp*4]
test r8d, r8d
jne 0x140156dd9
and edx, 1
je 0x140156f70
mov rdx, qword [rbx + 0x18]
mov dword [rsp + 0x40], r13d
lea rax, [rbp + rbp*8]
movdqu xmm1, xmmword [rsp + 0x40]
lea rax, [rdx + rax*4]
mov edx, dword [rsp + 0x60]
movups xmmword [rax], xmm1
movdqu xmm1, xmmword [rsp + 0x50]
mov dword [rax + 0x20], edx
movups xmmword [rax + 0x10], xmm1
mov eax, 3
shl eax, cl
not eax
and dword [r12], eax
add dword [rbx + 4], 1
jmp 0x140156e32
lea rcx, [rdx + rdx*2]
lea rdx, [rdx + rcx*4]
mov rcx, qword [0x1402079b0]
lea rdx, [rcx + rdx*8]
cmp qword [rdx + 0x10], 0x20
mov rdx, qword [rsp + 0xa0]
jne 0x140156c5a
mov rcx, qword [rsp + 0xa8]
xor rdx, qword [r12]
xor rcx, qword [r12 + 8]
or rdx, rcx
jne 0x140156c74
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb8]
xor rdx, qword [r12 + 0x10]
xor rcx, qword [r12 + 0x18]
or rdx, rcx
jne 0x140156c74
xor edx, edx
jmp 0x140156c79
mov ecx, dword [r12 + 0x10]
cmp dword [rsp + 0xb0], ecx
jne 0x140156c74
xor edx, edx
jmp 0x140156c79
mov r10d, r14d
nop dword [rax]
mov rax, qword [rbx + 0x18]
mov ebp, r10d
movdqu xmm0, xmmword [rsp + 0x50]
mov dword [rsp + 0x40], r13d
lea rdx, [rbp + rbp*8]
movdqu xmm1, xmmword [rsp + 0x40]
lea rax, [rax + rdx*4]
mov edx, dword [rsp + 0x60]
movups xmmword [rax], xmm1
movq xmm1, qword [0x1401f4f60]
mov dword [rax + 0x20], edx
movups xmmword [rax + 0x10], xmm0
mov eax, 3
shl eax, cl
not eax
and dword [r12], eax
movq xmm0, qword [rbx + 4]
paddd xmm0, xmm1
movq qword [rbx + 4], xmm0
mov r10d, dword [rsi + 0x88]
mov eax, dword [rsi + 0x8c]
cmp r10d, eax
jae 0x140156f20
mov rax, qword [rsi + 0x80]
mov edx, r10d
mov rcx, qword [rsi + 0x78]
lea r11, [rax + rdx*4]
mov rax, qword [rsp + 0x30]
mov qword [rcx + rdx*8], rdi
test rax, rax
je 0x140156fc0
lea rdx, [rax + 1]
movsx eax, byte [rax]
xor ecx, ecx
test eax, eax
je 0x140156e9e
mov r9, qword [str._________AA__A__________________]
movzx r8d, al
test byte [r9 + r8], 1
jne 0x140156e93
shr ecx, 2
shl eax, 0x18
add ecx, eax
movsx eax, byte [rdx]
add rdx, 1
test eax, eax
jne 0x140156e80
mov rax, qword [rsi + 0x90]
mov dword [r11], ecx
mov rax, qword [rax + 0x20]
mov dword [rax + rbp*4], r10d
add dword [rsi + 0x88], 1
mov rax, qword [rsi + 8]
test rax, rax
je 0x140156f10
mov eax, dword [rax + 0x3c]
mov rdi, qword [0x140207460]
add eax, r10d
mov rdx, qword [rsp + 0xc8]
sub rdx, qword [rdi]
jne 0x140156fc7
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
add edx, 1
mov rcx, rbx
call fcn.140155cd0
jmp 0x140156b7a
mov rax, qword [rsi]
mov eax, dword [rax + 0x48]
jmp 0x140156ec3
lea eax, [rax + rax*2 + 0x30]
mov rcx, qword [rsi + 0x78]
shr eax, 1
mov dword [rsi + 0x8c], eax
lea rdx, [rax*8]
call fcn.1400a61c0
mov edx, dword [rsi + 0x8c]
mov rcx, qword [rsi + 0x80]
mov qword [rsi + 0x78], rax
shl rdx, 2
call fcn.1400a61c0
mov r10d, dword [rsi + 0x88]
mov qword [rsi + 0x80], rax
jmp 0x140156e4f
mov rdx, qword [rsi + 0x90]
mov rdx, qword [rdx + 0x20]
mov r10d, dword [rdx + rax]
jmp 0x140156eb7
mov edx, eax
mov ecx, r9d
shr edx, 4
and ecx, 0x1e
lea r12, [r11 + rdx*4]
mov edx, dword [r12]
shr edx, cl
mov r8d, edx
and r8d, 2
cmp r15d, r14d
je 0x140156fb2
test r8d, r8d
jne 0x140156cd3
mov r14d, eax
jmp 0x140156cf1
xor ecx, ecx
jmp 0x140156e9e
call fcn.1401be670
mov eax, r10d
mov ecx, dword [rsp + 0x3c]
mov r14d, r10d
shr eax, 4
lea r12, [r11 + rax*4]
and ecx, 0x1e
mov edx, dword [r12]
shr edx, cl
mov r8d, edx
and r8d, 2
jmp 0x140156cf1