Function at 0x140004620
Capabilities:
Create directory
Download url
Get common file path
Receive data

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x240]
sub rsp, 0x340
mov rax, qword [0x14004a010]
xor rax, rsp
mov qword [rbp + 0x230], rax
mov rdi, rdx
mov r15, rcx
mov qword [rbp - 0x20], rdx
xor esi, esi
cmp byte [0x14006af98], sil
jne 0x1400046af
call fcn.140003dd0
test al, al
jne 0x1400046af
xor r9d, r9d
lea r8, str.Fatal_Error
lea rdx, str.Failed_to_read_meta_data
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
nop
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x140004b96
mov rax, qword [rcx]
cmp rcx, rdi
setne dl
call qword [rax + 0x20]
mov qword [rdi + 0x38], rsi
mov eax, 0x80004005
jmp 0x140004ed5
xor r9d, r9d
lea r8d, [r9 + 0x1a]
lea rdx, [rbp + 0x120]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x50], xmm1
lea rax, [rbp + 0x120]
mov rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x1400046e5
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x60]
call fcn.14000bf20
nop
mov r8d, 1
lea rdx, [0x14003ba64]
lea rcx, [rbp - 0x60]
call fcn.14000b500
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8, rbx
nop word [rax + rax]
inc r8
cmp byte [r15 + r8], 0
jne 0x140004750
mov rdx, r15
lea rcx, [rsp + 0x58]
call fcn.14000b500
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rsi
mov qword [rbp + 0x88], rsi
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x70], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x80], xmm1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x1400047dd
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400047d8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400047d8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x58], 0
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14000482e
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004829
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004829
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rbp - 0x50], xmm0
mov byte [rbp - 0x60], 0
mov r13, qword [rbp + 0x80]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r13
cmp rax, 1
jb 0x140004f05
lea rax, [rbp + 0x70]
cmp qword [rbp + 0x88], 0x10
cmovae rax, qword [rbp + 0x70]
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
lea r12, [r13 + 1]
mov r14d, 0xf
lea rsi, [rsp + 0x38]
cmp r12, r14
jbe 0x14000491f
mov r14, r12
or r14, 0xf
cmp r14, rcx
jbe 0x1400048b0
mov r14, rcx
jmp 0x1400048bc
mov ecx, 0x16
cmp r14, rcx
cmovb r14, rcx
mov rcx, r14
add rcx, 1
cmovb rcx, rbx
cmp rcx, 0x1000
jb 0x140004904
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140004eff
mov rcx, rax
call fcn.14003862c
test rax, rax
je 0x1400048fd
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
mov rax, qword [rsp + 0x30]
jmp 0x14000491a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x140004918
call fcn.14003862c
mov rsi, rax
mov rax, qword [rsp + 0x30]
jmp 0x14000491a
xor esi, esi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r14
mov r8, r13
mov rdx, rax
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + r13], 0x5c
mov byte [rsi + r12], 0
mov r8, rbx
inc r8
cmp byte [r15 + r8], 0
jne 0x140004944
mov rdx, r15
lea rcx, [rsp + 0x38]
call fcn.14000b500
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x78], xmm1
xor r14d, r14d
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 0xf
mov byte [rax], r14b
lea r8d, [r14 + 4]
lea rdx, str..dll
lea rcx, [rsp + 0x78]
call fcn.14000b500
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xa0], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x90], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xa0], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 0xf
mov byte [rax], r14b
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x140004a1a
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004a15
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004a15
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rbp - 0x78], xmm0
mov byte [rsp + 0x78], 0
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x140004a6c
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004a67
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004a67
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rsp + 0x48], xmm0
mov byte [rsp + 0x38], 0
lea rcx, [rbp + 0x70]
cmp qword [rbp + 0x88], 0x10
cmovae rcx, qword [rbp + 0x70]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x140004ba0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x140004ba0
xor r9d, r9d
lea r8, str.Fatal_Error
lea rdx, str.Failed_to_create_directory
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
nop
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x140004b0f
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b0a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004b0a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140004b67
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b62
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004b62
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
mov qword [rbp + 0x80], r14
mov qword [rbp + 0x88], 0xf
mov byte [rbp + 0x70], 0
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x140004b96
mov rax, qword [rcx]
cmp rcx, rdi
setne dl
call qword [rax + 0x20]
mov qword [rdi + 0x38], r14
mov eax, 0x80004005
jmp 0x140004ed5
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x30], xmm1
mov r8d, 0x1e
lea rdx, str.https:__axion.systems_api_lib_
lea rcx, [rbp - 0x40]
call fcn.14000bf20
nop
lea rdx, [0x14006b3c0]
nop dword [rax]
inc rbx
cmp byte [rdx + rbx], 0
jne 0x140004bd0
mov r8, rbx
lea rcx, [rbp - 0x40]
call fcn.14000b500
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xc0], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xb0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xc0], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x140004c5c
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004c57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004c57
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
lea rax, [rbp + 0x30]
mov qword [rsp + 0x30], rax
mov r8, r14
mov qword [rbp + 0x68], r14
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x140004c85
mov rax, qword [rcx]
lea rdx, [rbp + 0x30]
call qword [rax]
mov r8, rax
mov qword [rbp + 0x68], rax
lea rax, [rbp + 0x30]
mov qword [rsp + 0x30], rax
lea rbx, [rbp + 0x90]
cmp qword [rbp + 0xa8], 0x10
cmovae rbx, qword [rbp + 0x90]
lea rsi, [rbp + 0xb0]
cmp qword [rbp + 0xc8], 0x10
cmovae rsi, qword [rbp + 0xb0]
lea rax, [rbp - 0x10]
mov qword [rbp - 0x68], rax
mov rcx, r14
mov qword [rbp + 0x28], rcx
test r8, r8
je 0x140004ce3
mov rax, qword [r8]
lea rdx, [rbp - 0x10]
mov rcx, r8
call qword [rax]
mov rcx, rax
mov qword [rbp + 0x28], rax
lea rax, [rbp - 0x10]
mov qword [rbp - 0x68], rax
lea rax, vtable.Axion::Utils::CallbackHandler.0
mov qword [rbp + 0xd0], rax
mov dword [rbp + 0xd8], r14d
lea rax, [rbp + 0xe0]
mov qword [rbp - 0x18], rax
mov qword [rbp + 0x118], r14
test rcx, rcx
je 0x140004d2e
mov rax, qword [rcx]
lea rdx, [rbp + 0xe0]
call qword [rax]
mov qword [rbp + 0x118], rax
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x140004d47
mov rax, qword [rcx]
lea rdx, [rbp - 0x10]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x28], r14
lea r9, [rbp + 0xd0]
mov qword [rsp + 0x20], r9
xor r9d, r9d
mov r8, rbx
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.urlmon.dll_URLDownloadToFileA]
mov ebx, eax
mov rcx, qword [rbp + 0x118]
test rcx, rcx
je 0x140004d90
mov rdx, qword [rcx]
mov r8, qword [rdx + 0x20]
lea rax, [rbp + 0xe0]
cmp rcx, rax
setne dl
call r8
mov qword [rbp + 0x118], r14
mov rcx, qword [rbp + 0x68]
test rcx, rcx
je 0x140004dad
mov rax, qword [rcx]
lea rdx, [rbp + 0x30]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x68], r14
mov rdx, qword [rbp + 0xc8]
cmp rdx, 0x10
jb 0x140004df1
inc rdx
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004dec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004dec
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rbp + 0xc0], xmm0
mov byte [rbp + 0xb0], 0
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x140004e4c
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004e47
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004e47
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
movdqa xmm0, xmmword [0x1400417f0]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140004ea4
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004e9f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004e9f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140038990
mov qword [rbp + 0x80], r14
mov qword [rbp + 0x88], 0xf
mov byte [rbp + 0x70], 0
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x140004ed3
mov rax, qword [rcx]
cmp rcx, rdi
setne dl
call qword [rax + 0x20]
mov qword [rdi + 0x38], r14
mov eax, ebx
mov rcx, qword [rbp + 0x230]
xor rcx, rsp
call fcn.140038490
mov rbx, qword [rsp + 0x390]
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140001250
nop
call fcn.1400012f0
int3