Function at 0x14003fca0
Capabilities:
Create directory
Download url
Enumerate pe sections
Get common file path
Receive data

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3d8]
sub rsp, 0x4d8
mov rax, qword [0x1400f3680]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
mov r12, r9
mov qword [rsp + 0x38], r9
mov rsi, r8
mov qword [rsp + 0x58], r8
mov rbx, rdx
mov qword [rsp + 0x40], rdx
mov rdi, rcx
mov qword [rbp + 0x20], rcx
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], r8
mov qword [rbp - 0x48], r9
xor r14d, r14d
mov r15d, r14d
mov dword [rbp - 0x40], r14d
mov dword [rsp + 0x54], r14d
mov r8, qword [r8 + 0x10]
mov rcx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x14003fd2b
mov rcx, qword [rsi]
mov r13, 0xffffffffffffffff
test r8, r8
jne 0x14003fe0b
lea rdx, [0x1400ad3f5]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14003fe0b
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x1e0]
call fcn.14009866e
lea rdx, [rbp + 0x1e0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x14003fd9e
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
jmp 0x140040e4f
lea rax, [rbp + 0x1e0]
mov rbx, r13
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x14003fdb0
mov rax, qword [rsi + 0x18]
cmp rbx, rax
ja 0x14003fdee
mov r14, rsi
cmp rax, 0xf
jbe 0x14003fdce
mov r14, qword [rsi]
mov qword [rsi + 0x10], rbx
mov r8, rbx
lea rdx, [rbp + 0x1e0]
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
mov byte [r14 + rbx], 0
xor r14d, r14d
jmp 0x14003fe06
lea r9, [rbp + 0x1e0]
movzx r8d, byte [rsp + 0x30]
mov rdx, rbx
mov rcx, rsi
call fcn.140005820
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x10]
mov rax, rsi
mov rdx, qword [rsi + 0x18]
cmp rdx, 0xf
jbe 0x14003fe1f
mov rax, qword [rsi]
cmp byte [rax + rcx - 1], 0x5c
je 0x14003fe71
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x14003fe4e
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0xf
jbe 0x14003fe46
mov rax, qword [rsi]
mov word [rax + rcx], 0x5c
jmp 0x14003fe71
mov qword [rsp + 0x20], 1
lea r9, [0x1400b0d70]
movzx r8d, byte [rsp + 0x30]
mov edx, 1
mov rcx, rsi
call fcn.14000b440
mov rcx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x14003fe7e
mov rcx, qword [rsi]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x14003fe9b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14003fd79
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x40]
call fcn.14009866e
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x14003feb9
mov rdx, qword [rbx]
mov dword [rsp + 0x20], 1
mov r9d, 0x40
lea r8d, [r9 - 0x1c]
lea rcx, [rbp + 0x40]
call fcn.140013080
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x40], rax
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x3c], edx
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____cdecl_std::basic_istream_char__struct_std::char_traits_char__::tellg_void____ptr64]
mov r14, qword [rax + 8]
add r14, qword [rax]
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::seekg_long_long___int64___int____ptr64]
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x38], xmm1
mov qword [rbp - 0x28], rax
test r14, r14
je 0x14003ffa3
movabs rax, 0x7fffffffffffffff
cmp r14, rax
ja 0x140040eae
cmp r14, 0x1000
jb 0x14003ff79
lea rcx, [r14 + 0x27]
cmp rcx, r14
jbe 0x140040eb4
call fcn.140097574
mov rcx, rax
test rax, rax
je 0x140040df0
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14003ff81
mov rcx, r14
call fcn.140097574
mov qword [rbp - 0x38], rax
lea rbx, [rax + r14]
mov qword [rbp - 0x28], rbx
mov r8, r14
xor edx, edx
mov rcx, rax
call fcn.14009866e
mov qword [rbp - 0x30], rbx
mov rbx, qword [rsp + 0x40]
mov r8, r14
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp + 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::read_char____ptr64__long_long___int64_____ptr64]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
test al, al
jne 0x140040d90
test r14, r14
je 0x140040d90
mov r8d, r14d
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x78]
call fcn.140042ad0
mov rbx, rax
mov r14, qword [rsi + 0x10]
mov r12, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x14003fff9
mov r12, qword [rsi]
mov r8, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
mov rax, rcx
sub rax, r8
cmp r14, rax
ja 0x14004008b
lea rax, [r14 + r8]
mov qword [rbx + 0x10], rax
mov r15, rbx
cmp rcx, 0xf
jbe 0x140040020
mov r15, qword [rbx]
lea rax, [r14 + r12]
mov qword [rbp + 0x20], rax
cmp rax, r15
jbe 0x140040048
lea rax, [r15 + r8]
cmp r12, rax
ja 0x140040048
cmp r15, r12
ja 0x140040040
xor r13d, r13d
jmp 0x14004004b
mov r13, r15
sub r13, r12
jmp 0x14004004b
mov r13, r14
inc r8
lea rcx, [r14 + r15]
mov rdx, r15
call sub.VCRUNTIME140.dll_memmove
mov r8, r13
mov rdx, r12
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
sub r14, r13
mov rdx, qword [rbp + 0x20]
add rdx, r13
lea rcx, [r15 + r13]
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
mov r13, 0xffffffffffffffff
mov r15d, dword [rbp - 0x40]
jmp 0x1400400ac
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r12
xor r9d, r9d
movzx r8d, byte [rsp + 0x30]
mov rdx, r14
mov rcx, rbx
call fcn.14000b780
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsp + 0x70], xmm1
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
or r15d, 2
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
mov r10d, 4
cmp rax, r10
jb 0x14004012b
lea rax, [rcx + 4]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x60]
mov dword [rax + rcx], 0x6264702e
mov byte [rax + rcx + 4], 0
lea rax, [rsp + 0x60]
jmp 0x14004014a
mov qword [rsp + 0x20], r10
lea r9, str..pdb
movzx r8d, byte [rsp + 0x30]
mov rdx, r10
lea rcx, [rsp + 0x60]
call fcn.14000b440
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
xor ebx, ebx
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x10], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], bl
or r15d, 4
mov dword [rbp - 0x40], r15d
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x1400401c0
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400401bb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400401bb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400975b0
movdqa xmm0, xmmword [0x1400a9990]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], 0
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x140040211
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004020c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004020c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400975b0
movdqa xmm0, xmmword [0x1400a9990]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
mov rax, qword [rbp - 0x38]
movsxd r14, dword [rax + 0x3c]
add r14, rax
mov r12d, ebx
mov dword [rsp + 0x50], ebx
movzx eax, word [r14 + 4]
mov ecx, 0x8664
cmp ax, cx
jne 0x140040268
lea rax, [r14 + 0xb8]
mov qword [rbp - 0x80], rax
lea r15, [r14 + 0x54]
lea rcx, [r14 + 0x50]
mov qword [rbp + 0x20], __WSAFDIsSet
mov ebx, 0x3c
lea eax, [rbx - 4]
jmp 0x1400402a6
mov ecx, 0x14c
cmp ax, cx
jne 0x140040d1f
mov r12d, 1
mov dword [rsp + 0x50], r12d
mov qword [rbp - 0x80], 0xa0
lea ecx, [r12 + 0x37]
lea r15d, [r12 + 0x3b]
lea rax, [r14 + 0xa8]
mov qword [rbp + 0x20], rax
lea rbx, [r14 + 0x54]
lea rax, [r14 + 0x50]
test r12d, r12d
cmove rax, rcx
mov ecx, dword [rax]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x1400403e5
lea ecx, [rax + 8]
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
xor ebx, ebx
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
mov rdx, qword [rbp - 8]
cmp rdx, 0xf
jbe 0x14004032a
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040325
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040d89
call fcn.1400975b0
mov byte [rbp - 0x20], 0
mov qword [rbp - 8], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x10], rbx
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140040380
mov rdx, qword [rbp - 0x28]
sub rdx, rcx
cmp rdx, 0x1000
mov rax, rcx
jb 0x14004036f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040df0
call fcn.1400975b0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rbx
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x40], rax
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x3c], edx
lea rcx, [rbp + 0x50]
call fcn.140004720
lea rcx, [rbp + 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0xf0]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rcx, qword [rsp + 0x40]
call fcn.140004790
nop
mov rcx, rsi
call fcn.140004790
nop
mov rcx, qword [rsp + 0x38]
jmp 0x140040e64
test r12d, r12d
cmove rbx, r15
mov r8d, dword [rbx]
mov r12, qword [rbp - 0x38]
mov rdx, r12
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
movzx ebx, word [r14 + 0x14]
add rbx, 0x2c
xor r15d, r15d
cmp word [r14 + 6], r15w
je 0x140040454
add rbx, r14
mov rsi, qword [rsp + 0x48]
nop dword [rax]
mov eax, dword [rbx - 4]
test eax, eax
je 0x14004043e
mov r8d, eax
mov edx, dword [rbx]
add rdx, r12
mov ecx, dword [rbx - 8]
add rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r12, qword [rbp - 0x38]
inc r15d
add rbx, 0x28
movzx eax, word [r14 + 6]
cmp r15d, eax
jne 0x140040420
mov rsi, qword [rsp + 0x58]
cmp dword [rsp + 0x50], 0
mov rcx, qword [rbp - 0x80]
cmovne rcx, qword [rbp + 0x20]
mov eax, dword [rcx]
mov rdx, qword [rsp + 0x48]
cmp dword [rcx + 4], 0
je 0x140040bb3
cmp dword [rax + rdx + 0xc], 2
jne 0x140040bb3
mov eax, dword [rax + rdx + 0x14]
add rax, rdx
mov qword [rsp + 0x58], rax
cmp dword [rax], 0x53445352
je 0x14004055a
mov rcx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
xor ebx, ebx
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
mov rdx, qword [rbp - 8]
cmp rdx, 0xf
jbe 0x140040508
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040503
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040c1d
call fcn.1400975b0
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x20], 0
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140040380
mov rdx, qword [rbp - 0x28]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004036f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040c6a
jmp 0x14004036f
lea rax, [rbp]
mov qword [rbp + 0x20], rax
mov r14, qword [rbp - 0x10]
lea r15, [rbp - 0x20]
cmp qword [rbp - 8], 0xf
cmova r15, qword [rbp - 0x20]
call fcn.140096a9c
mov r12d, eax
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
xor ebx, ebx
mov qword [rbp + 0x10], rbx
mov edx, 7
mov qword [rbp + 0x18], rdx
mov word [rbp], bx
mov eax, dword [rbp - 0x40]
or eax, 0x20
mov dword [rsp + 0x54], eax
test r14, r14
je 0x14004061a
cmp r14, 0x7fffffff
ja 0x140040eba
mov dword [rsp + 0x20], ebx
xor r9d, r9d
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.140096ac4
mov rbx, rax
shr rax, 0x20
test eax, eax
jne 0x140040ec5
xor r8d, r8d
movsxd rdx, ebx
lea rcx, [rbp]
call fcn.14003f550
lea r9, [rbp]
cmp qword [rbp + 0x18], 7
cmova r9, qword [rbp]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.140096ac4
mov rcx, rax
shr rax, 0x20
test eax, eax
jne 0x140040e8f
mov rdx, qword [rbp + 0x18]
xor ebx, ebx
lea rcx, [rbp]
cmp rdx, 7
cmova rcx, qword [rbp]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp + 0x150]
call fcn.140096d2c
mov r8d, eax
test eax, eax
jne 0x140040694
mov edx, dword [rbp + 0x160]
test dl, 1
mov ecx, 0x1ff
mov eax, 0x16d
cmovne ecx, eax
mov dword [rbp + 0x24], ecx
bt edx, 0xa
jae 0x140040686
mov eax, dword [rbp + 0x164]
cmp eax, 0xa000000c
jne 0x140040678
lea eax, [r8 + 4]
jmp 0x1400406b6
cmp eax, 0xa0000003
jne 0x140040686
mov eax, 0xa
jmp 0x1400406b6
movzx eax, dl
and eax, 0x10
or eax, 0x20
shr eax, 4
jmp 0x1400406b6
mov dword [rbp + 0x24], 0xffff
sub eax, 2
je 0x1400406b1
sub eax, 1
je 0x1400406b1
sub eax, 0x32
je 0x1400406b1
cmp eax, 0x46
mov eax, ebx
jne 0x1400406b6
mov eax, 1
mov dword [rbp + 0x20], r8d
lea rcx, [0x1400e96c0]
mov qword [rbp + 0x28], rcx
movaps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0x20], xmm0
test eax, eax
je 0x14004078a
cmp eax, 1
sete bl
lea rcx, [rbp]
call fcn.140004b40
test bl, bl
je 0x140040b29
xor edx, edx
mov r8d, 0xc8
lea rcx, [rbp + 0x2f0]
call fcn.14009866e
mov r15, qword [rsp + 0x58]
lea rcx, [r15 + 4]
mov r8d, 0x64
lea rdx, [rbp + 0x2f0]
call qword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
jne 0x14004079a
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
xor ebx, ebx
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
lea rcx, [rbp - 0x20]
call fcn.140004790
nop
mov rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x140040b10
mov r8, qword [rbp - 0x28]
sub r8, rdx
lea rcx, [rbp - 0x38]
call fcn.140024710
mov qword [rbp - 0x28], rbx
jmp 0x140040b08
mov bl, 1
test r8d, r8d
jne 0x140040e99
jmp 0x1400406dc
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x170], xmm0
movups xmmword [rbp + 0x180], xmm0
movups xmmword [rbp + 0x190], xmm0
movups xmmword [rbp + 0x1a0], xmm0
movups xmmword [rbp + 0x1b0], xmm0
movups xmmword [rbp + 0x1c0], xmm0
mov dword [rbp + 0x1d0], eax
xor r14d, r14d
mov qword [rbp + 0x20], r14
mov qword [rsp + 0x20], 0x64
lea r9, [rbp + 0x2f0]
lea r8d, [rax + 0x64]
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x20]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstombs_s]
test eax, eax
jne 0x140040aaa
mov rbx, qword [rbp + 0x20]
test rbx, rbx
je 0x140040aaa
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x1e0]
call fcn.14009866e
mov edx, r14d
mov eax, r14d
nop word [rax + rax]
movzx ecx, byte [rbp + rax + 0x170]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x14004084d
lea eax, [rcx - 0x41]
cmp al, 5
jbe 0x14004084d
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x140040871
lea r8, [rbp + 0x1e0]
mov rax, r13
nop word [rax + rax]
lea rax, [rax + 1]
cmp byte [r8 + rax], r14b
jne 0x140040860
mov byte [rbp + rax + 0x1e0], cl
inc edx
mov eax, edx
cmp rax, rbx
jne 0x140040830
xor eax, eax
mov word [rbp - 0x40], ax
mov byte [rbp - 0x3e], al
lea r9d, [rax + 0xa]
lea r8d, [rax + 3]
lea rdx, [rbp - 0x40]
mov ecx, dword [r15 + 0x14]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa_s]
mov r12, qword [rsp + 0x38]
mov rdx, r12
lea rcx, [rbp]
call fcn.140005960
nop
lea rdx, [r15 + 0x18]
mov r8, r13
inc r8
cmp byte [rdx + r8], 0
jne 0x1400408b2
lea rcx, [rbp]
call fcn.140022d60
mov r8d, 1
lea rdx, [0x1400ad824]
lea rcx, [rbp]
call fcn.140022d60
lea rax, [rbp + 0x1e0]
mov r14, r13
inc r14
cmp byte [rax + r14], 0
jne 0x1400408e5
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x140040933
lea rax, [rcx + r14]
mov qword [rbp + 0x10], rax
lea rbx, [rbp]
cmp rdx, 0xf
cmova rbx, qword [rbp]
add rbx, rcx
mov r8, r14
lea rdx, [rbp + 0x1e0]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov byte [r14 + rbx], 0
jmp 0x140040951
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0x1e0]
movzx r8d, byte [rsp + 0x30]
mov rdx, r14
lea rcx, [rbp]
call fcn.14000b440
lea rax, [rbp - 0x40]
mov r14, r13
nop dword [rax + rax]
inc r14
cmp byte [rax + r14], 0
jne 0x140040960
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x1400409ab
lea rax, [r14 + rcx]
mov qword [rbp + 0x10], rax
lea rbx, [rbp]
cmp rdx, 0xf
cmova rbx, qword [rbp]
add rbx, rcx
mov r8, r14
lea rdx, [rbp - 0x40]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [r14 + rbx], 0
jmp 0x1400409c6
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x40]
movzx r8d, byte [rsp + 0x30]
mov rdx, r14
lea rcx, [rbp]
call fcn.14000b440
mov r8d, 1
lea rdx, [0x1400ad824]
lea rcx, [rbp]
call fcn.140022d60
lea rdx, [r15 + 0x18]
inc r13
cmp byte [rdx + r13], 0
jne 0x1400409e0
mov r8, r13
lea rcx, [rbp]
call fcn.140022d60
lea r8, [rbp - 0x20]
cmp qword [rbp - 8], 0xf
cmova r8, qword [rbp - 0x20]
lea rdx, [rbp]
cmp qword [rbp + 0x18], 0xf
cmova rdx, qword [rbp]
xor ebx, ebx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor ecx, ecx
call sub.urlmon.dll_URLDownloadToFileA
mov rcx, qword [rsp + 0x48]
test eax, eax
jns 0x140040a95
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
lea rcx, [rbp]
call fcn.140004790
nop
lea rcx, [rbp - 0x20]
call fcn.140004790
nop
mov rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x140040b15
mov r8, qword [rbp - 0x28]
sub r8, rdx
lea rcx, [rbp - 0x38]
call fcn.140024710
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rbx
jmp 0x140040b15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
lea rcx, [rbp]
call fcn.140004790
jmp 0x140040b30
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
lea rcx, [rbp - 0x20]
call fcn.140004790
nop
mov rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x140040b10
mov r8, qword [rbp - 0x28]
sub r8, rdx
lea rcx, [rbp - 0x38]
call fcn.140024710
mov qword [rbp - 0x28], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov r12, qword [rsp + 0x38]
lea rcx, [rbp + 0x40]
call fcn.140005ab0
nop
mov rcx, qword [rsp + 0x40]
jmp 0x140040e52
mov r12, qword [rsp + 0x38]
xor ebx, ebx
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbp - 0x10], rbx
mov qword [rbp - 8], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x20], 0
lea rcx, [rbp - 0x20]
call fcn.140004790
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140040b9f
mov rdx, qword [rbp - 0x28]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040b8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040c6a
call fcn.1400975b0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rbx
lea rcx, [rbp + 0x40]
call fcn.140005ab0
nop
mov rcx, qword [rsp + 0x40]
jmp 0x140040e52
mov rcx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
xor r14d, r14d
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
mov rdx, qword [rbp - 8]
cmp rdx, 0xf
jbe 0x140040c29
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040c24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140040c24
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400975b0
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x20], 0
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140040c82
mov rdx, qword [rbp - 0x28]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040c71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140040c71
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400975b0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], r14
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x40], rax
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x3c], edx
lea rcx, [rbp + 0x50]
call fcn.140004720
lea rcx, [rbp + 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0xf0]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x140040d04
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140040cff
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140040d18
mov rcx, r8
call fcn.1400975b0
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
jmp 0x1400403d2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
mov rdx, qword [rbp - 8]
cmp rdx, 0xf
jbe 0x14004032a
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040325
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140040325
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_SetLastError]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
xor r14d, r14d
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
xor r8d, r8d
lea rdx, [0x1400ad3f5]
mov rcx, rdi
call fcn.140004100
nop
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140040e08
mov rdx, qword [rbp - 0x28]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140040df7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140040df7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400975b0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], r14
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x40], rax
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x3c], edx
lea rcx, [rbp + 0x50]
call fcn.140004720
lea rcx, [rbp + 0x58]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0xf0]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rcx, rbx
call fcn.140004790
nop
mov rcx, rsi
call fcn.140004790
nop
mov rcx, r12
call fcn.140004790
mov rax, rdi
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.140097850
add rsp, 0x4d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
shr rcx, 0x20
call fcn.14003f3b0
nop
lea r8, [rbp]
lea rdx, [rbp + 0x20]
lea rcx, str.exists
call fcn.14003f2e0
nop
call fcn.140005b60
int3
call fcn.140004b00
nop
mov ecx, reloc.WS2_32.dll_shutdown
call fcn.140021ff0
int3
shr rbx, 0x20
mov ecx, ebx
call fcn.14003f3b0
int3