Function at 0x140016870
Capabilities:
Delete file

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x468
movaps xmmword [rsp + 0x450], xmm6
lea rbx, str..enc
mov r9d, 4
mov dword [rsp + 0x2c], r8d
mov rdi, rdx
mov rdx, rbx
mov rsi, rcx
mov r8, 0xffffffffffffffff
call fcn.140026020
mov rdx, rax
mov rax, qword [rsi + 8]
sub rax, 4
cmp rax, rdx
je 0x140016d96
lea rbp, [rsp + 0x340]
lea r12, [rsp + 0x270]
mov rcx, rbp
mov qword [rsp + 0x68], rbp
call fcn.14007dd30
mov rax, qword [0x14008ecb0]
xor ecx, ecx
xor edx, edx
pxor xmm0, xmm0
mov word [rsp + 0x420], cx
add rax, 0x10
movups xmmword [rsp + 0x428], xmm0
mov qword [rsp + 0x340], rax
mov rax, qword [str._G_t_]
movups xmmword [rsp + 0x438], xmm0
mov r14, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x418], 0
mov rax, qword [r14 - 0x18]
mov qword [rsp + 0x270], r14
mov qword [rsp + 0x50], rcx
mov qword [rsp + rax + 0x270], rcx
mov qword [rsp + 0x278], 0
mov rcx, qword [r14 - 0x18]
add rcx, r12
call fcn.14007ea50
mov rax, qword [str._l_t_]
lea r15, [rsp + 0x280]
mov rcx, r15
mov qword [rsp + 0x38], r15
add rax, 0x18
mov qword [rsp + 0x270], rax
mov rax, qword [str._l_t_]
add rax, 0x40
mov qword [rsp + 0x340], rax
call fcn.1400617a0
mov rdx, r15
mov rcx, rbp
call fcn.14007ea50
mov rdx, qword [rsi]
mov r8d, 0xc
mov rcx, r15
call fcn.140060820
mov rdx, qword [rsp + 0x270]
mov rcx, qword [rdx - 0x18]
add rcx, r12
test rax, rax
je 0x140016f80
xor edx, edx
call fcn.14007eba0
cmp byte [rsp + 0x2c], 0
mov r13, qword [rsi + 8]
mov rbp, qword [rsi]
je 0x140016db8
lea rax, [rsp + 0x90]
lea rdx, [r13 + 4]
mov qword [rsp + 0x88], 0
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x90], 0
call fcn.1400742b0
movabs rax, 0x3fffffffffffffff
sub rax, qword [rsp + 0x88]
cmp rax, r13
jb 0x14001706f
mov rcx, qword [rsp + 0x48]
mov r8, r13
mov rdx, rbp
call fcn.140074380
movabs rax, 0x3fffffffffffffff
sub rax, qword [rsp + 0x88]
cmp rax, 3
jbe 0x14001707b
mov rcx, qword [rsp + 0x48]
mov r8d, 4
mov rdx, rbx
call fcn.140074380
lea r13, [rsp + 0xa0]
lea rbp, [rsp + 0x168]
mov rcx, rbp
mov qword [rsp + 0x60], rbp
call fcn.14007dd30
mov rax, qword [0x14008ecb0]
pxor xmm0, xmm0
xor edx, edx
movaps xmmword [rsp + 0x250], xmm0
add rax, 0x10
movaps xmmword [rsp + 0x260], xmm0
mov qword [rsp + 0x168], rax
xor eax, eax
mov word [rsp + 0x248], ax
mov rax, qword [str.xm_t_]
mov qword [rsp + 0x240], 0
mov r15, qword [rax + 8]
mov rax, qword [rax + 0x10]
mov rcx, qword [r15 - 0x18]
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0x58], rax
add rcx, r13
mov qword [rcx], rax
call fcn.14007ea50
mov rax, qword [0x14008ea70]
add rax, 0x18
mov qword [rsp + 0xa0], rax
mov rax, qword [0x14008ea70]
add rax, 0x40
mov qword [rsp + 0x168], rax
lea rax, [rsp + 0xa8]
mov rcx, rax
mov qword [rsp + 0x30], rax
mov rbx, rax
call fcn.1400617a0
mov rdx, rbx
mov rcx, rbp
call fcn.14007ea50
mov rdx, qword [rsp + 0x80]
mov r8d, 0x14
mov rcx, rbx
call fcn.140060820
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rdx - 0x18]
add rcx, r13
test rax, rax
je 0x140016fc0
xor edx, edx
call fcn.14007eba0
mov eax, dword [rsp + 0x188]
or eax, dword [rsp + 0x360]
test al, 5
jne 0x140016e30
lea rax, [rsp + 0x7f]
mov rbp, qword [rdi + 8]
xor ebx, ebx
mov qword [rsp + 0x20], rax
jmp 0x140016bd6
mov rax, rbx
xor edx, edx
mov rcx, r13
div rbp
mov rax, qword [rdi]
movzx edx, byte [rax + rdx]
xor dl, byte [rsp + 0x7f]
mov byte [rsp + 0x7f], dl
movsx edx, dl
call fcn.14004da10
add rbx, 1
mov rdx, qword [rsp + 0x20]
mov rcx, r12
call fcn.14004c030
mov rdx, qword [rax]
mov rdx, qword [rdx - 0x18]
test byte [rax + rdx + 0x20], 5
je 0x140016bb0
mov rcx, qword [rsp + 0x38]
call fcn.140060b30
test rax, rax
je 0x140017050
mov rcx, qword [rsp + 0x30]
call fcn.140060b30
mov rbx, qword [str.pi_t_]
mov rdi, qword [0x14008ea70]
lea rdx, [rbx + 0x10]
add rdi, 0x18
movq xmm6, rdi
movq xmm1, rdx
punpcklqdq xmm6, xmm1
test rax, rax
je 0x140017028
cmp byte [rsp + 0x2c], 0
jne 0x140016f90
mov rax, qword [0x14008ea70]
mov rcx, qword [rsp + 0x30]
movaps xmmword [rsp + 0xa0], xmm6
add rax, 0x40
mov qword [rsp + 0x168], rax
call fcn.140060b30
lea rcx, [rsp + 0xf0]
call fcn.14005c6a0
mov rsi, qword [str.po_t_]
lea rcx, [rsp + 0xe0]
lea rax, [rsi + 0x10]
mov qword [rsp + 0xa8], rax
call fcn.140071ef0
mov rax, qword [r15 - 0x18]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0xa0], r15
mov rcx, qword [rsp + 0x60]
mov qword [rsp + rax + 0xa0], rdi
mov rax, qword [0x14008ecb0]
add rax, 0x10
mov qword [rsp + 0x168], rax
call fcn.14007ddc0
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
cmp rcx, rax
je 0x140016cf1
mov rax, qword [rsp + 0x90]
lea rdx, [rax + 1]
call fcn.1400842f0
mov rax, qword [str._l_t_]
mov rcx, qword [rsp + 0x38]
add rbx, 0x10
mov qword [rsp + 0x280], rbx
add rax, 0x18
mov qword [rsp + 0x270], rax
mov rax, qword [str._l_t_]
add rax, 0x40
mov qword [rsp + 0x340], rax
call fcn.140060b30
lea rcx, [rsp + 0x2c8]
add rsi, 0x10
call fcn.14005c6a0
lea rcx, [rsp + 0x2b8]
mov qword [rsp + 0x280], rsi
call fcn.140071ef0
mov rax, qword [r14 - 0x18]
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x270], r14
mov qword [rsp + rax + 0x270], rdi
mov rax, qword [0x14008ecb0]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x278], 0
add rax, 0x10
mov qword [rsp + 0x340], rax
call fcn.14007ddc0
nop
movaps xmm6, xmmword [rsp + 0x450]
add rsp, 0x468
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rbx, [r13 - 4]
lea rax, [rsp + 0x80]
cmp rbx, r13
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x90]
cmova rbx, r13
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xa0], rbx
cmp rbx, 0xf
ja 0x140016fd0
cmp rbx, 1
jne 0x140016fa0
movzx eax, byte [rbp]
mov byte [rsp + 0x90], al
mov rax, qword [rsp + 0x40]
lea r13, [rsp + 0xa0]
mov qword [rsp + 0x88], rbx
mov byte [rax + rbx], 0
jmp 0x140016a8b
mov rax, qword [0x14008ea70]
mov rbx, qword [str.pi_t_]
mov rdi, qword [0x14008ea70]
mov rcx, qword [rsp + 0x30]
add rax, 0x40
mov qword [rsp + 0x168], rax
add rdi, 0x18
lea rax, [rbx + 0x10]
movq xmm0, rdi
movq xmm2, rax
punpcklqdq xmm0, xmm2
movaps xmmword [rsp + 0xa0], xmm0
call fcn.140060b30
lea rcx, [rsp + 0xf0]
call fcn.14005c6a0
mov rsi, qword [str.po_t_]
lea rcx, [rsp + 0xe0]
lea rax, [rsi + 0x10]
mov qword [rsp + 0xa8], rax
call fcn.140071ef0
mov rax, qword [r15 - 0x18]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0xa0], r15
mov rcx, qword [rsp + 0x60]
mov qword [rsp + rax + 0xa0], rdi
mov rax, qword [0x14008ecb0]
add rax, 0x10
mov qword [rsp + 0x168], rax
call fcn.14007ddc0
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x40]
cmp rcx, rax
je 0x140016eff
mov rax, qword [rsp + 0x90]
lea rdx, [rax + 1]
call fcn.1400842f0
mov rax, qword [str._l_t_]
mov rcx, qword [rsp + 0x38]
add rbx, 0x10
mov qword [rsp + 0x280], rbx
add rax, 0x18
mov qword [rsp + 0x270], rax
mov rax, qword [str._l_t_]
add rax, 0x40
mov qword [rsp + 0x340], rax
call fcn.140060b30
lea rcx, [rsp + 0x2c8]
add rsi, 0x10
call fcn.14005c6a0
lea rcx, [rsp + 0x2b8]
mov qword [rsp + 0x280], rsi
call fcn.140071ef0
mov rax, qword [r14 - 0x18]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x270], r14
mov qword [rsp + rax + 0x270], rsi
jmp 0x140016d6c
mov edx, dword [rcx + 0x20]
or edx, 4
call fcn.14007eba0
jmp 0x1400169d8
mov rcx, qword [rsi]
call sub.msvcrt.dll_remove
jmp 0x140016c46
test rbx, rbx
je 0x140016e0c
mov rcx, qword [rsp + 0x40]
lea r13, [rsp + 0xa0]
jmp 0x140017003
mov edx, dword [rcx + 0x20]
or edx, 4
call fcn.14007eba0
jmp 0x140016b88
lea r13, [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
mov rdx, r13
call fcn.140074470
mov qword [rsp + 0x80], rax
mov rcx, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rax
mov r8, rbx
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x80]
jmp 0x140016e19
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax - 0x18]
add rcx, r13
mov edx, dword [rcx + 0x20]
or edx, 4
call fcn.14007eba0
jmp 0x140016c3b
mov rax, qword [rsp + 0x270]
mov rcx, qword [rax - 0x18]
add rcx, r12
mov edx, dword [rcx + 0x20]
or edx, 4
call fcn.14007eba0
jmp 0x140016c04
lea rcx, section..rdata
call fcn.140085870
lea rcx, section..rdata
call fcn.140085870
mov rbx, rax
jmp 0x1400170d3
mov rax, qword [0x14008ecb0]
mov rcx, qword [rsp + 0x68]
add rax, 0x10
mov qword [rsp + 0x340], rax
call fcn.14007ddc0
mov rcx, rbx
call fcn.140007478
mov rcx, qword [rsp + 0x48]
mov rbx, rax
call fcn.140072ca0
mov rcx, r12
call fcn.1400690e0
mov rcx, rbx
call fcn.140007478
mov rbx, rax
mov rax, qword [r14 - 0x18]
mov rdi, qword [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x270], r14
mov qword [rsp + rax + 0x270], rdi
mov qword [rsp + 0x278], rdx
jmp 0x1400170a1