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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rax, qword [rdx + 0x148]
mov rsi, rdx
mov qword [rcx + 0xb0], rax
mov rbx, rcx
movsxd r13, dword [rdx + 0x34]
mov edi, dword [rdx + 0x38]
mov eax, dword [rdx + 0x90]
add edi, r13d
movsx rbp, word [rdx + 0x130]
mov qword [rdx + 0x148], 0
mov r14, qword [rcx]
mov dword [rsp + 0x90], r13d
mov dword [rsp + 0x88], eax
test r13d, r13d
jne 0x140309cc5
test edi, edi
jle 0x140309cc5
inc edi
mov eax, dword [rcx + 0x90]
lea ecx, [rax + rax*2]
mov eax, dword [rdx + 0x3c]
shl ecx, 3
lea rdx, [rsp + 0x88]
sub eax, ecx
movsxd r12, ecx
add r12, qword [rbx + 0x88]
mov rcx, rbx
movsxd r15, eax
and r15, 0xfffffffffffffff8
call fcn.1402a5760
cmp byte [rsi + 0x20], 0
je 0x140309d0d
cmp byte [rsi + 0x21], 0
je 0x140309d0d
mov eax, 0x20
xor r8d, r8d
jmp 0x140309d13
xor r8d, r8d
mov eax, r8d
mov edx, dword [rbx + 0xc8]
and edx, 0xffffffdf
or edx, eax
mov dword [rbx + 0xc8], edx
movzx eax, byte [rsi + 0x133]
test al, al
je 0x140309d61
mov ecx, 0xa
cmp edi, ecx
cmovl edi, ecx
shl eax, 2
xor eax, edx
and eax, 0xc
xor eax, edx
mov ecx, eax
mov edx, eax
shr ecx, 2
mov eax, 3
and cx, 3
sub ax, cx
shl ax, 2
mov word [rbx + 0xc0], ax
and edx, 0xfffffffc
movsxd rax, edi
mov dword [rbx + 0xc8], edx
imul rdx, rax, 0x38
mov rax, r8
mov qword [rsp + 0x98], rdx
cmp rdx, r15
jg 0x140309d8a
mov rax, r12
sub rax, rdx
add rax, r15
mov rcx, r15
mov qword [rbx + 0x68], rax
sub rcx, rdx
mov rsi, r8
cmp rdx, r15
cmovg rsi, rdx
cmovg rcx, r15
imul rax, rbp, 0x38
mov rdx, r8
mov qword [rsp + 0x20], rax
cmp rax, rcx
jg 0x140309dbc
sub rcx, rax
lea rdx, [rcx + r12]
jmp 0x140309dbf
add rsi, rax
movsxd r15, dword [rsp + 0x88]
mov rax, r8
shl r15, 3
mov qword [rbx + 0x80], rdx
cmp r15, rcx
jg 0x140309de5
mov rax, r12
sub rax, r15
add rax, rcx
jmp 0x140309de8
add rsi, r15
mov rdx, rcx
mov qword [rbx + 0x70], rax
sub rdx, r15
mov rax, r8
cmp r15, rcx
cmovg rdx, rcx
shl r13, 3
cmp r13, rdx
jg 0x140309e10
mov rax, rdx
sub rax, r13
add rax, r12
jmp 0x140309e13
add rsi, r13
mov qword [rbx + 0x78], rax
test rsi, rsi
je 0x140309eb8
mov rdx, rsi
mov rcx, r14
call fcn.1402bd4e0
mov qword [rbx + 0x100], rax
mov rcx, rax
cmp byte [r14 + 0x67], 0
jne 0x140309eb5
mov rdx, qword [rbx + 0x68]
test rdx, rdx
jne 0x140309e59
mov rax, qword [rsp + 0x98]
cmp rax, rsi
jg 0x140309e59
sub rsi, rax
lea rdx, [rsi + rcx]
mov rax, qword [rbx + 0x80]
mov qword [rbx + 0x68], rdx
test rax, rax
jne 0x140309e7a
mov rdx, qword [rsp + 0x20]
cmp rdx, rsi
jg 0x140309e7a
sub rsi, rdx
lea rax, [rsi + rcx]
mov qword [rbx + 0x80], rax
mov rax, qword [rbx + 0x70]
test rax, rax
jne 0x140309e96
cmp r15, rsi
jg 0x140309e96
sub rsi, r15
lea rax, [rsi + rcx]
mov qword [rbx + 0x70], rax
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x140309eb1
cmp r13, rsi
jg 0x140309eb1
mov rax, rcx
sub rax, r13
add rax, rsi
mov qword [rbx + 0x78], rax
xor r8d, r8d
cmp byte [r14 + 0x67], 0
mov esi, 1
je 0x140309ed3
mov word [rbx + 0x20], r8w
mov qword [rbx + 0x24], 0
jmp 0x140309f47
mov eax, dword [rsp + 0x90]
mov dword [rbx + 0x28], eax
mov rax, qword [rbx + 0x80]
mov word [rbx + 0x20], bp
test ebp, ebp
jle 0x140309f05
add rax, 0x18
dec ebp
mov word [rax - 4], si
mov qword [rax], r14
mov dword [rax + 8], r8d
lea rax, [rax + 0x38]
test ebp, ebp
jg 0x140309ef0
mov rax, qword [rbx + 0x68]
mov dword [rbx + 0x24], edi
test edi, edi
jle 0x140309f36
add rax, 0x18
nop dword [rax]
nop dword [rax + rax]
dec edi
mov word [rax - 4], r8w
mov qword [rax], r14
mov dword [rax + 8], r8d
lea rax, [rax + 0x38]
test edi, edi
jg 0x140309f20
mov rcx, qword [rbx + 0x78]
mov r8, r13
xor edx, edx
call sub.VCRUNTIME140.dll_memset
xor r8d, r8d
mov byte [rbx + 0xc7], sil
mov dword [rbx + 0x30], 0xffffffff
mov dword [rbx + 0x34], r8d
mov word [rbx + 0xc4], 0xff02
mov qword [rbx + 0x38], r8
mov dword [rbx + 0x2c], esi
mov dword [rbx + 0x40], r8d
mov qword [rbx + 0x50], r8
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret