Function at 0x140001a30
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3400]
mov eax, 0x3500
call fcn.140006060
sub rsp, rax
mov rax, qword [0x14000c040]
xor rax, rsp
mov qword [rbp + 0x33f0], rax
mov r8d, 0x3e8
lea rdx, [rbp + 0x8f0]
lea rcx, str.FILE_PATH
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov r8d, 0x64
lea rdx, [rbp + 0x7a0]
lea rcx, str.MAIN
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov r8d, 0x64
lea rdx, [rbp + 0x810]
lea rcx, str.TOTAL
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov r8d, 0x2710
lea rdx, [rbp + 0xce0]
lea rcx, str.SUB_FOLDER
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov r8d, 0x64
lea rdx, [rbp + 0x880]
lea rcx, str.MAINW
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
lea rax, [rbp + 0x7a0]
mov rdi, 0xffffffffffffffff
mov rbx, rdi
inc rbx
cmp byte [rax + rbx], 0
jne 0x140001b12
movabs r14, 0x7fffffffffffffff
cmp rbx, r14
ja 0x14000217e
movabs r15, 0x8000000000000000
mov r13d, 0x16
xor r12d, r12d
cmp rbx, 0xf
ja 0x140001b73
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], 0xf
mov r8, rbx
lea rdx, [rbp + 0x7a0]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rbx + 0x28], r12b
jmp 0x140001c09
mov rsi, rbx
or rsi, 0xf
cmp rsi, r14
jbe 0x140001ba5
mov rsi, r14
lea rax, [r15 + 0x27]
mov rcx, rax
call fcn.140005230
test rax, rax
je 0x140001c98
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x140001bda
cmp rsi, r13
cmovb rsi, r13
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x140001bc8
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000216c
jmp 0x140001b86
test rcx, rcx
je 0x140001bd7
call fcn.140005230
mov r15, rax
jmp 0x140001bda
mov r15, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rsi
mov r8, rbx
lea rdx, [rbp + 0x7a0]
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov byte [r15 + rbx], r12b
movabs r15, 0x8000000000000000
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rsi, rax
lea rbx, [rsp + 0x28]
cmp qword [rsp + 0x40], 0xf
cmova rbx, qword [rsp + 0x28]
mov dword [rax], r12d
mov r8d, 0xa
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov dword [rsp + 0x20], eax
cmp rbx, qword [rbp - 0x78]
jne 0x140001c51
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp dword [rsi], 0x22
jne 0x140001c64
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
jbe 0x140001ca4
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001c9f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001c9f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000526c
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
lea rax, [rbp + 0x810]
mov rbx, rdi
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x140001cc0
cmp rbx, r14
ja 0x140002184
cmp rbx, 0xf
ja 0x140001d04
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], 0xf
mov r8, rbx
lea rdx, [rbp + 0x810]
lea rcx, [rsp + 0x48]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rbx + 0x48], 0
jmp 0x140001d92
mov rsi, rbx
or rsi, 0xf
cmp rsi, r14
jbe 0x140001d36
mov rsi, r14
lea rax, [r15 + 0x27]
mov rcx, rax
call fcn.140005230
test rax, rax
je 0x140001e20
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x140001d6c
cmp rsi, 0x16
cmovb rsi, r13
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x140001d5a
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002172
jmp 0x140001d17
test rcx, rcx
je 0x140001d69
call fcn.140005230
mov r15, rax
jmp 0x140001d6c
mov r15, r12
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rsi
mov r8, rbx
lea rdx, [rbp + 0x810]
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov byte [r15 + rbx], 0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rsi, rax
lea rbx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rbx, qword [rsp + 0x48]
mov dword [rax], r12d
mov r8d, 0xa
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov r13d, eax
cmp rbx, qword [rbp - 0x78]
jne 0x140001dd9
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
int3
cmp dword [rsi], 0x22
jne 0x140001dec
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0xf
jbe 0x140001e2c
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001e27
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001e27
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000526c
lea rcx, [rbp + 0x880]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
movsxd r12, eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rax
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
lea rax, [rbp + 0xce0]
nop
inc rdi
cmp byte [rax + rdi], 0
jne 0x140001e60
cmp rdi, r14
ja 0x140002166
cmp rdi, 0xf
ja 0x140001ea3
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], 0xf
mov r8, rdi
lea rdx, [rbp + 0xce0]
lea rcx, [rsp + 0x68]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x68], 0
jmp 0x140001f3d
mov rax, rdi
or rax, 0xf
cmp rax, r14
jbe 0x140001edc
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140005230
test rax, rax
je 0x140002105
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140001f19
mov r14, rax
cmp rax, 0x16
mov eax, 0x16
cmovb r14, rax
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x140001f08
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002178
jmp 0x140001ebd
test rcx, rcx
je 0x140001f17
call fcn.140005230
mov rbx, rax
jmp 0x140001f19
xor ebx, ebx
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], r14
mov r8, rdi
lea rdx, [rbp + 0xce0]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rdi], 0
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x70]
call fcn.140001290
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0xf
jbe 0x140001f8b
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001f86
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001f86
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000526c
xor esi, esi
mov rdi, qword [rbp - 0x70]
mov r15, qword [rbp - 0x68]
cmp rdi, r15
je 0x14000203f
nop
mov rdx, rdi
lea rcx, [rbp - 0x58]
call fcn.140003c80
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov r14, rax
lea rbx, [rbp - 0x58]
cmp qword [rbp - 0x40], 0xf
cmova rbx, qword [rbp - 0x58]
mov dword [rax], 0
mov r8d, 0xa
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
cmp rbx, qword [rbp - 0x78]
je 0x140002121
cmp dword [r14], 0x22
je 0x140002113
mov dword [rbp + rsi*4 - 0x30], eax
inc esi
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x140002032
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000202d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000210c
call fcn.14000526c
add rdi, 0x20
cmp rdi, r15
jne 0x140001fa0
lea rcx, [rbp + 0x8f0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
je 0x1400020a7
lea rdx, str.compress
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
lea rdx, str.extract
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
test rdi, rdi
je 0x1400020a7
mov r9, r12
lea r8, [rbp - 0x30]
mov rdx, r13
mov ecx, dword [rsp + 0x20]
call fcn.140001540
mov r8, r13
lea rdx, [rbp - 0x30]
mov ecx, dword [rsp + 0x20]
call rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_getchar]
call rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_getchar]
nop
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x140002134
mov rdx, qword [rbp - 0x68]
call fcn.140004870
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x70]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000212f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000212f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea rcx, str.stoi_argument_out_of_range
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
lea rcx, str.invalid_stoi_argument
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xinvalid_argument_char_const____ptr64_]
nop
call fcn.14000526c
xor eax, eax
mov rcx, qword [rbp + 0x33f0]
xor rcx, rsp
call fcn.140005210
lea r11, [rsp + 0x3500]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400011b0
int3
call fcn.140001110
int3
call fcn.140001110
int3
call fcn.140001110
int3
call fcn.1400011b0
int3
call fcn.1400011b0
int3