Function at 0x1800438e0
Capabilities:
Allocate thread local storage
Get disk information
Set environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x608]
sub rsp, 0x6d0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
mov rax, qword [0x180079880]
xor rax, rsp
mov qword [rbp + 0x540], rax
movzx ebx, byte [rsp + 0x50]
mov edi, edx
mov dword [rsp + 0x58], edx
mov rsi, r9
mov qword [rsp + 0x68], r8
mov rdx, rcx
mov qword [rsp + 0x60], rcx
lea eax, [rdi + 0xd0]
mov dword [rsp + 0x54], eax
cmp edi, eax
jae case.0x1800441bd.14
movzx eax, byte [rsp + 0x50]
lea r9, [0x180000000]
mov r12d, dword [rsp + 0x54]
xor r10d, r10d
movss xmm11, dword [rsp + 0x54]
mov r14d, dword [rsp + 0x54]
movss xmm13, dword [rsp + 0x54]
mov r13d, dword [rsp + 0x54]
lea r11d, [r10 + 0x75]
movss xmm12, dword [rsp + 0x54]
movss xmm9, dword [rsp + 0x54]
movss xmm10, dword [rsp + 0x54]
movss xmm7, dword [rsp + 0x54]
movss xmm6, dword [rsp + 0x54]
movss xmm8, dword [rsp + 0x54]
mov r15, qword [rbp - 0x78]
mov dword [rsp + 0x70], eax
lea eax, [rdi - 0xa3]
cmp eax, 0x9c
ja case.0x1800439f5.179
movzx eax, byte [r9 + rax + 0x445f0]
mov ecx, dword [r9 + rax*4 + 0x445ac]
add rcx, r9
jmp rcx
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp byte [rsp + 0x50], 0
mov rdi, rax
mov qword [rbp + 0x1d0], rax
je 0x180043a1c
mov ecx, dword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_TlsFree]
mov rdx, qword [rsp + 0x60]
cmp rdi, 0xffffffffffffffff
mov edi, dword [rsp + 0x58]
jne 0x180043a4c
mov r8, qword [rsp + 0x68]
xor al, al
mov dword [rsp + 0x70], eax
xor r10d, r10d
jmp 0x1800443c5
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbp - 0x80], eax
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
xor r10d, r10d
jmp 0x1800443c5
mov r8d, 1
lea rdx, [0x18007272b]
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
xor r10d, r10d
mov dword [rbp + 0x208], 0x730077
jmp 0x1800443bb
mov r12d, 2
jmp case.0x1800439f5.179
mov eax, 0x6c
mov dword [rbp + 0x21a], eax
mov al, 1
mov dword [rsp + 0x70], eax
jmp case.0x1800439f5.179
xor eax, eax
mov qword [rbp - 0x48], r10
xorps xmm0, xmm0
mov dword [rbp - 0x28], eax
movups xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x24], ax
jmp case.0x1800439f5.179
mov eax, 0x5357
mov word [rbp + 0x1c0], ax
jmp case.0x1800439f5.179
mov r9d, 0x7b
mov byte [rsp + 0x50], 1
lea r8, [rbp + 0x208]
xor ecx, ecx
lea rdx, [rbp + 0x1c0]
call fcn.18001dd90
mov qword [rbp - 0x58], rax
xor r10d, r10d
jmp 0x1800443bb
mov eax, dword [rdx]
cmp eax, 8
jle case.0x1800439f5.179
lea r9, [rsp + 0x78]
mov dword [rsp + 0x78], eax
mov edx, r11d
mov rcx, rsi
call fcn.180041bf0
mov rdx, qword [rsp + 0x60]
mov r12d, 8
mov eax, dword [rdx]
cmp eax, 0x20
jle 0x180043a4c
lea edi, [r12 + 0x18]
mov r15, rdx
nop dword [rax]
mov r8, qword [rsp + 0x68]
lea rdx, [rbp - 0x70]
mov dword [rbp - 0x70], eax
mov r9d, 0xaa
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], 0
mov rcx, rsi
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x78], r12d
call fcn.180044730
mov eax, dword [r15]
mov r12d, edi
lea edi, [rdi*4]
cmp edi, eax
jl 0x180043b40
mov r15, qword [rbp - 0x78]
xor r10d, r10d
mov edi, dword [rsp + 0x58]
jmp 0x1800443bb
mov eax, 0x6c
mov dword [rbp + 0x20c], 0x5f0032
mov word [rbp + 0x218], ax
mov dword [rbp + 0x210], 0x320033
mov dword [rbp + 0x214], 0x64002e
jmp case.0x1800439f5.179
mov r8d, 1
mov byte [rbp + 0x1c8], 0
lea rdx, [0x18007274e]
lea rcx, [rbp + 0x1c8]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
xor r10d, r10d
mov byte [rbp + 0x1c9], 0
jmp 0x1800443bb
lea eax, [r12*4]
movsxd r9, r14d
movsxd r11, r12d
cmp eax, dword [rdx]
jne 0x180043da7
mov rcx, r10
test r12d, r12d
jle 0x1800443c5
mov r15d, dword [rbp - 0x68]
mov r10d, r12d
nop dword [rax + rax]
mov eax, 0x88
movsxd r8, r15d
movsxd rdx, r13d
nop dword [rax + rax]
cmp eax, 0x2c2
ja 0x180043cd7
je 0x180043ca0
cmp eax, 0x88
je 0x180043c94
cmp eax, 0x146
je 0x180043c74
cmp eax, 0x204
jne 0x180043d76
movss xmm6, dword [rsi + r9*4 + 4]
movss xmm8, dword [rsi + rcx*4]
addss xmm6, dword [rsi + rcx*4 + 4]
subss xmm8, dword [rsi + r9*4]
jmp 0x180043d76
movss xmm7, dword [rsi + rcx*4]
lea r13d, [r14 + r12]
addss xmm7, dword [rsi + r9*4]
lea rdx, [r11 + r9]
lea r15d, [r12 + r13]
lea r8, [r11 + rdx]
jmp 0x180043d76
mov r14d, r10d
lea r9, [r11 + rcx]
jmp 0x180043d76
movss xmm9, dword [rsi + rdx*4]
movss xmm11, dword [rsi + rcx*4 + 4]
movaps xmm13, xmm9
movss xmm12, dword [rsi + r8*4 + 4]
addss xmm13, dword [rsi + r8*4]
subss xmm11, dword [rsi + r9*4 + 4]
addss xmm12, dword [rsi + rdx*4 + 4]
subss xmm9, dword [rsi + r8*4]
jmp 0x180043d76
cmp eax, 0x380
je 0x180043d40
cmp eax, 0x43e
je 0x180043d11
cmp eax, 0x4fc
jne 0x180043d76
movaps xmm0, xmm8
movaps xmm1, xmm11
addss xmm0, xmm10
subss xmm1, xmm9
movss dword [rsi + r8*4], xmm0
movss dword [rsi + r8*4 + 4], xmm1
jmp 0x180043d76
movaps xmm0, xmm6
movaps xmm1, xmm8
subss xmm0, xmm12
subss xmm1, xmm10
movss dword [rsi + rdx*4 + 4], xmm0
movaps xmm0, xmm9
addss xmm0, xmm11
movss dword [rsi + r9*4], xmm1
movss dword [rsi + r9*4 + 4], xmm0
jmp 0x180043d76
movss xmm10, dword [rsi + rdx*4 + 4]
movaps xmm0, xmm7
subss xmm10, dword [rsi + r8*4 + 4]
addss xmm0, xmm13
movaps xmm1, xmm6
addss xmm1, xmm12
movss dword [rsi + rcx*4], xmm0
movaps xmm0, xmm7
subss xmm0, xmm13
movss dword [rsi + rcx*4 + 4], xmm1
movss dword [rsi + rdx*4], xmm0
add eax, 0xbe
cmp eax, 0x5ba
jb 0x180043c30
add r10d, 2
mov dword [rbp - 0x68], r15d
add rcx, 2
cmp rcx, r11
jl 0x180043c20
mov r15, qword [rbp - 0x78]
xor r10d, r10d
jmp 0x1800443bb
mov rdx, r10
test r12d, r12d
jle 0x1800443c0
mov r8d, r12d
nop word [rax + rax]
mov ecx, 0xbb
mov eax, ecx
sub eax, 0xb8
je 0x180043e26
sub eax, 1
je 0x180043e1e
sub eax, 1
je 0x180043de6
cmp eax, 1
jne 0x180043e2d
mov r14d, r8d
lea r9, [r11 + rdx]
jmp 0x180043e2d
movss xmm2, dword [rsi + rdx*4]
movss xmm0, dword [rsi + rdx*4 + 4]
movaps xmm7, xmm2
addss xmm2, dword [rsi + r9*4]
subss xmm7, dword [rsi + r9*4]
movaps xmm6, xmm0
subss xmm6, dword [rsi + r9*4 + 4]
movss dword [rsi + rdx*4], xmm2
addss xmm0, dword [rsi + r9*4 + 4]
movss dword [rsi + rdx*4 + 4], xmm0
jmp 0x180043e2d
movss dword [rsi + r9*4], xmm7
jmp 0x180043e2d
movss dword [rsi + r9*4 + 4], xmm6
dec ecx
cmp ecx, 0xb7
ja 0x180043dc5
add r8d, 2
add rdx, 2
cmp rdx, r11
jl 0x180043dc0
jmp 0x1800443bb
mov qword [rsp + 0x40], r10
xor r9d, r9d
mov qword [rsp + 0x38], rdx
xor r8d, r8d
mov dword [rsp + 0x30], 0x86
xor edx, edx
mov qword [rsp + 0x28], r10
xor ecx, ecx
mov qword [rsp + 0x20], r10
call fcn.18000f700
test al, al
jne 0x180043a47
mov edi, 0x12
nop word [rax + rax]
lea r9, [0x180000000]
cmp edi, 0x12
ja case.default.0x180043ea9
mov eax, edi
mov ecx, dword [r9 + rax*4 + 0x44690]
add rcx, r9
jmp rcx
mov r15, 0xffffffffffffffff
mov byte [rsp + 0x51], 1
mov qword [rbp - 0x78], r15
jmp case.default.0x180043ea9
mov eax, 0x3158
mov byte [rbp + 0x19d], 0
mov word [rbp + 0x19b], ax
lea rdx, [0x18007276b]
mov r8d, 2
lea rcx, [rbp + 0x190]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
lea r9, [0x180000000]
xor r10d, r10d
mov r11d, 0x75
dec edi
lea eax, [rdi + 0x107]
cmp eax, 0x106
ja 0x180043e90
mov edi, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
jmp case.0x1800439f5.179
mov word [rbp + 0x1a9], 0x6e
jmp case.default.0x180043ea9
mov eax, dword [0x1800727d2]
mov dword [rbp + 0x1f4], eax
movzx eax, word [0x1800727d6]
mov word [rbp + 0x1f8], ax
jmp case.default.0x180043ea9
mov word [rbp + 0x1a3], 0x6e
jmp case.default.0x180043ea9
xor eax, eax
mov dword [rbp + 0x1e8], 0x77006f
lea rdx, [0x180072824]
mov word [rbp + 0x1ec], ax
lea rcx, [rbp + 0x1e0]
lea r8d, [rax + 4]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
jmp 0x180043eea
mov dword [rbp + 0x1a4], 0x69746174
lea rdx, [0x18007285c]
mov byte [rbp + 0x1a8], 0
mov r8d, 1
jmp 0x180043edd
xor eax, eax
mov ecx, eax
cmp r15, 0xffffffffffffffff
movzx eax, byte [rsp + 0x51]
cmovne ecx, eax
mov byte [rsp + 0x51], cl
cmp cl, 0
je 0x180043fc3
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor bl, bl
jmp 0x180043eea
movzx eax, word [0x18007288f]
mov word [rbp + 0x198], ax
movzx eax, byte [0x180072891]
mov byte [rbp + 0x19a], al
mov byte [rbp + 0x19b], 0
jmp case.default.0x180043ea9
movzx eax, word [0x1800728b5]
mov word [rbp + 0x195], ax
movzx eax, byte [0x1800728b7]
mov byte [rbp + 0x197], al
jmp case.default.0x180043ea9
xor r8d, r8d
lea r9, [rbp + 0x1e0]
xor ecx, ecx
lea edx, [r8 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbp - 0x60], rax
xor eax, eax
mov edx, eax
nop dword [rax]
movzx ecx, byte [rbp + rdx + 0x190]
mov byte [rbp + rdx + 0x220], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x180044040
lea rdx, [rbp + 0x330]
lea rcx, [rbp + 0x220]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov rcx, qword [rbp - 0x60]
mov r15, rax
mov qword [rbp - 0x78], rax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x180043eea
mov r8d, 2
lea rdx, [0x18007291e]
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
xor r10d, r10d
mov dword [rbp + 0x1fe], 0x200065
mov word [rbp + 0x202], r10w
lea r9, [0x180000000]
jmp 0x180043ef4
mov r8d, 4
lea rdx, [0x180072949]
lea rcx, [rbp + 0x19f]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
jmp 0x180043eea
xor r10d, r10d
mov word [rbp + 0x1e8], r10w
jmp 0x180043ef4
movzx eax, word [0x180072996]
mov word [rbp + 0x192], ax
movzx eax, byte [0x180072998]
mov byte [rbp + 0x194], al
jmp case.default.0x180043ea9
mov eax, dword [0x1800729ba]
mov r11d, 0x75
mov dword [rbp + 0x1e2], eax
xor r10d, r10d
movzx eax, word [0x1800729be]
mov word [rbp + 0x1e6], ax
mov word [rbp + 0x1e0], r11w
jmp 0x180043efa
mov byte [rbp + 0x190], 0
lea rdx, [0x180072a06]
jmp 0x180043ed7
xor r10d, r10d
mov word [rbp + 0x1fa], r10w
jmp 0x180043ef4
mov eax, dword [0x180072a14]
mov dword [rbp + 0x1c2], eax
movzx eax, byte [0x180072a18]
mov byte [rbp + 0x1c6], al
mov byte [rbp + 0x1c7], 0x74
jmp case.0x1800439f5.179
mov ecx, 0x202
lea rdx, [rbp - 0x10]
call qword [rbp - 0x58]
test eax, eax
je 0x18004439d
xor edx, edx
mov edi, edx
nop dword [rax + rax]
cmp edi, 0xe
ja case.default.0x1800441bd
lea r8, [0x180000000]
mov eax, edi
mov ecx, dword [r8 + rax*4 + 0x446dc]
add rcx, r8
jmp rcx
mov eax, 0x5f
mov word [rbp + 0x1b9], ax
mov eax, 0x57
mov word [rbp + 0x1ba], ax
mov eax, 0x52
mov word [rbp + 0x1bb], ax
mov eax, 0x41
mov word [rbp + 0x1bc], ax
jmp case.default.0x1800441bd
mov qword [rbp - 0x50], rdx
lea rcx, [rbp + 0x190]
lea rdx, [rbp + 0x1b0]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
xorps xmm0, xmm0
lea rcx, [rbp - 0x20]
movups xmmword [rbp - 0x20], xmm0
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
jmp 0x180044384
mov r8d, 1
lea rdx, [0x18006fc50]
lea rcx, [rbp + 0x190]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
jmp 0x180044384
mov eax, 0x50
mov word [rbp + 0x1bd], ax
movzx eax, word [0x180072a1c]
mov word [rbp + 0x190], ax
movzx eax, byte [0x180072a1e]
mov byte [rbp + 0x192], al
jmp case.default.0x1800441bd
mov eax, 0x4d
mov word [rbp + 0x195], ax
jmp case.default.0x1800441bd
mov eax, 0x69
mov word [rbp + 0x196], ax
jmp case.default.0x1800441bd
mov eax, 0x45
mov word [rbp + 0x1b6], ax
mov eax, 0x4e
mov word [rbp + 0x1b7], ax
mov eax, 0x54
mov word [rbp + 0x1b8], ax
jmp case.default.0x1800441bd
mov r8d, 2
lea rdx, [0x18006fc0c]
lea rcx, [rbp + 0x197]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov r8d, 4
lea rdx, [0x180072a20]
lea rcx, [rbp + 0x198]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
jmp 0x180044384
xor bl, bl
jmp case.default.0x1800441bd
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
jmp 0x180044384
mov dword [rbp + 0x192], 0x727275
jmp case.default.0x1800441bd
mov eax, 0x49
mov word [rbp + 0x1b0], ax
mov eax, 0x4e
mov word [rbp + 0x1b1], ax
mov eax, 0x43
mov word [rbp + 0x1b2], ax
mov eax, 0x52
mov word [rbp + 0x1b3], ax
jmp case.default.0x1800441bd
mov eax, 0x4d45
mov word [rbp + 0x1b4], ax
jmp case.default.0x1800441bd
mov eax, 0x74
lea rdx, [0x180072a24]
lea rcx, [rbp + 0x19d]
mov word [rbp + 0x19c], ax
lea r8d, [rax - 0x71]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov eax, 0x29
mov word [rbp + 0x19f], ax
xor edx, edx
inc edi
lea eax, [rdi + 0xb3]
cmp eax, 0xc2
jb 0x1800441a0
mov edi, dword [rsp + 0x58]
movzx eax, byte [rsp + 0x50]
xor r10d, r10d
cmp dword [rbp - 0x80], 0xffffffff
mov ecx, r10d
mov qword [rbp - 0x40], r10
cmovne ecx, eax
mov dword [rbp - 0x7c], r10d
mov byte [rsp + 0x50], cl
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov r11d, 0x75
lea r9, [0x180000000]
add edi, 0xd
mov dword [rsp + 0x58], edi
cmp edi, dword [rsp + 0x54]
jb 0x1800439d0
movzx eax, bl
mov rcx, qword [rbp + 0x540]
xor rcx, rsp
call fcn.180050c90
lea r11, [rsp + 0x6d0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ebx, dword [rsp + 0x70]
test bl, bl
je 0x18004459a
mov rsi, qword [rbp + 0x1d0]
mov edi, 0xf
lea r11d, [rdi + 0x43]
cmp edi, 0x5eb
ja 0x1800444a6
je 0x180044582
cmp edi, 0xf
je 0x180044499
cmp edi, 0x13b
je 0x18004448a
cmp edi, 0x267
jne 0x180044582
mov dword [rbp + 0x1d6], 0x690074
jmp 0x180044582
mov dword [rbp + 0x1d2], 0x6e0075
jmp 0x180044582
mov word [rbp + 0x1d0], r11w
jmp 0x180044582
cmp edi, 0x717
je 0x180044582
cmp edi, 0x843
je 0x180044582
cmp edi, 0x96f
je 0x180044544
cmp edi, 0xa9b
jne 0x180044582
test bl, bl
je 0x180044582
mov ebx, 0x8c
nop
cmp ebx, 0x8c
je 0x180044527
cmp ebx, 0x4114
jne 0x180044530
movzx eax, word [rbp - 0x36]
lea r8, [rbp - 0x48]
sub ax, 0x11
mov word [rsp + 0x58], r10w
mov word [rsp + 0x5a], ax
lea rdx, [rbp - 0x40]
mov r9d, dword [rsp + 0x58]
lea rax, [rbp - 0x7c]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ScrollConsoleScreenBufferA]
xor r10d, r10d
jmp 0x180044530
mov byte [rbp - 0x7c], 0x20
mov dword [rsp + 0x58], r10d
add ebx, 0x4088
cmp ebx, 0x8110
jbe 0x1800444e0
mov ebx, dword [rsp + 0x70]
jmp 0x18004457c
lea rdx, [rbp - 0x38]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movzx ebx, bl
lea rdx, [rbp + 0x330]
test eax, eax
lea rcx, [rbp + 0x1d0]
mov eax, 0
mov r8d, 0x104
cmove ebx, eax
mov dword [rsp + 0x70], ebx
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov r11d, 0x52
add edi, 0x12c
mov r10d, 0
cmp edi, 0xbb8
jbe 0x180044454
xor edx, edx
xor r8d, r8d
lea ecx, [rdx + 0x5b]
call fcn.18003a510
jmp 0x1800443e6