Function at 0x14002e521
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, 0xb88
movaps xmmword [rsp + 0xb70], xmm6
cmp qword [rdx + 0x90], 1
jne 0x140032216
mov bpl, byte [rdx + 0x68]
mov al, byte [rdx + 0x74]
cmp bpl, 3
mov qword [rsp + 0x428], rcx
je 0x14002e565
cmp bpl, 2
jne 0x14002e567
jmp 0x14002e590
mov r9, qword [rdx + 0x50]
mov r8, qword [rdx + 0x58]
lock inc qword [r9]
jle 0x140032216
mov r15, r9
mov rcx, qword [rdx + 0x60]
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1d8], r8
xor ecx, ecx
test al, al
setne cl
cmp al, 2
mov eax, 2
cmovne eax, ecx
mov dword [rsp + 0x198], eax
mov al, byte [rdx + 0x7a]
mov byte [rsp + 0x270], al
mov al, byte [rdx + 0x75]
xor r14d, r14d
mov byte [rsp + 0x1f0], al
test al, al
setne byte [rsp + 0x278]
mov al, byte [rdx + 0x76]
xor r12d, r12d
mov byte [rsp + 0x7c], al
test al, al
setne byte [rsp + 0x78]
mov al, byte [rdx + 0x77]
xor r13d, r13d
mov byte [rsp + 0x288], al
test al, al
setne byte [rsp + 0x280]
mov al, byte [rdx + 0x78]
xor esi, esi
mov byte [rsp + 0x3f], al
test al, al
setne byte [rsp + 0x3e]
mov al, byte [rdx + 0x79]
mov byte [rsp + 0x298], al
test al, al
mov al, byte [rdx + 0x70]
mov byte [rsp + 0x2a0], al
mov al, byte [rdx + 0x71]
mov byte [rsp + 0x124], al
mov rax, qword [rdx + 0x88]
mov rdi, qword [rax + 8]
mov rbx, qword [rax + 0x10]
mov al, byte [rdx + 0x9c]
mov byte [rsp + 0x134], al
mov al, byte [rdx + 0x9d]
mov byte [rsp + 0x2c0], al
mov al, byte [rdx + 0x9e]
mov byte [rsp + 0x2d0], al
mov al, byte [rdx + 0x9f]
mov byte [rsp + 0x130], al
mov al, byte [rdx + 0xa0]
mov byte [rsp + 0x12c], al
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x50], rax
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x30], rax
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x58], rax
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0xc8], rax
mov rax, qword [rdx]
mov qword [rsp + 0x558], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x1f8], rax
mov rax, qword [rdx + 0x30]
mov qword [rsp + 0x40], rax
mov rax, qword [rdx + 0x38]
mov qword [rsp + 0x48], rax
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x290], rax
mov rax, qword [rdx + 0x48]
mov qword [rsp + 0x118], rax
mov eax, dword [rdx + 0x98]
mov dword [rsp + 0x2b8], eax
mov al, byte [rdx + 0xa1]
mov byte [rsp + 0x2c8], al
mov al, byte [rdx + 0xa2]
mov byte [rsp + 0x2a8], al
mov al, byte [rdx + 0xa3]
mov byte [rsp + 0x2b0], al
mov al, byte [rdx + 0xa5]
mov byte [rsp + 0x128], al
setne byte [rsp + 0x1e8]
mov rcx, rbx
call fcn.14003e2ca
mov qword [rsp + 0x430], rdx
mov qword [rsp + 0x550], rax
lea rcx, [rax + 0x10]
mov qword [rsp + 0x2d8], rcx
mov rdx, rdi
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
and qword [rsp + 0x4b0], 0
mov r11b, 3
mov eax, 2
mov qword [rsp + 0x4c0], rax
mov qword [rsp + 0x4d0], rax
mov qword [rsp + 0x4e0], rax
mov qword [rsp + 0x4f0], rax
mov byte [rsp + 0x518], r11b
mov byte [rsp + 0x520], 0
movabs rcx, 0x202020202020202
mov qword [rsp + 0x522], rcx
mov byte [rsp + 0x52a], r11b
mov qword [rsp + 0x538], 0xfa
movabs rcx, 0xa02020202020201
mov qword [rsp + 0x530], rcx
mov qword [rsp + 0x570], r15
mov rcx, qword [rsp + 0x1d8]
mov qword [rsp + 0x578], rcx
mov rdx, qword [rsp + 0x1e0]
mov qword [rsp + 0x580], rdx
mov byte [rsp + 0x588], bpl
cmp bpl, r11b
jne 0x14002e86a
lea rdi, [rsp + 0x500]
lea rcx, [rsp + 0x2e0]
mov rdx, rdi
call fcn.14004202f
lea rcx, [rsp + 0x570]
call fcn.140036403
mov r11b, byte [rdi + 0x2a]
mov rcx, qword [rdi - 0x50]
mov rdx, qword [rdi - 0x40]
mov r8, qword [rdi - 0x30]
mov r9b, byte [rdi + 0x25]
mov r10b, byte [rdi + 0x26]
mov rax, qword [rdi - 0x20]
mov qword [rsp + 0x420], rax
mov rax, qword [rdi - 0x10]
mov bl, byte [rdi + 0x27]
pop rdi
invalid
mov byte [rsp + 0x1d8], bl
mov r15b, byte [rdi + 0x28]
mov bl, byte [rdi + 0x29]
mov byte [rsp + 0x1e0], bl
mov dil, byte [rdi + 0x20]
jmp 0x14002e8bf
mov qword [rsp + 0x2e0], r15
mov qword [rsp + 0x2e8], rcx
mov qword [rsp + 0x2f0], rdx
mov byte [rsp + 0x2f8], bpl
mov byte [rsp + 0x1e0], 2
xor edi, edi
mov r15b, 2
mov byte [rsp + 0x1d8], 2
mov ecx, 2
mov qword [rsp + 0x420], rcx
mov r10b, 2
mov r9b, 2
xor ecx, ecx
mov r8d, 2
mov edx, 2
mov bl, byte [rsp + 0x270]
cmp bl, 3
movzx r11d, r11b
movzx ebp, bl
cmove ebp, r11d
cmp qword [rsp + 0x50], 2
mov r11, qword [rsp + 0x30]
jne 0x14002e8ee
mov r11, qword [rsp + 0x4c8]
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x30], r11
cmp qword [rsp + 0x58], 2
jne 0x14002e910
mov rdx, qword [rsp + 0x4d8]
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0x58], r8
mov edx, 1
cmp qword [rsp + 0x558], 0
jne 0x14002e933
mov rdx, qword [rsp + 0x4b8]
mov qword [rsp + 0x1f8], rdx
mov rdx, rcx
mov qword [rsp + 0x270], rdx
cmp byte [rsp + 0x1f0], 2
movzx ecx, r9b
mov dl, byte [rsp + 0x278]
mov r14b, dl
cmove r14d, ecx
cmp byte [rsp + 0x7c], 2
movzx ecx, r10b
mov dl, byte [rsp + 0x78]
mov r12b, dl
cmove r12d, ecx
mov dword [rsp + 0x7c], r12d
cmp qword [rsp + 0x40], 2
jne 0x14002e990
mov rcx, qword [rsp + 0x4e8]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x420]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x78], r14d
mov rcx, qword [rsp + 0x290]
cmp rcx, 2
jne 0x14002e9b6
mov rcx, qword [rsp + 0x4f8]
mov qword [rsp + 0x118], rcx
mov rcx, rax
cmp byte [rsp + 0x288], 2
movzx eax, byte [rsp + 0x1d8]
mov dl, byte [rsp + 0x280]
mov r13b, dl
cmove r13d, eax
cmp byte [rsp + 0x3f], 2
movzx eax, r15b
mov dl, byte [rsp + 0x3e]
mov sil, dl
cmove esi, eax
cmp byte [rsp + 0x298], 2
movzx eax, byte [rsp + 0x1e0]
mov dh, 0x84
and al, 0xe0
add dword [rax], eax
add byte [rcx - 0x44], al
add byte [rax], al
add byte [rax], al