Function at 0x140118140
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, 0x108
mov r14, rdx
mov rsi, rcx
mov rcx, qword [rdx]
mov r13, qword [rdx + 0x10]
lea r12, [rcx + 0xa0]
mov rbx, qword [rcx + 0xa0]
cmp rbx, r13
jne 0x1401181db
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x68], rax
movups xmm0, xmmword [r12]
movups xmmword [rsp + 0x58], xmm0
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0x40], xmm0
test rbx, rbx
js 0x140118b7b
mov r14, qword [r14 + 8]
je 0x140118555
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, rbx
call fcn.1401dbaa0
mov rdi, rax
mov r15, rbx
test rax, rax
jne 0x14011855d
mov ecx, 1
mov rdx, rbx
call fcn.140033f20
mov dword [rsp + 0x88], r8d
lea rbp, [rcx + 0xa8]
mov rax, qword [rcx + 0xa8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov rax, qword [rcx + 0xb0]
mov qword [rsp + 0x38], rax
movabs rdi, 0x2a00000000001
jmp 0x140118240
add r15d, 0xffffffd0
cmp r15d, 0xa
jae 0x1401186d8
nop word cs:[rax + rax]
mov rcx, r14
call fcn.14010f0f0
test al, al
je 0x140118439
mov rcx, r14
call fcn.14010e8f0
cmp eax, 0x3e
je 0x140118439
mov rcx, r14
call fcn.14010e8f0
mov r15d, eax
cmp qword [r12], rbx
jne 0x1401182c0
mov rax, qword [rsp + 0x30]
cmp qword [rbp], rax
jne 0x1401182c0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
cmp qword [rcx + 0xb0], rax
jne 0x1401182c0
cmp r15d, 0x5f
je 0x140118230
mov eax, r15d
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x1a
jb 0x140118230
cmp r15d, 0x80
jb 0x1401186d8
mov ecx, r15d
call fcn.140061c30
test al, al
jne 0x140118230
jmp 0x1401186d8
lea eax, [r15 - 0x2e]
cmp eax, 0x31
ja 0x1401182d3
bt rdi, rax
jb 0x140118230
mov eax, r15d
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x1a
jb 0x140118230
cmp r15d, 0x80
jb 0x140118213
mov ecx, r15d
call fcn.140061c30
test al, al
jne 0x140118230
mov eax, r15d
shl eax, 0xb
cmp r15d, 0x10cfa
mov ecx, 0x13
mov edx, 0
cmovb rcx, rdx
lea rdx, [rcx + 0xa]
lea r9, [0x1402539e4]
mov r8d, dword [r9 + rcx*4 + 0x28]
shl r8d, 0xb
cmp r8d, eax
cmova rdx, rcx
lea rcx, [rdx + 5]
mov r8d, dword [r9 + rdx*4 + 0x14]
shl r8d, 0xb
cmp r8d, eax
cmova rcx, rdx
lea rdx, [rcx + 2]
mov r8d, dword [r9 + rcx*4 + 8]
shl r8d, 0xb
cmp r8d, eax
cmova rdx, rcx
lea rcx, [rdx + 1]
mov r8d, dword [r9 + rdx*4 + 4]
shl r8d, 0xb
cmp r8d, eax
cmova rcx, rdx
lea rdx, [rcx + 1]
mov r8d, dword [r9 + rcx*4 + 4]
shl r8d, 0xb
cmp r8d, eax
cmova rdx, rcx
mov r8d, dword [r9 + rdx*4]
shl r8d, 0xb
xor ecx, ecx
cmp r8d, eax
sete cl
adc rcx, rdx
cmp rcx, 0x26
ja 0x140118bb1
mov eax, 0x113
lea r10, [0x140253a80]
je 0x1401183c0
mov eax, dword [r9 + rcx*4 + 4]
shr eax, 0x15
test rcx, rcx
je 0x140118434
mov r8d, dword [r9 + rcx*4 - 4]
mov edx, 0x1fffff
and r8d, edx
mov edx, dword [r9 + rcx*4]
shr edx, 0x15
mov rcx, rdx
not rcx
add rcx, rax
je 0x140118415
sub r15d, r8d
dec rax
xor r8d, r8d
mov rcx, rdx
nop dword [rax + rax]
cmp rcx, 0x112
ja 0x140118b3d
movzx r9d, byte [rcx + r10]
add r8d, r9d
cmp r8d, r15d
ja 0x140118423
inc rcx
cmp rax, rcx
jne 0x1401183f0
mov rdx, rax
test dl, 1
jne 0x140118230
jmp 0x1401186d8
mov rdx, rcx
test dl, 1
jne 0x140118230
jmp 0x1401186d8
xor r8d, r8d
jmp 0x1401183cd
mov rdi, qword [r12]
movups xmm0, xmmword [rbp]
movaps xmmword [rsp + 0xb0], xmm0
cmp rdi, r13
jne 0x1401184ae
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x68], rax
movups xmm0, xmmword [r12]
movups xmmword [rsp + 0x58], xmm0
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0x40], xmm0
test r13, r13
js 0x140118b85
mov r14, qword [r14 + 8]
je 0x140118642
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r13
call fcn.1401dbaa0
mov rbx, rax
mov rdi, r13
test rax, rax
jne 0x140118649
jmp 0x140118548
mov rcx, r14
call fcn.14010e8f0
mov dword [rsp + 0x8c], eax
cmp eax, 0x3e
jne 0x140118b8f
mov rcx, r14
call fcn.14010f0f0
mov r15, qword [r14 + 8]
cmp rdi, rbx
jb 0x140118b5e
test rbx, rbx
je 0x1401184f4
cmp rbx, r13
jae 0x140118b5e
cmp byte [r15 + rbx], 0xbf
jle 0x140118b5e
test rdi, rdi
je 0x14011850d
cmp rdi, r13
jae 0x140118b5e
cmp byte [r15 + rdi], 0xbf
jle 0x140118b5e
mov r12, rdi
sub r12, rbx
jne 0x14011859d
test r13, r13
js 0x140118b85
je 0x140118689
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r13
call fcn.1401dbaa0
mov r14, rax
mov rdi, r13
test rax, rax
jne 0x140118691
mov ecx, 1
mov rdx, r13
call fcn.140033f20
mov edi, 1
xor r15d, r15d
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov qword [rsi], r15
mov qword [rsi + 8], rdi
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0x14
jmp 0x140118b05
js 0x140118bc2
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r12
call fcn.1401dbaa0
test rax, rax
je 0x140118bcc
mov rbp, rax
mov qword [rsp + 0xa0], rsi
lea rdx, [r15 + rbx]
mov rcx, rax
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x28]
cmp qword [rax + 0x60], 0
jne 0x140118bd9
mov qword [rax + 0x60], 0xffffffffffffffff
mov rsi, qword [rax + 0x78]
test rsi, rsi
je 0x140118852
mov qword [rsp + 0x80], r12
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x90], r13
mov rdi, qword [rax + 0x70]
cmp rsi, 1
mov qword [rsp + 0xa8], rbp
jne 0x14011879e
xor r15d, r15d
mov r12, qword [rsp + 0x80]
jmp 0x1401187fe
mov ebx, 1
xor edi, edi
mov rcx, rbx
mov rdx, r14
mov r8, r13
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov qword [rsi], rdi
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r13
mov dword [rsi + 0x18], 0x14
jmp 0x140118b05
mov r14d, 1
xor edi, edi
mov rcx, r14
mov rdx, r15
mov r8, r13
call sub.msvcrt.dll_memcpy
mov qword [rsi], rdi
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], r13
mov dword [rsi + 0x18], 0x12
mov qword [rsi + 0x50], rbx
mov rcx, qword [rsp + 0x30]
mov qword [rsi + 0x58], rcx
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x60], rax
mov qword [rsi + 0x68], rbx
mov qword [rsi + 0x70], rcx
mov qword [rsi + 0x78], rax
jmp 0x140118b05
mov rbx, qword [r12]
mov rcx, r14
call fcn.14010e8f0
mov ecx, 1
cmp eax, 0x80
jb 0x14011870a
mov ecx, 2
cmp eax, 0x800
jb 0x14011870a
cmp eax, 0x10000
mov ecx, 4
sbb rcx, 0
add rbx, rcx
mov rax, qword [rsp + 0x28]
jb 0x140118bf7
mov r15, qword [rax + 0xb0]
cmp r15, 0xffffffffffffffff
je 0x140118bf7
mov rdi, r13
mov r13, qword [rbp]
mov rcx, r14
call fcn.14010e8f0
mov ebp, eax
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0x40], xmm0
test rdi, rdi
js 0x140118c10
mov qword [rsp + 0x30], rbx
mov rdx, qword [r14 + 8]
mov ecx, 1
je 0x1401189de
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rbx, rdi
mov r14, rdx
mov rdx, rdi
call fcn.1401dbaa0
mov ecx, 1
mov rdx, r14
mov r14, rax
mov r12, rdi
test rax, rax
jne 0x1401189ea
jmp 0x140118c12
xor r14d, r14d
mov r12, qword [rsp + 0x80]
nop dword [rax]
mov rbp, rsi
shr rbp, 1
lea r15, [r14 + rbp]
lea rax, [r15 + r15*4]
shl rax, 4
mov rcx, qword [rdi + rax + 8]
mov r8, qword [rdi + rax + 0x10]
mov r13, r8
sub r13, r12
cmovae r8, r12
mov rdx, qword [rsp + 0xa8]
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r13, rax
test r13, r13
cmovg r15, r14
sub rsi, rbp
mov r14, r15
cmp rsi, 1
ja 0x1401187b0
lea r14, [r15 + r15*4]
shl r14, 4
mov rcx, qword [rdi + r14 + 8]
mov r8, qword [rdi + r14 + 0x10]
mov rsi, r8
sub rsi, r12
cmovae r8, r12
mov rbp, qword [rsp + 0xa8]
mov rdx, rbp
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne rsi, rax
test rsi, rsi
je 0x140118968
shr rsi, 0x3f
add rsi, r15
mov rdi, qword [rsp + 0x98]
mov r12, qword [rsp + 0x80]
mov r13d, 1
cmp rdi, rbx
je 0x14011887a
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r12
call fcn.1401dbaa0
test rax, rax
je 0x140118c03
mov r13, rax
mov rcx, r13
mov rdx, rbp
mov r8, r12
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x28]
mov r15, qword [r9 + 0x78]
cmp r15, rsi
jb 0x140118be5
mov r14, rdi
lea rcx, [r9 + 0x68]
cmp r15, qword [rcx]
jne 0x1401188b0
call fcn.140136d60
mov r9, qword [rsp + 0x28]
lea rdi, [rsi + rsi*4]
shl rdi, 4
add rdi, qword [r9 + 0x70]
mov rax, r15
sub rax, rsi
jbe 0x1401188dd
lea rcx, [rdi + 0x50]
shl rax, 4
lea r8, [rax + rax*4]
mov rdx, rdi
call sub.msvcrt.dll_memmove
mov r9, qword [rsp + 0x28]
mov qword [rdi], r12
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], rbx
mov r8, qword [rsp + 0x30]
mov qword [rdi + 0x20], r8
mov rdx, qword [rsp + 0x38]
mov qword [rdi + 0x28], rdx
mov qword [rdi + 0x30], r14
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rdi + 0x38], xmm0
mov eax, dword [rsp + 0x88]
mov dword [rdi + 0x48], eax
inc r15
mov qword [r9 + 0x78], r15
inc qword [r9 + 0x60]
mov rcx, qword [rsp + 0xa0]
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], rbp
mov qword [rcx + 0x18], r12
mov qword [rcx + 0x20], rbx
mov qword [rcx + 0x28], r8
mov qword [rcx + 0x30], rdx
mov qword [rcx + 0x38], r14
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rcx + 0x40], xmm0
mov dword [rcx + 0x50], eax
movabs rax, 0x8000000000000000
mov qword [rcx], rax
jmp 0x140118b05
movups xmm0, xmmword [rdi + r14 + 0x18]
movups xmm1, xmmword [rdi + r14 + 0x28]
movups xmm2, xmmword [rdi + r14 + 0x38]
movups xmmword [rsp + 0x64], xmm2
movups xmmword [rsp + 0x54], xmm1
movups xmmword [rsp + 0x44], xmm0
mov r14, qword [rsp + 0x90]
test r14, r14
js 0x140118c1a
mov rsi, qword [rsp + 0xa0]
mov r15, qword [rsp + 0xc8]
je 0x140118a41
movzx eax, byte [0x14031a2c8]
xor ecx, ecx
mov rdx, r14
call fcn.1401dbaa0
mov r12, rax
mov rdi, r14
test rax, rax
jne 0x140118a49
mov ecx, 1
mov rdx, qword [rsp + 0x90]
call fcn.140033f20
xor r12d, r12d
mov r14d, 1
mov rbx, rdi
inc r15
xor eax, eax
cmp ebp, 0xa
sete al
cmove r15, rcx
add r13, rax
mov rcx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x50], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x60], rax
mov qword [rsi], r12
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0x13
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x68], rax
mov qword [rsi + 0x70], r13
mov qword [rsi + 0x78], r15
jmp 0x140118b05
mov r12d, 1
xor edi, edi
mov rcx, r12
mov rdx, r15
mov r8, r14
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xf0], xmm2
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x100], eax
mov rax, qword [rsp + 0x28]
inc qword [rax + 0x60]
mov eax, dword [rsp + 0x100]
mov dword [rsi + 0x4c], eax
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movaps xmm2, xmmword [rsp + 0xf0]
movups xmmword [rsi + 0x3c], xmm2
movups xmmword [rsi + 0x2c], xmm1
movups xmmword [rsi + 0x1c], xmm0
mov qword [rsi + 0x50], rbx
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x58], rax
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x60], rax
mov rax, qword [rsp + 0x98]
mov qword [rsi + 0x68], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x70], xmm0
mov qword [rsi], rdi
mov qword [rsi + 8], r12
mov qword [rsi + 0x10], r14
mov dword [rsi + 0x18], 0x11
cmp rax, rbx
jne 0x140118b19
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, rbp
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401fb9c4
cmp rdx, 0x114
mov ecx, 0x113
cmovae rcx, rdx
lea r8, [0x140252918]
mov edx, 0x113
call fcn.140056860
lea rax, str._redacted_
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x20], eax