Function at 0x41f250
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 [0x5c7040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx]
movsx eax, byte [ecx + 0xb]
test eax, eax
jns 0x41f275
mov eax, dword [ecx + 4]
test eax, eax
je 0x41f2c8
mov ecx, dword [edi + 4]
lea esi, [ebp - 0x1c]
push str.single_profile
push esi
call fcn.004203b0
cmp byte [esi + 1], 1
jne 0x41f371
test byte [ebp - 0x1c], 1
je 0x41f371
mov ecx, dword [edi]
lea edi, [ebp - 0x1c]
push 7
push str.profile
push edi
call fcn.004bb900
mov ecx, edi
push 4
push 0x5a33c6
push ebx
call fcn.004bb900
mov ecx, edi
call fcn.004ba510
jmp 0x41f2cf
mov ecx, ebx
call fcn.004ba390
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f5620
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 0x41f9ac
sete cl
test edi, edi
setne dl
or dl, cl
mov ebx, dword [ebp + 8]
je 0x41f9a5
lea ecx, [ebp - 0x28]
push eax
push edi
push ebx
call fcn.004513a0
cmp byte [ebp - 0x11], 0
jns 0x41f337
push dword [ebp - 0x1c]
call fcn.004f50ae
add esp, 4
cmp byte [ebp - 0x29], 0
jns 0x41f348
push dword [ebp - 0x34]
call fcn.004f50ae
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.004ba510
cmp byte [esi + 0x14], 1
jne 0x41f369
cmp byte [esi + 0x13], 0
jns 0x41f369
mov eax, dword [ebp - 0x70]
push dword [eax]
call fcn.004f50ae
add esp, 4
mov esp, dword [ebp - 0x74]
jmp 0x41f2cf
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.00420410
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 0x41f5e3
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 0x41f3c2
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
test eax, eax
js 0x41f9ac
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x41f9a5
lea edx, [ebp - 0x1c]
push eax
push ecx
push edx
call fcn.00449580
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.00510cc0
add esp, 4
push eax
push edi
push ebx
call fcn.00449580
add esp, 0xc
mov dword [ebp - 0x58], ebx
movsx ebx, byte [ebx + 0xb]
test ebx, ebx
jns 0x41f420
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 0x41f4ad
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 0x41f50f
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 0x41f9ac
sete al
test edi, edi
setne cl
or cl, al
je 0x41f9a5
mov ecx, ebx
push edx
push edi
call fcn.004ba420
cmp byte [ebp - 0x1d], 0
jns 0x41f493
push dword [ebp - 0x28]
call fcn.004f50ae
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x41f350
push dword [ebp - 0x1c]
call fcn.004f50ae
add esp, 4
jmp 0x41f350
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.0041f9e0
add esp, 4
mov ebx, eax
test al, al
jne 0x41f8f3
mov ecx, dword [ebp + 8]
call fcn.004ba390
mov esi, dword [ebp - 0x48]
cmp byte [ebp - 0x29], 0
jns 0x41f4f4
push dword [ebp - 0x34]
call fcn.004f50ae
add esp, 4
test bl, bl
mov ebx, dword [ebp + 8]
je 0x41f482
mov cl, byte [ebp - 0x11]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x64], edx
movzx edx, cl
jmp 0x41f458
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 0x41f557
inc edi
xor eax, eax
movzx edx, word [ebp - 0x5a]
mov ecx, dword [ebp - 0x4c]
cmp word [ecx + eax], dx
je 0x41f56b
add eax, 2
dec edi
cmp ebx, edi
jne 0x41f546
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 0x41f458
mov ecx, dword [ebp - 0x4c]
add ecx, eax
je 0x41f557
xor edi, edi
mov edx, ecx
movzx esi, word [ecx + edi*2]
mov ecx, dword [ebp - 0x58]
cmp si, word [ecx + edi*2]
jne 0x41f5be
inc edi
cmp ebx, edi
mov ecx, edx
jne 0x41f574
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 0x41f455
sub esi, dword [ebp - 0x60]
mov dword [ebp - 0x4c], esi
cmp esi, 0xfffffffe
mov esi, dword [ebp - 0x48]
je 0x41f458
sar dword [ebp - 0x4c], 1
jmp 0x41f4b4
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 0x41f538
jmp 0x41f557
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.004ba390
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 0x41f70c
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
cmp eax, 0x7ffffff8
jae 0x41f9c2
cmp eax, 5
lea esi, [ebp - 0x1c]
jae 0x41f8bf
lea edi, [ebp - 0x1c]
mov byte [edi + 0xb], al
mov ebx, eax
add eax, eax
push eax
push 0
push edi
call fcn.004f9090
add esp, 0xc
mov word [edi + ebx*2], 0
cmp byte [ebp - 0x11], 0
jns 0x41f65b
mov esi, dword [ebp - 0x1c]
push ebx
push esi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x41f6cb
movsx ebx, byte [ebp - 0x11]
test ebx, ebx
mov edx, dword [ebp - 0x18]
mov ecx, ebx
cmovs ecx, edx
cmp eax, ecx
jae 0x41f6cb
mov esi, eax
test bl, bl
jns 0x41f6bb
sub esi, edx
ja 0x41f92e
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 0x41f6da
sub esi, ebx
ja 0x41f91f
lea ecx, [ebp - 0x1c]
mov byte [ecx + 0xb], al
jmp 0x41f692
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 0x41f6f1
push dword [ebp - 0x1c]
call fcn.004f50ae
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 0x41f725
test cl, cl
js 0x41f743
lea edx, [ebp - 0x34]
jmp 0x41f746
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 0x41f6f7
lea eax, [ebp - 0x28]
push eax
push 0x6f
call fcn.004447f0
add esp, 8
test al, al
jne 0x41f772
mov ecx, ebx
call fcn.004ba390
jmp 0x41f337
mov edx, dword [ebp - 0x34]
test eax, eax
js 0x41f9ac
test edx, edx
je 0x41f9a5
lea edi, [ebp - 0x1c]
mov ecx, edi
push eax
push edx
call fcn.004ba420
lea ecx, [ebp - 0x28]
push edi
call fcn.004ba590
mov ecx, edi
call fcn.004ba510
push 0x30
call fcn.004f507e
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 0x41f9bb
movups xmm0, xmmword [0x5a33fc]
movups xmmword [eax + 0x1c], xmm0
movups xmm0, xmmword [0x5a33f0]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.CompanyName_ProductName_InternalStream]
movups xmmword [eax], xmm0
mov byte [eax + 0x2c], 0
call fcn.00420180
test eax, eax
je 0x41f99e
mov edi, eax
push eax
call fcn.00510cc0
add esp, 4
lea ebx, [ebp - 0x1c]
push eax
push edi
push 0xd
push 0x5a340d
push 0
push ebx
call fcn.004b11b0
add esp, 0x18
call fcn.004201b0
test eax, eax
je 0x41f99e
mov edi, eax
push eax
call fcn.00510cc0
add esp, 4
push eax
push edi
push 0xd
push 0x5a341b
push 0
push ebx
call fcn.004b11b0
add esp, 0x18
lea esi, [ebp - 0x40]
mov eax, dword [ebp - 0x48]
push dword [eax + 4]
push esi
call fcn.004206d0
add esp, 8
movsx eax, byte [esi + 0xb]
test eax, eax
jns 0x41f846
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
test eax, eax
js 0x41f9ac
sete cl
test esi, esi
setne dl
or dl, cl
je 0x41f9a5
push eax
push esi
push 0x10
push str.InternalStream
push 0
push ebx
call fcn.004b11b0
add esp, 0x18
cmp byte [ebp - 0x35], 0
jns 0x41f883
push dword [ebp - 0x40]
call fcn.004f50ae
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 0x41f8a1
xor eax, eax
jmp 0x41f8b7
mov esi, ebx
mov ebx, eax
jmp 0x41f2f3
mov byte [esi + eax], 0x5c
inc eax
cmp edi, eax
je 0x41f2e5
cmp byte [esi + eax], 0x2f
jne 0x41f8ae
jmp 0x41f8aa
mov ebx, eax
or ebx, 3
inc ebx
mov dword [ebp - 0x4c], eax
js 0x41f9ca
lea eax, [ebx + ebx]
push eax
call fcn.004f507e
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 0x41f63c
movsx eax, byte [ebp - 0x1d]
test eax, eax
jns 0x41f8fe
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.0053bf30
jmp 0x41f4e0
je 0x41f69a
mov ecx, ebx
mov eax, 4
jmp 0x41f944
je 0x41f69a
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 0x41f96d
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.004963f0
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
test cl, cl
jns 0x41f976
mov edi, dword [ebp - 0x1c]
jmp 0x41f979
lea edi, [ebp - 0x1c]
lea eax, [edi + ebx*2]
lea ecx, [esi + esi]
push ecx
push 0
push eax
call fcn.004f9090
add esp, 0xc
add ebx, esi
cmp byte [ebp - 0x11], 0
jns 0x41f9cf
mov dword [ebp - 0x18], ebx
lea eax, [edi + ebx*2]
jmp 0x41f695
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 0x41f9b1
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 0x41f9b1
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 0x59f83f
call fcn.00526860
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 0x41f9b1
lea ecx, [ebp - 0x1c]
call fcn.00525850
call fcn.00525870
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x41f996