Function at 0x140157419
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, 0x6b8
vmovaps xmmword [rsp + 0x6a0], xmm6
mov r13, r9
mov r14, r8
mov rbx, rdx
mov qword [rsp + 0x60], rcx
mov al, byte [rdx + 0x6a]
xor esi, esi
test al, al
setne sil
cmp al, 2
mov edi, 2
cmove esi, edi
mov al, byte [rdx + 0x6b]
xor ebp, ebp
test al, al
setne bpl
cmp al, 2
cmove ebp, edi
mov al, byte [rdx + 0x6c]
xor r12d, r12d
test al, al
setne r12b
cmp al, 2
cmove r12d, edi
add rdx, 0x50
lea r15, [rsp + 0x108]
mov rcx, r15
call fcn.140150301
mov cl, byte [rbx + 0x6d]
xor eax, eax
test cl, cl
setne al
cmp cl, 2
cmove eax, edi
mov dl, byte [rbx + 0x72]
mov r8b, byte [rbx + 0x6e]
xor ecx, ecx
test r8b, r8b
setne cl
cmp r8b, 2
cmove ecx, edi
vmovups ymm0, ymmword [rbx + 0x10]
mov r9b, byte [rbx + 0x6f]
xor r8d, r8d
test r9b, r9b
setne r8b
cmp r9b, 2
cmove r8d, edi
vmovups xmm1, xmmword [rbx]
mov r9b, byte [rbx + 0x70]
xor r10d, r10d
test r9b, r9b
setne r10b
cmp r9b, 2
cmove r10d, edi
vmovups ymm2, ymmword [rbx + 0x30]
mov r9b, byte [rbx + 0x71]
xor r11d, r11d
test r9b, r9b
setne r11b
cmp r9b, 2
cmove r11d, edi
movzx r9d, word [rbx + 0x68]
mov byte [r15 + 0x1a], sil
mov byte [r15 + 0x1b], bpl
mov byte [r15 + 0x1c], r12b
mov byte [r15 + 0x22], dl
vmovups ymmword [r15 - 0x40], ymm0
vmovups xmmword [r15 - 0x50], xmm1
mov byte [r15 + 0x1d], al
mov byte [r15 + 0x1e], cl
vmovups ymmword [r15 - 0x20], ymm2
mov byte [r15 + 0x1f], r8b
mov byte [r15 + 0x20], r10b
mov byte [r15 + 0x21], r11b
mov word [r15 + 0x18], r9w
mov esi, 8
test r13, r13
mov qword [rsp + 0x68], r13
je 0x14015758c
lea r15, [r13*8]
mov ecx, 8
mov rdx, r15
vzeroupper
call fcn.1400d2cea
test rax, rax
je 0x140157c17
mov rbp, rax
xor eax, eax
mov qword [rbp + rax*8], r14
inc rax
add r14, 0x30
cmp r13, rax
jne 0x140157579
jmp 0x140157594
xor r13d, r13d
mov ebp, 8
lea r15, [rsp + 0x40]
mov qword [r15], 8
vxorps xmm0, xmm0, xmm0
vmovups xmmword [r15 + 8], xmm0
mov qword [rsp + 0x90], r13
lea rdi, [r13*8]
xor ebx, ebx
xor r12d, r12d
cmp rdi, rbx
je 0x140157655
mov r14, qword [rbp + rbx]
vzeroupper
call fcn.140196836
mov r13, rax
mov rax, qword [r14 + 0x28]
mov rcx, qword [rax]
vmovups xmm0, xmmword [rax + 8]
vmovups ymm1, ymmword [rax + 0x18]
mov edx, dword [rax + 0x38]
vmovups xmm2, xmmword [rax + 0x3c]
movzx r8d, word [rax + 0x4c]
mov al, byte [rax + 0x4e]
mov qword [r13], rcx
vmovups xmmword [r13 + 8], xmm0
vmovups ymmword [r13 + 0x18], ymm1
mov dword [r13 + 0x38], edx
vmovups xmmword [r13 + 0x3c], xmm2
mov word [r13 + 0x4c], r8w
mov byte [r13 + 0x4e], al
cmp r12, qword [rsp + 0x48]
jne 0x14015763b
mov rcx, r15
mov rdx, r12
vzeroupper
call fcn.14014c392
mov rsi, qword [rsp + 0x40]
mov r12, qword [rsp + 0x50]
mov qword [rsi + r12*8], r13
mov r12, qword [rsp + 0x50]
inc r12
mov qword [rsp + 0x50], r12
add rbx, 8
jmp 0x1401575bf
mov rax, qword [rsp + 0x40]
lea rcx, [rax + r12*8]
lea r15, [rsp + 0x130]
mov qword [r15 + 0x10], rax
mov qword [r15 + 0x18], rcx
and qword [r15], 0
mov rcx, r15
vzeroupper
call fcn.140140c9d
xor r12d, r12d
neg rax
mov ebx, 0
sbb ebx, ebx
mov rcx, r15
call fcn.140140c9d
test rax, rax
mov qword [rsp + 0x98], rbp
je 0x1401576b7
mov rax, qword [rax]
mov rax, qword [rax]
mov r14, qword [rax + 0x20]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x80], rax
jmp 0x1401576ba
xor r14d, r14d
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x140]
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xa0], rax
cmp qword [rsp + 0x130], 0
sete r15b
mov al, 1
mov qword [rsp + 0x30], rax
mov r10, 0xffffffffffffffff
mov dl, 1
mov qword [rsp + 0x28], rdx
xor esi, esi
mov ebp, ebx
xor r13d, r13d
xor edi, edi
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x38], rdx
xor r11d, r11d
xor eax, eax
mov edx, eax
mov eax, edx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x70], r8
test r15b, 1
je 0x14015774a
cmp rcx, qword [rsp + 0xa0]
je 0x1401578a4
mov r8, rcx
add rcx, 8
jmp 0x14015775e
mov rdx, qword [rsp + 0xa8]
mov r8, rdx
test rdx, rdx
je 0x1401578a4
mov r9, qword [r8]
test byte [rsp + 0x28], 1
je 0x140157772
cmp byte [r9 + 0x4c], 0
setne dl
jmp 0x140157774
xor edx, edx
mov qword [rsp + 0x28], rdx
add rdi, qword [r9 + 0x30]
cmovb rdi, r10
mov r15, qword [r9 + 0x20]
mov rdx, r15
or rdx, r14
sete r8b
test r14, r14
je 0x1401577a9
test r15, r15
je 0x1401577a9
mov rdx, qword [rsp + 0x80]
cmp rdx, qword [r9 + 0x28]
sete r8b
xor edx, edx
test r8b, r8b
cmove r14, rdx
test byte [rsp + 0x30], 1
mov eax, 0
mov qword [rsp + 0x30], rax
je 0x1401577d0
cmp byte [r9 + 0x4d], 0
setne al
mov qword [rsp + 0x30], rax
test r11b, 1
jne 0x14015782e
cmp qword [r9], 0
je 0x140157824
mov rdx, qword [r9 + 8]
mov r8, qword [rsp + 0x38]
mov rax, r11
mov r11, r8
test r8, r8
sete r8b
mov r10, qword [rsp + 0x78]
cmp rdx, r10
setb r15b
or r15b, r8b
cmovne r10, rdx
mov qword [rsp + 0x78], r10
mov r10, 0xffffffffffffffff
mov edx, 1
cmovne r11, rdx
mov qword [rsp + 0x38], r11
mov r11, rax
jmp 0x14015782e
mov r11b, 1
xor edx, edx
mov qword [rsp + 0x38], rdx
or r13d, dword [r9 + 0x38]
and ebp, dword [r9 + 0x3c]
and ebx, dword [r9 + 0x40]
or esi, dword [r9 + 0x44]
or r12d, dword [r9 + 0x48]
mov r15b, 1
mov rax, qword [rsp + 0xb0]
test al, al
jne 0x14015772d
cmp qword [r9 + 0x10], 0
mov r8d, 0
mov dl, 1
je 0x14015771e
mov rdx, qword [r9 + 0x18]
mov r8, qword [rsp + 0x70]
test r8, r8
sete byte [rsp + 0x27]
mov r15, qword [rsp + 0x58]
cmp rdx, r15
seta r9b
or r9b, byte [rsp + 0x27]
cmovne r15, rdx
mov qword [rsp + 0x58], r15
mov edx, 1
cmovne r8, rdx
mov r15b, 1
jmp 0x14015771c
mov rax, qword [rsp + 0x28]
and al, 1
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x30]
and al, 1
mov qword [rsp + 0x30], rax
mov ecx, 0x50
mov edx, 8
call fcn.1400e826e
mov r15, rax
mov rax, qword [rsp + 0x38]
mov qword [r15], rax
mov rax, qword [rsp + 0x78]
mov qword [r15 + 8], rax
mov rax, qword [rsp + 0x70]
mov qword [r15 + 0x10], rax
mov rax, qword [rsp + 0x58]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x20], r14
mov rax, qword [rsp + 0x80]
mov qword [r15 + 0x28], rax
mov qword [r15 + 0x30], rdi
mov dword [r15 + 0x38], r13d
mov dword [r15 + 0x3c], ebp
mov dword [r15 + 0x40], ebx
mov dword [r15 + 0x44], esi
mov dword [r15 + 0x48], r12d
mov rax, qword [rsp + 0x28]
mov byte [r15 + 0x4c], al
mov byte [r15 + 0x4d], 0
mov rax, qword [rsp + 0x30]
mov byte [r15 + 0x4e], al
mov rax, qword [rsp + 0x50]
lea r12, [rsp + 0x130]
mov qword [r12 + 0x88], rax
vmovups xmm0, xmmword [rsp + 0x40]
vmovups xmmword [r12 + 0x78], xmm0
vmovups ymm0, ymmword [rsp + 0xb8]
vmovups ymm1, ymmword [rsp + 0xd8]
vmovups ymm2, ymmword [rsp + 0xf8]
vmovups ymm3, ymmword [rsp + 0x110]
vmovups ymmword [r12], ymm0
vmovups ymmword [r12 + 0x20], ymm1
vmovups ymmword [r12 + 0x40], ymm2
vmovups ymmword [r12 + 0x58], ymm3
mov ecx, 0xa8
mov edx, 8
vzeroupper
call fcn.1400e826e
mov r13, rax
mov eax, 1
mov qword [r13], rax
mov qword [r13 + 8], rax
lea rcx, [r13 + 0x10]
mov r8d, 0x90
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov qword [r13 + 0xa0], r15
mov qword [rsp + 0x88], r13
lea r15, [rsp + 0x130]
mov rcx, r15
mov rdx, r13
mov r13, qword [rsp + 0x98]
mov r8, r13
mov r9, qword [rsp + 0x90]
call fcn.140157c36
mov eax, dword [r15]
cmp eax, 2
jne 0x140157acd
mov rsi, qword [rsp + 0x138]
mov rdi, qword [rsp + 0x140]
lock inc qword [rsi]
jle 0x140157c21
mov ebx, 8
mov ecx, 0x10
mov edx, 8
call fcn.1400e826e
mov r14, rax
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov ecx, 0x40
mov edx, 0x200
call fcn.1400d2cea
test rax, rax
je 0x140157c25
lea r15, [rsp + 0x130]
mov qword [r15], rax
mov qword [r15 + 8], 8
xor edx, edx
vxorps xmm6, xmm6, xmm6
mov qword [rsp + 0x140], rdx
sub rbx, 1
jb 0x140157b39
cmp rdx, qword [rsp + 0x138]
jne 0x140157aa3
mov rcx, r15
call fcn.14014c443
mov rax, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x140]
shl rdx, 6
and qword [rax + rdx], 0
mov byte [rax + rdx + 8], 0
mov qword [rax + rdx + 0x10], 8
vmovups xmmword [rax + rdx + 0x18], xmm6
mov rdx, qword [rsp + 0x140]
inc rdx
jmp 0x140157a6f
mov ecx, dword [rsp + 0x134]
vmovups xmm0, xmmword [rsp + 0x138]
vmovups ymm1, ymmword [rsp + 0x148]
mov rdx, qword [rsp + 0x60]
vmovups ymmword [rdx + 0x18], ymm1
vmovups ymm1, ymmword [rsp + 0x168]
vmovups ymmword [rdx + 0x38], ymm1
vmovups ymm1, ymmword [rsp + 0x188]
vmovups ymmword [rdx + 0x58], ymm1
vmovups ymm1, ymmword [rsp + 0x198]
vmovups ymmword [rdx + 0x68], ymm1
mov dword [rdx], eax
mov dword [rdx + 4], ecx
vmovups xmmword [rdx + 8], xmm0
lea rcx, [rsp + 0x88]
vzeroupper
call fcn.140144e94
jmp 0x140157bed
lea r12, [rsp + 0x130]
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x50], rax
vmovups xmm0, xmmword [r12]
vmovaps xmmword [rsp + 0x40], xmm0
mov ecx, 0x5a8
mov edx, 8
call fcn.1400e826e
mov r15, rax
mov qword [rax], r14
lea rax, [0x140545b28]
mov qword [r15 + 8], rax
vmovaps xmm0, xmmword [rsp + 0x40]
vmovups xmmword [r15 + 0x10], xmm0
mov rax, qword [rsp + 0x50]
mov qword [r15 + 0x20], rax
and qword [r15 + 0x28], 0
mov qword [r15 + 0x30], 3
lea rcx, [r15 + 0x38]
mov r8d, 0x570
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsp + 0x88]
mov ecx, 0x28
mov edx, 8
call fcn.1400e826e
mov ecx, 1
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], rbx
mov rcx, qword [rsp + 0x60]
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], r15
mov dword [rcx], 2
mov rdx, qword [rsp + 0x68]
mov rcx, r13
call fcn.1400c514e
vmovaps xmm6, xmmword [rsp + 0x6a0]
add rsp, 0x6b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov rdx, r15
jmp 0x140157c2f
ud2
mov ecx, 0x40
mov edx, 0x200
call fcn.1400a9a20
ud2