Function at 0x1401b9360
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, 0xc8
mov r12, rdx
mov rsi, rcx
mov rdx, qword [rsp + 0x170]
mov r10, qword [rsp + 0x168]
mov r11d, dword [rsp + 0x160]
movzx r14d, word [rsp + 0x158]
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x86], ax
mov r15, qword [rsp + 0x148]
mov ebp, dword [rsp + 0x140]
mov edi, dword [rsp + 0x138]
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0xac], eax
mov ecx, r9d
lea rax, [rcx + 1]
cmp rax, r11
jne 0x1401b9409
mov dword [rsp + 0x50], edi
mov edi, r14d
mov r14d, ebp
mov rbx, r15
mov rbp, qword [r12 + 8]
mov r13, r12
mov r15, qword [r12 + 0x10]
mov r12, r15
sub r12, r11
jbe 0x1401b9453
cmp byte [rbp + r11], 0xbf
jg 0x1401b9459
jmp 0x1401b9f1b
mov qword [rsp + 0x60], rcx
add rcx, 3
cmp rcx, r11
jne 0x1401b9485
mov dword [rsp + 0x50], edi
mov rcx, r12
mov r12, qword [r12 + 8]
mov qword [rsp + 0x48], rcx
mov r13, qword [rcx + 0x10]
test r9d, r9d
mov rcx, qword [rsp + 0x60]
je 0x1401b94fa
cmp r13, rcx
jbe 0x1401b94f4
cmp byte [r12 + rcx], 0xc0
jge 0x1401b94fa
jmp 0x1401b9f1b
jne 0x1401b9f1b
cmp r12, 2
jb 0x1401b946c
movzx eax, word [rbp + r11]
cmp eax, 0x2f2f
je 0x1401b94da
mov r12, r13
test r9d, r9d
je 0x1401b9493
cmp r15, rcx
jbe 0x1401b948d
cmp byte [rbp + rcx], 0xbf
jg 0x1401b9493
jmp 0x1401b9f1b
mov r13, r11
jmp 0x1401b9566
jne 0x1401b9f1b
mov r13, r11
sub r15, rcx
cmp r15, 3
jae 0x1401b94ad
mov r15, rbx
mov ebp, r14d
mov r14d, edi
jmp 0x1401b9562
movzx eax, word [rbp + rcx]
xor eax, 0x2f3a
movzx ecx, byte [rbp + rcx + 2]
xor ecx, 0x2f
or cx, ax
mov r15, rbx
mov ebp, r14d
mov r14d, edi
mov edi, dword [rsp + 0x50]
jne 0x1401b9566
jmp 0x1401b9f1b
cmp r15, r11
jbe 0x1401b9650
cmp byte [rbp + r11], 0xbf
jg 0x1401b9656
jmp 0x1401b9f1b
jne 0x1401b9f1b
cmp r13, r11
jbe 0x1401b950b
cmp byte [r12 + r11], 0xbf
jg 0x1401b9511
jmp 0x1401b9f1b
jne 0x1401b9f1b
mov qword [rsp + 0x70], r13
mov r13, rcx
mov rcx, r11
sub rcx, r13
cmp rcx, 3
jne 0x1401b955a
mov qword [rsp + 0x78], rdx
movzx ecx, word [r12 + r13]
xor ecx, 0x2f3a
movzx edx, byte [r12 + r13 + 2]
xor edx, 0x2e
or dx, cx
je 0x1401b96df
mov r13, r11
mov r12, qword [rsp + 0x48]
mov edi, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
jmp 0x1401b9566
mov r13, r11
mov r12, qword [rsp + 0x48]
mov edi, dword [rsp + 0x50]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r10
lea rcx, [rsp + 0xb0]
mov rdx, r12
mov ebx, r9d
call fcn.1401bca00
mov eax, dword [rsp + 0xb0]
cmp eax, 2
jne 0x1401b95d8
movzx eax, byte [rsp + 0xb4]
mov byte [rsi + 8], al
movabs rax, 0x8000000000000000
mov qword [rsi], rax
cmp qword [r12], 0
je 0x1401b963c
mov r8, qword [r12 + 8]
mov rcx, qword [0x141ada118]
xor edx, edx
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401cdfe4
mov ecx, dword [rsp + 0xbc]
mov rdx, qword [rsp + 0xb4]
mov r8, qword [r12 + 0x10]
mov qword [rsi + 0x10], r8
movups xmm0, xmmword [r12]
movups xmmword [rsi], xmm0
mov dword [rsi + 0x18], eax
mov qword [rsi + 0x1c], rdx
mov dword [rsi + 0x24], ecx
movzx eax, word [rsp + 0x86]
mov word [rsi + 0x28], ax
mov word [rsi + 0x2a], r14w
mov dword [rsi + 0x2c], ebx
mov eax, dword [rsp + 0xac]
mov dword [rsi + 0x30], eax
mov dword [rsi + 0x34], edi
mov dword [rsi + 0x38], ebp
mov dword [rsi + 0x3c], r13d
movdqu xmm0, xmmword [r15]
movdqu xmmword [rsi + 0x40], xmm0
movzx eax, byte [r15 + 0x10]
mov byte [rsi + 0x50], al
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x1401b9f1b
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x80], r9d
mov byte [rsp + 0x37], r8b
mov rax, qword [r13]
sub rax, r15
cmp rax, 1
jbe 0x1401b987d
lea rdx, [r11 + rbp]
lea rcx, [r11 + rbp]
add rcx, 2
mov r8, r12
mov r12, r11
call sub.msvcrt.dll_memmove
mov r11, r12
mov word [rbp + r12], 0x2e2f
add r15, 2
mov qword [r13 + 0x10], r15
add r11d, 2
movzx r8d, byte [rsp + 0x37]
mov r9d, dword [rsp + 0x80]
mov r12, r13
mov r10, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
test r9d, r9d
jne 0x1401b9474
jmp 0x1401b9493
mov r13, qword [rsp + 0x70]
cmp r13, r11
mov rdx, qword [rsp + 0x78]
jbe 0x1401b9f1b
cmp byte [r12 + r11], 0x2f
mov rcx, qword [rsp + 0x60]
jne 0x1401b9f1b
lea rdi, [r11 + 1]
cmp rdi, r13
jae 0x1401b9716
cmp byte [r12 + rdi], 0x2f
je 0x1401b9ece
test r9d, r9d
je 0x1401b9732
cmp r13, rcx
jbe 0x1401b972c
cmp byte [r12 + rcx], 0xc0
jge 0x1401b9732
jmp 0x1401b9f1b
jne 0x1401b9f1b
cmp byte [r12 + r11], 0xbf
jle 0x1401b9f1b
cmp r9d, r11d
ja 0x1401b9f1b
mov qword [rsp + 0x68], rdi
cmp r13, r11
jb 0x1401b9f1b
mov rdi, r13
mov rcx, qword [rsp + 0x48]
lea rbx, [rcx + 0x10]
mov r13, qword [rsp + 0x60]
mov qword [rsp + 0x98], rbx
mov qword [rbx], r13
mov rbx, rdi
sub rbx, r11
jne 0x1401b97a7
mov rax, r13
cmp qword [rcx], r13
mov rcx, r13
je 0x1401b9abf
mov byte [r12 + r13], 0x3a
inc r13
mov rax, r13
mov rdi, qword [rsp + 0x98]
mov qword [rdi], r13
mov r13, qword [rsp + 0x48]
jmp 0x1401b9ec3
cmp r9d, r11d
mov qword [rsp + 0xa0], rbx
jne 0x1401b9849
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x80], r9d
mov byte [rsp + 0x37], r8b
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x48]
cmp qword [rax], rcx
je 0x1401b9d4c
mov qword [rsp + 0xc0], r15
lea rdx, [r12 + r11]
lea rbp, [r12 + r11]
inc rbp
mov rcx, rbp
mov r8, rbx
mov r13, r11
call sub.msvcrt.dll_memmove
cmp rdi, qword [rsp + 0x68]
mov rbx, rdi
mov qword [rsp + 0x58], r13
jne 0x1401b989d
lea r15, [0x141a9779a]
mov edx, 1
mov dword [rsp + 0x3c], 0
mov qword [rsp + 0x68], rbx
mov ebp, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x98]
jmp 0x1401b9a05
mov rcx, qword [rsp + 0x60]
add rcx, r12
add r12, r11
mov byte [rcx], 0x3a
inc rcx
mov rdi, qword [rsp + 0x98]
mov qword [rdi], rax
cmp rcx, r12
mov rax, qword [rdi]
mov rbx, r11
mov r13, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
jmp 0x1401b9e54
mov r8d, 2
mov rcx, r13
mov rdx, r15
mov rbp, r11
call fcn.140036c70
mov r11, rbp
mov rbp, qword [r13 + 8]
jmp 0x1401b9683
lea rax, [r12 + rbx]
lea r15, [0x141a9779a]
lea rcx, [r15 + r13]
sub rcx, rbx
sub rcx, r15
cmp rcx, 1
mov edx, 1
cmovae rcx, rdx
inc rcx
cmp rcx, 0x21
movzx r8d, byte [rsp + 0x37]
mov r11, r13
mov rdi, qword [rsp + 0x98]
jae 0x1401b98e1
mov r9, rbx
jmp 0x1401b99bd
lea r15, [0x141a9779a]
lea r9, [r11 + r15]
sub r9, rbx
sub r9, r15
cmp r9, 1
cmovb rdx, r9
lea r9, [rbx + rdx]
lea r9, [r12 + r9 + 1]
mov r10, qword [rsp + 0x48]
lea r11, [r10 + 0x18]
lea r10, [rdx + r15]
inc r10
cmp rax, r11
setb r13b
cmp rdi, r9
setb byte [rsp + 0x3c]
cmp rax, r10
setb dl
cmp r15, r9
setb byte [rsp + 0x90]
cmp rdi, r10
setb r9b
cmp r15, r11
setb r11b
test byte [rsp + 0x3c], r13b
jne 0x1401b9d77
and dl, byte [rsp + 0x90]
mov r10, qword [rsp + 0x40]
jne 0x1401b9c61
and r9b, r11b
jne 0x1401b9c61
mov edx, ecx
and edx, 3
mov r9d, 4
cmovne r9, rdx
sub rcx, r9
lea r9, [rbx + rcx]
lea rdx, [0x141a9779a]
mov r13, rdx
lea r15, [rdx + rcx]
add rax, rcx
lea r10, [rbx + r12]
add r10, 2
xor edx, edx
mov r11, rdx
mov edx, dword [rdx + r13]
mov dword [r10 + r11 - 2], edx
lea rdx, [r11 + 4]
cmp rcx, rdx
jne 0x1401b9998
lea rcx, [rbx + r11]
add rcx, 4
mov qword [rdi], rcx
mov r11, qword [rsp + 0x58]
mov r10, qword [rsp + 0x40]
inc r9
lea rdx, [0x141a9779b]
mov rbx, qword [rsp + 0x70]
cmp r15, rdx
je 0x1401b9ab6
movzx ecx, byte [r15]
inc r15
mov byte [rax], cl
inc rax
mov qword [rdi], r9
inc r9
cmp rax, rbp
jne 0x1401b99d1
sub rdx, r15
sete al
mov dword [rsp + 0x3c], eax
mov ebp, dword [rsp + 0x38]
je 0x1401b9e28
test rdx, rdx
js 0x1401b9f1b
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x1401b9f1b
lea r13, [0x141a9779b]
cmp r15, r13
movzx r8d, byte [rsp + 0x37]
mov r11, qword [rsp + 0x58]
mov r10, qword [rsp + 0x40]
je 0x1401b9e07
lea rcx, [0x141a9779a]
mov rdx, rcx
sub rdx, r15
inc rdx
xor ebp, ebp
cmp rdx, 0x20
mov rbx, rax
jb 0x1401b9b2a
mov r9, rax
sub r9, r15
cmp r9, 0x20
jb 0x1401b9b27
mov rbp, rdx
and rbp, 0xffffffffffffffe0
lea r9, [r15 + rbp]
xor r10d, r10d
mov rax, rbx
movdqu xmm0, xmmword [r15 + r10]
movdqu xmm1, xmmword [r15 + r10 + 0x10]
movdqu xmmword [rax + r10], xmm0
movdqu xmmword [rax + r10 + 0x10], xmm1
add r10, 0x20
cmp rbp, r10
jne 0x1401b9a85
cmp rdx, rbp
jne 0x1401b9b1f
lea rax, [rbx + rbp]
jmp 0x1401b9b90
mov ebp, dword [rsp + 0x38]
jmp 0x1401b9e28
mov word [rsp + 0x70], r14w
mov dword [rsp + 0x38], ebp
mov byte [rsp + 0x37], r8b
mov r8d, 1
mov r13, qword [rsp + 0x48]
mov rcx, r13
mov rdx, qword [rsp + 0x60]
mov r14d, r9d
mov r12, r11
mov rbp, r10
call fcn.14017bc20
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x78]
mov r10, rbp
mov r11, r12
mov r9d, r14d
movzx r8d, byte [rsp + 0x37]
mov ebp, dword [rsp + 0x38]
movzx r14d, word [rsp + 0x70]
mov r12, qword [r13 + 8]
mov r13, qword [r13 + 0x10]
jmp 0x1401b9787
mov r15, r9
mov r10, qword [rsp + 0x40]
mov rax, rbx
mov edx, ecx
sub edx, r15d
inc edx
sub rcx, r15
and edx, 3
je 0x1401b9b4f
movzx r9d, byte [r15]
inc r15
mov byte [rbx + rbp], r9b
mov rax, rbx
inc rbp
dec rdx
jne 0x1401b9b39
cmp rcx, 3
jb 0x1401b9b84
movzx ecx, byte [r15]
mov byte [rax + rbp], cl
movzx ecx, byte [r15 + 1]
mov byte [rax + rbp + 1], cl
movzx ecx, byte [r15 + 2]
mov byte [rax + rbp + 2], cl
movzx ecx, byte [r15 + 3]
add r15, 4
mov byte [rax + rbp + 3], cl
add rbp, 4
cmp r15, r13
jne 0x1401b9b55
test rbp, rbp
je 0x1401b9c53
add rax, rbp
mov qword [rsp + 0x90], rax
mov r13, qword [rsp + 0x68]
mov r8, qword [rsp + 0xa0]
lea rdx, [r8 + r13]
mov r15, qword [rsp + 0x48]
mov rax, qword [r15]
sub rax, rdx
cmp rax, rbp
jb 0x1401b9d8b
mov r15, r13
add r15, rbp
lea rdx, [r12 + r13]
add r12, r15
mov rcx, r12
call sub.msvcrt.dll_memmove
mov r12, qword [rsp + 0x48]
mov rdx, qword [r12 + 0x10]
cmp rdx, r15
jne 0x1401b9c04
mov qword [rsp + 0x68], r15
movzx r8d, byte [rsp + 0x37]
mov ebp, dword [rsp + 0x38]
mov r11, qword [rsp + 0x58]
mov r10, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
jmp 0x1401b9dfa
mov qword [rsp + 0x88], r15
mov rax, qword [r12 + 8]
lea rcx, [rax + rdx]
add r13, rbp
mov r9, rdx
not r9
add r9, r13
dec rbp
cmp r9, rbp
mov r10, rbp
cmovb r10, r9
inc r10
cmp r10, 0x20
movzx r8d, byte [rsp + 0x37]
jae 0x1401b9c6e
mov r9, rbx
mov ebp, dword [rsp + 0x38]
mov r11, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x3c]
jmp 0x1401b9db1
mov ebp, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x3c]
jmp 0x1401b9dfd
mov r9, rbx
mov r11, qword [rsp + 0x58]
jmp 0x1401b99c2
cmp r9, rbp
cmovb rbp, r9
lea r11, [rbp + rcx + 1]
mov r13, r12
add r12, 0x18
mov r15, rbx
add rbp, rbx
inc rbp
cmp rcx, r12
setb r13b
cmp rdi, r11
setb byte [rsp + 0x68]
cmp rcx, rbp
setb r9b
cmp r11, rbx
seta byte [rsp + 0x57]
cmp rdi, rbp
setb r11b
cmp r12, rbx
seta r12b
test byte [rsp + 0x68], r13b
jne 0x1401b9c3d
and r9b, byte [rsp + 0x57]
mov r15d, dword [rsp + 0x3c]
jne 0x1401b9da5
and r11b, r12b
mov r13, rbx
jne 0x1401b9d7f
mov r11, r10
and r11, 0xfffffffffffffffc
add rcx, r11
mov r9, r13
add r9, r11
movq xmm1, rdx
add rdx, rax
add rdx, 2
pxor xmm0, xmm0
xor r12d, r12d
pcmpeqd xmm2, xmm2
mov ebp, dword [r13 + r12]
mov dword [rdx + r12 - 2], ebp
psubq xmm1, xmm2
psubq xmm0, xmm2
add r12, 4
cmp r11, r12
jne 0x1401b9d00
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
movq qword [rdi], xmm1
cmp r10, r11
jne 0x1401b9d84
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x68], rax
mov ebp, dword [rsp + 0x38]
mov r11, qword [rsp + 0x58]
jmp 0x1401b9df5
mov r8d, 1
mov r13, qword [rsp + 0x48]
mov rcx, r13
mov rdx, qword [rsp + 0x70]
mov r12, r11
call fcn.14017bc20
mov r11, r12
mov r12, qword [r13 + 8]
mov rdi, qword [r13 + 0x10]
jmp 0x1401b97e6
mov r9, rbx
jmp 0x1401b99b8
mov r9, r13
jmp 0x1401b9da8
movq rdx, xmm1
jmp 0x1401b9da8
mov rcx, r15
mov r12, r8
mov r8, rbp
call fcn.14017bc20
mov r8, r12
mov r12, qword [r15 + 8]
jmp 0x1401b9bbd
mov r9, rbx
mov ebp, dword [rsp + 0x38]
mov r11, qword [rsp + 0x58]
mov r13, qword [rsp + 0x88]
add rax, r13
inc rdx
inc rcx
inc r9
mov r12, qword [rsp + 0x90]
movzx r10d, byte [r9 - 1]
mov byte [rcx - 1], r10b
mov qword [rdi], rdx
cmp rcx, rax
je 0x1401b9df0
inc rdx
inc rcx
lea r10, [r9 + 1]
cmp r9, r12
mov r9, r10
jne 0x1401b9dcd
mov qword [rsp + 0x68], r13
mov r10, qword [rsp + 0x40]
mov rax, rbx
test r15b, r15b
mov rbx, qword [rsp + 0x70]
jne 0x1401b9e28
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rax
call fcn.1401cdfe4
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x58]
movzx r8d, byte [rsp + 0x37]
cmp rbx, r11
mov rax, qword [rdi]
mov r15, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0x80]
mov r13, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
je 0x1401b9ec3
mov r12, rax
cmp rbx, rax
je 0x1401b9eb5
mov rcx, qword [r13 + 8]
add rbx, rcx
add rcx, r12
mov rdx, rbx
mov word [rsp + 0x70], r14w
mov dword [rsp + 0x38], ebp
mov byte [rsp + 0x37], r8b
mov r8, qword [rsp + 0xa0]
mov r14d, r9d
mov rbp, r11
mov qword [rsp + 0x40], r10
call sub.msvcrt.dll_memmove
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x78]
mov r10, qword [rsp + 0x40]
mov r11, rbp
mov r9d, r14d
movzx r8d, byte [rsp + 0x37]
mov ebp, dword [rsp + 0x38]
movzx r14d, word [rsp + 0x70]
add r12, qword [rsp + 0xa0]
mov rax, r12
mov qword [rdi], r12
add r11d, 0xfffffffe
mov r12, qword [r13 + 8]
mov r13, rax
test r9d, r9d
je 0x1401b9ee3
cmp r13, rcx
jbe 0x1401b9ee1
cmp byte [r12 + rcx], 0xbf
jg 0x1401b9ee3
jmp 0x1401b9f1b
jne 0x1401b9f1b
mov rax, r13
mov r13, r11
sub rax, rcx
cmp rax, 3
jb 0x1401b955d
movzx eax, word [r12 + rcx]
xor eax, 0x2f3a
movzx ecx, byte [r12 + rcx + 2]
xor ecx, 0x2f
or cx, ax
mov r12, qword [rsp + 0x48]
mov edi, dword [rsp + 0x50]
jne 0x1401b9566
ud2