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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [rcx]
mov rbx, rcx
mov ecx, dword [rdx + 0x34]
mov rdi, rdx
mov ebp, dword [rdx + 0x38]
mov qword [rsp + 0x30], rax
add ebp, ecx
movsx eax, word [rdx + 0x110]
mov word [rsp + 0xa0], ax
mov r13d, eax
mov dword [rsp + 0x24], eax
mov eax, dword [rdx + 0x80]
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0xb0], ecx
test ecx, ecx
jne 0x140153e1f
test ebp, ebp
jle 0x140153e1f
inc ebp
mov eax, dword [rbx + 0x90]
lea ecx, [rax + rax*2]
mov eax, dword [rdx + 0x3c]
shl ecx, 3
lea rdx, [rsp + 0xb8]
sub eax, ecx
movsxd r15, ecx
add r15, qword [rbx + 0x88]
mov rcx, rbx
movsxd rsi, eax
and rsi, 0xfffffffffffffff8
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x40], rsi
call fcn.1401120c0
xor r9d, r9d
mov eax, 0x80
cmp byte [rdi + 0x20], r9b
je 0x140153e6f
cmp byte [rdi + 0x21], r9b
jne 0x140153e72
mov eax, r9d
and dword [rbx + 0xc8], 0xffffff7f
or dword [rbx + 0xc8], eax
movzx edi, byte [rdi + 0x113]
test dil, dil
je 0x140153fad
mov eax, 0xa
mov edx, 4
cmp ebp, eax
mov r14d, 8
mov rcx, rbx
cmovl ebp, eax
cmp dil, 2
mov dword [rsp + 0x20], ebp
cmovne edx, r14d
call fcn.1401565a0
cmp dil, 2
mov r15d, r14d
mov r9d, 0
mov eax, 0xc
cmovne eax, r14d
cmovne r15d, r9d
mov qword [rsp + 0x38], rax
cmp r15, rax
jae 0x140153fa8
mov r13, qword [rsp + 0x38]
lea rax, str.addr
mov r12d, r9d
mov ebp, 0x2400
mov ecx, 0xa02
nop dword [rax]
mov r14, qword [rax + r15*8]
mov rax, qword [rbx]
cmp byte [rax + 0x61], 0
jne 0x140153f83
mov rsi, qword [rbx + 0x98]
add rsi, r12
test r14, r14
jne 0x140153f3f
test word [rsi + 8], bp
je 0x140153f34
mov rcx, rsi
call fcn.140165f30
xor r9d, r9d
mov ecx, 0xa02
jmp 0x140153f83
mov eax, 1
mov word [rsi + 8], ax
jmp 0x140153f83
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [r14 + rdi], 0
jne 0x140153f46
btr edi, 0x1f
test word [rsi + 8], bp
jne 0x140153f60
cmp dword [rsi + 0x20], 0
je 0x140153f70
mov rcx, rsi
call fcn.140165e60
xor r9d, r9d
mov ecx, 0xa02
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x30], r9
mov dword [rsi + 0xc], edi
mov word [rsi + 8], cx
mov byte [rsi + 0xa], 1
inc r15
lea rax, str.addr
add r12, 0x38
cmp r15, r13
jl 0x140153f00
mov ebp, dword [rsp + 0x20]
mov r13d, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x28]
and dword [rbx + 0xc8], 0xfffffffc
mov rcx, r9
movsxd rax, ebp
imul r14, rax, 0x38
cmp r14, rsi
jg 0x140153fcc
mov rcx, rsi
sub rcx, r14
add rcx, r15
mov r8, rsi
movsxd rax, r13d
sub r8, r14
mov qword [rbx + 0x68], rcx
cmp r14, rsi
mov rdi, r9
mov rcx, r9
cmovg r8, rsi
cmovg rdi, r14
imul r12, rax, 0x38
cmp r12, r8
jg 0x140153ffe
mov rcx, r15
sub rcx, r12
add rcx, r8
jmp 0x140154001
add rdi, r12
movsxd rsi, dword [rsp + 0xb8]
mov rdx, r8
sub rdx, r12
mov qword [rbx + 0x80], rcx
cmp r12, r8
mov rax, r9
cmovg rdx, r8
shl rsi, 3
cmp rsi, rdx
jg 0x140154034
mov rax, r15
sub rax, rsi
add rax, rdx
jmp 0x140154037
add rdi, rsi
mov rcx, rdx
mov qword [rbx + 0x70], rax
sub rcx, rsi
mov rax, r9
cmp rsi, rdx
cmovg rcx, rdx
movsxd rdx, dword [rsp + 0xb0]
mov r15, rdx
shl r15, 3
cmp r15, rcx
jg 0x14015406c
mov rax, rcx
sub rax, r15
add rax, qword [rsp + 0x28]
jmp 0x14015406f
add rdi, r15
mov qword [rbx + 0x78], rax
test rdi, rdi
je 0x140154114
mov rcx, qword [rsp + 0x30]
mov rdx, rdi
call fcn.140121770
mov qword [rbx + 0xf8], rax
mov rcx, rax
mov rax, qword [rsp + 0x30]
cmp byte [rax + 0x61], 0
jne 0x14015410a
mov rax, qword [rbx + 0x68]
test rax, rax
jne 0x1401540b3
cmp r14, rdi
jg 0x1401540b3
sub rdi, r14
lea rax, [rcx + rdi]
mov qword [rbx + 0x68], rax
mov rax, qword [rbx + 0x80]
test rax, rax
jne 0x1401540cf
cmp r12, rdi
jg 0x1401540cf
sub rdi, r12
lea rax, [rcx + rdi]
mov qword [rbx + 0x80], rax
mov rax, qword [rbx + 0x70]
test rax, rax
jne 0x1401540eb
cmp rsi, rdi
jg 0x1401540eb
sub rdi, rsi
lea rax, [rcx + rdi]
mov qword [rbx + 0x70], rax
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x140154106
cmp r15, rdi
jg 0x140154106
mov rax, rcx
sub rax, r15
add rax, rdi
mov qword [rbx + 0x78], rax
mov edx, dword [rsp + 0xb0]
xor r9d, r9d
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx + 0x128]
mov qword [rbx + 0xb0], rax
movzx eax, byte [rcx + 0x113]
mov qword [rcx + 0x128], r9
mov rcx, qword [rsp + 0x30]
shl eax, 2
xor eax, dword [rbx + 0xc8]
and eax, 0xc
xor dword [rbx + 0xc8], eax
cmp byte [rcx + 0x61], 0
je 0x140154167
mov word [rbx + 0x20], r9w
mov qword [rbx + 0x28], 0
jmp 0x1401541e6
movzx eax, word [rsp + 0xa0]
mov word [rbx + 0x20], ax
mov rax, qword [rbx + 0x80]
mov dword [rbx + 0x2c], edx
test r13d, r13d
jle 0x1401541a7
add rax, 8
mov edx, 1
nop dword [rax + rax]
dec r13d
mov qword [rax + 0x20], rcx
mov word [rax], dx
mov dword [rax + 0x18], r9d
lea rax, [rax + 0x38]
test r13d, r13d
jg 0x140154190
mov rax, qword [rbx + 0x68]
mov dword [rbx + 0x28], ebp
test ebp, ebp
jle 0x1401541d5
add rax, 8
mov edx, 0x80
nop dword [rax + rax]
dec ebp
mov qword [rax + 0x20], rcx
mov word [rax], dx
mov dword [rax + 0x18], r9d
lea rax, [rax + 0x38]
test ebp, ebp
jg 0x1401541c0
mov rcx, qword [rbx + 0x78]
mov r8, r15
xor edx, edx
call sub.msvcrt.dll_memset
xor r9d, r9d
mov eax, 1
mov dword [rbx + 0x24], 0x2df20da3
mov dword [rbx + 0x30], eax
mov dword [rbx + 0x34], 0xffffffff
mov qword [rbx + 0x38], 0
mov word [rbx + 0xc2], 0xff02
mov dword [rbx + 0x40], r9d
mov qword [rbx + 0x50], r9
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret