Function at 0x417430
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x68
mov edi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx]
movsx eax, byte [ecx + 0xb]
test eax, eax
jns 0x417455
mov eax, dword [ecx + 4]
test eax, eax
je 0x4174a8
mov ecx, dword [edi + 4]
lea esi, [ebp - 0x1c]
push str.single_profile
push esi
call fcn.00418490
cmp byte [esi + 1], 1
jne 0x417551
test byte [ebp - 0x1c], 1
je 0x417551
mov ecx, dword [edi]
lea edi, [ebp - 0x1c]
push 7
push 0x52773c
push edi
call fcn.00470050
mov ecx, edi
push 4
push 0x52774c
push ebx
call fcn.00470050
mov ecx, edi
call fcn.0046ec60
jmp 0x4174af
mov ecx, ebx
call fcn.0046eae0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov esi, ebx
mov bl, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
movzx eax, bl
test bl, bl
cmovs eax, edx
mov edi, esi
cmovs edi, ecx
test eax, eax
mov esi, dword [ebp - 0x48]
js 0x417b8c
sete cl
test edi, edi
setne dl
or dl, cl
mov ebx, dword [ebp + 8]
je 0x417b85
lea ecx, [ebp - 0x28]
push eax
push edi
push ebx
call fcn.0042c4e0
cmp byte [ebp - 0x11], 0
jns 0x417517
push dword [ebp - 0x1c]
call fcn.0048d98d
add esp, 4
cmp byte [ebp - 0x29], 0
jns 0x417528
push dword [ebp - 0x34]
call fcn.0048d98d
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.0046ec60
cmp byte [esi + 0x14], 1
jne 0x417549
cmp byte [esi + 0x13], 0
jns 0x417549
mov eax, dword [ebp - 0x70]
push dword [eax]
call fcn.0048d98d
add esp, 4
mov esp, dword [ebp - 0x74]
jmp 0x4174af
mov dword [ebp - 0x74], esp
push eax
sub esp, 0x14
mov esi, esp
lea ebx, [esi + 8]
mov ecx, dword [edi + 4]
push str.profile_path
push ebx
call fcn.004184f0
mov eax, dword [ebp + 8]
mov dword [esi], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 4], eax
cmp byte [esi + 0x14], 1
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x70], ebx
jne 0x4177c3
xor edi, edi
dec edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
movsx eax, byte [esi + 0x13]
mov ecx, ebx
test eax, eax
jns 0x4175a2
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
test eax, eax
js 0x417b8c
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x417b85
lea edx, [ebp - 0x1c]
push eax
push ecx
push edx
call fcn.00427c40
add esp, 0xc
lea ebx, [ebp - 0x28]
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov edi, str._USERNAME_
push edi
call fcn.004a7490
add esp, 4
push eax
push edi
push ebx
call fcn.00427c40
add esp, 0xc
mov dword [ebp - 0x58], ebx
movsx ebx, byte [ebx + 0xb]
test ebx, ebx
jns 0x417600
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x58], eax
movsx edx, byte [ebp - 0x11]
test edx, edx
mov eax, dword [ebp - 0x1c]
lea edi, [ebp - 0x1c]
mov ecx, edi
cmovs ecx, eax
test ebx, ebx
je 0x41768d
mov dword [ebp - 0x60], ecx
mov ecx, edx
test dl, dl
mov esi, dword [ebp - 0x18]
mov edi, edx
mov dword [ebp - 0x64], esi
cmovs edi, esi
cmp edi, ebx
jge 0x4176ef
mov ebx, dword [ebp + 8]
lea edi, [ebp - 0x1c]
mov esi, dword [ebp - 0x48]
test cl, cl
cmovs edx, dword [ebp - 0x64]
cmovs edi, eax
test edx, edx
js 0x417b8c
sete al
test edi, edi
setne cl
or cl, al
je 0x417b85
mov ecx, ebx
push edx
push edi
call fcn.0046eb70
cmp byte [ebp - 0x1d], 0
jns 0x417673
push dword [ebp - 0x28]
call fcn.0048d98d
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x417530
push dword [ebp - 0x1c]
call fcn.0048d98d
add esp, 4
jmp 0x417530
mov dword [ebp - 0x4c], 0
xorps xmm0, xmm0
lea esi, [ebp - 0x34]
movsd qword [esi], xmm0
mov dword [esi + 8], 0
push esi
call fcn.00417bc0
add esp, 4
mov ebx, eax
test al, al
jne 0x417ad3
mov ecx, dword [ebp + 8]
call fcn.0046eae0
mov esi, dword [ebp - 0x48]
cmp byte [ebp - 0x29], 0
jns 0x4176d4
push dword [ebp - 0x34]
call fcn.0048d98d
add esp, 4
test bl, bl
mov ebx, dword [ebp + 8]
je 0x417662
mov cl, byte [ebp - 0x11]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x64], edx
movzx edx, cl
jmp 0x417638
mov byte [ebp - 0x41], cl
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0x60]
lea ecx, [edx + edi*2]
mov eax, dword [ebp - 0x58]
movzx eax, word [eax]
mov word [ebp - 0x5a], ax
lea eax, [edx + edi*2 - 2]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x4c], edx
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x68], ecx
mov eax, edi
sub eax, ebx
inc eax
je 0x417737
inc edi
xor eax, eax
movzx edx, word [ebp - 0x5a]
mov ecx, dword [ebp - 0x4c]
cmp word [ecx + eax], dx
je 0x41774b
add eax, 2
dec edi
cmp ebx, edi
jne 0x417726
mov ebx, dword [ebp + 8]
lea edi, [ebp - 0x1c]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov cl, byte [ebp - 0x41]
jmp 0x417638
mov ecx, dword [ebp - 0x4c]
add ecx, eax
je 0x417737
xor edi, edi
mov edx, ecx
movzx esi, word [ecx + edi*2]
mov ecx, dword [ebp - 0x58]
cmp si, word [ecx + edi*2]
jne 0x41779e
inc edi
cmp ebx, edi
mov ecx, edx
jne 0x417754
cmp ecx, dword [ebp - 0x68]
mov ebx, dword [ebp + 8]
lea edi, [ebp - 0x1c]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov esi, ecx
mov cl, byte [ebp - 0x41]
je 0x417635
sub esi, dword [ebp - 0x60]
mov dword [ebp - 0x4c], esi
cmp esi, 0xfffffffe
mov esi, dword [ebp - 0x48]
je 0x417638
sar dword [ebp - 0x4c], 1
jmp 0x417694
mov edi, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x4c]
sub edi, ecx
lea edx, [ecx + eax]
add edx, 2
sub edi, eax
sar edi, 1
mov dword [ebp - 0x4c], edx
cmp edi, ebx
mov esi, dword [ebp - 0x48]
jge 0x417718
jmp 0x417737
xor ebx, ebx
dec ebx
lea ecx, [ebp - 0x28]
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
call fcn.0046eae0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
xor edi, edi
push edi
push edi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x4178ec
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
cmp eax, 0x7ffffff8
jae 0x417ba2
cmp eax, 5
lea esi, [ebp - 0x1c]
jae 0x417a9f
lea edi, [ebp - 0x1c]
mov byte [edi + 0xb], al
mov ebx, eax
add eax, eax
push eax
push 0
push edi
call fcn.004918a0
add esp, 0xc
mov word [edi + ebx*2], 0
cmp byte [ebp - 0x11], 0
jns 0x41783b
mov esi, dword [ebp - 0x1c]
push ebx
push esi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x4178ab
movsx ebx, byte [ebp - 0x11]
test ebx, ebx
mov edx, dword [ebp - 0x18]
mov ecx, ebx
cmovs ecx, edx
cmp eax, ecx
jae 0x4178ab
mov esi, eax
test bl, bl
jns 0x41789b
sub esi, edx
ja 0x417b0e
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
lea eax, [ecx + eax*2]
mov word [eax], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
movsd xmm0, qword [ebp - 0x1c]
movsd qword [ebp - 0x34], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], 0
jmp 0x4178ba
sub esi, ebx
ja 0x417aff
lea ecx, [ebp - 0x1c]
mov byte [ecx + 0xb], al
jmp 0x417872
xorps xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
mov esi, dword [ebp - 0x48]
cmp byte [ebp - 0x11], 0
mov ebx, dword [ebp + 8]
jns 0x4178d1
push dword [ebp - 0x1c]
call fcn.0048d98d
add esp, 4
mov cl, byte [ebp - 0x29]
mov edi, dword [ebp - 0x30]
test cl, cl
movzx eax, cl
cmovs eax, edi
test eax, eax
je 0x417905
test cl, cl
js 0x417923
lea edx, [ebp - 0x34]
jmp 0x417926
xorps xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
xor ecx, ecx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x48]
jmp 0x4178d7
lea eax, [ebp - 0x28]
push eax
push 0x6f
call fcn.00424e20
add esp, 8
test al, al
jne 0x417952
mov ecx, ebx
call fcn.0046eae0
jmp 0x417517
mov edx, dword [ebp - 0x34]
test eax, eax
js 0x417b8c
test edx, edx
je 0x417b85
lea edi, [ebp - 0x1c]
mov ecx, edi
push eax
push edx
call fcn.0046eb70
lea ecx, [ebp - 0x28]
push edi
call fcn.0046ece0
mov ecx, edi
call fcn.0046ec60
push 0x30
call fcn.0048d95d
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 0x80000030
mov dword [ebp - 0x18], 0x2c
lea ecx, [eax + 0x2c]
mov edx, str.CompanyName_ProductName_InternalStream
cmp eax, edx
seta bl
cmp ecx, edx
setbe cl
or cl, bl
je 0x417b9b
movups xmm0, xmmword [0x527782]
movups xmmword [eax + 0x1c], xmm0
movups xmm0, xmmword [0x527776]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.CompanyName_ProductName_InternalStream]
movups xmmword [eax], xmm0
mov byte [eax + 0x2c], 0
call fcn.00418270
test eax, eax
je 0x417b7e
mov edi, eax
push eax
call fcn.004a7490
add esp, 4
lea ebx, [ebp - 0x1c]
push eax
push edi
push 0xd
push 0x527793
push 0
push ebx
call fcn.00468480
add esp, 0x18
call fcn.004182a0
test eax, eax
je 0x417b7e
mov edi, eax
push eax
call fcn.004a7490
add esp, 4
push eax
push edi
push 0xd
push 0x5277a1
push 0
push ebx
call fcn.00468480
add esp, 0x18
lea esi, [ebp - 0x40]
mov eax, dword [ebp - 0x48]
push dword [eax + 4]
push esi
call fcn.004187b0
add esp, 8
movsx eax, byte [esi + 0xb]
test eax, eax
jns 0x417a26
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
test eax, eax
js 0x417b8c
sete cl
test esi, esi
setne dl
or dl, cl
je 0x417b85
push eax
push esi
push 0x10
push str.InternalStream
push 0
push ebx
call fcn.00468480
add esp, 0x18
cmp byte [ebp - 0x35], 0
jns 0x417a63
push dword [ebp - 0x40]
call fcn.0048d98d
add esp, 4
movsx eax, byte [ebp - 0x11]
test eax, eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, ebx
cmovs esi, ecx
mov edi, eax
cmovs edi, edx
test edi, edi
je 0x417a81
xor eax, eax
jmp 0x417a97
mov esi, ebx
mov ebx, eax
jmp 0x4174d3
mov byte [esi + eax], 0x5c
inc eax
cmp edi, eax
je 0x4174c5
cmp byte [esi + eax], 0x2f
jne 0x417a8e
jmp 0x417a8a
mov ebx, eax
or ebx, 3
inc ebx
mov dword [ebp - 0x4c], eax
js 0x417baa
lea eax, [ebx + ebx]
push eax
call fcn.0048d95d
add esp, 4
mov edi, eax
mov dword [ebp - 0x1c], eax
or ebx, 0x80000000
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
jmp 0x41781c
movsx eax, byte [ebp - 0x1d]
test eax, eax
jns 0x417ade
mov eax, dword [ebp - 0x24]
movsx edx, byte [ebp - 0x29]
test edx, edx
cmovs edx, dword [ebp - 0x30]
cmovs esi, dword [ebp - 0x34]
lea ecx, [ebp - 0x1c]
push edx
push esi
push eax
push dword [ebp - 0x4c]
call fcn.004d1180
jmp 0x4176c0
je 0x41787a
mov ecx, ebx
mov eax, 4
jmp 0x417b24
je 0x41787a
mov ecx, dword [ebp - 0x14]
mov eax, ecx
and eax, 0x7fffffff
dec eax
shr ecx, 0x18
mov ebx, edx
mov edx, eax
sub edx, ebx
cmp edx, esi
jae 0x417b4d
mov edx, esi
sub edx, eax
add edx, ebx
lea ecx, [ebp - 0x1c]
xor edi, edi
push edi
xor edi, edi
push edi
push ebx
push ebx
push edx
push eax
call fcn.00457460
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
test cl, cl
jns 0x417b56
mov edi, dword [ebp - 0x1c]
jmp 0x417b59
lea edi, [ebp - 0x1c]
lea eax, [edi + ebx*2]
lea ecx, [esi + esi]
push ecx
push 0
push eax
call fcn.004918a0
add esp, 0xc
add ebx, esi
cmp byte [ebp - 0x11], 0
jns 0x417baf
mov dword [ebp - 0x18], ebx
lea eax, [edi + ebx*2]
jmp 0x417875
push str....._third_partylibc_srcinclude_string_view:268:_assertion___s___nullptr_failed:_null_pointer_passed_to_non_null_argument_of_char_traits_..._::length_n
jmp 0x417b91
push str....._third_partylibc_srcinclude_string_view:320:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
jmp 0x417b91
push str....._third_partylibc_srcinclude_string_view:318:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
push 0x524b41
call fcn.004bbec0
push str....._third_partylibc_srcinclude__stringchar_traits.h:145:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
jmp 0x417b91
lea ecx, [ebp - 0x1c]
call fcn.004bb270
call fcn.004bb3a0
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x417b76