Function at 0x41de50
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 [0x587040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx]
movsx eax, byte [ecx + 0xb]
test eax, eax
jns 0x41de75
mov eax, dword [ecx + 4]
test eax, eax
je 0x41dec8
mov ecx, dword [edi + 4]
lea esi, [ebp - 0x1c]
push str.single_profile
push esi
call fcn.0041f330
cmp byte [esi + 1], 1
jne 0x41df71
test byte [ebp - 0x1c], 1
je 0x41df71
mov ecx, dword [edi]
lea edi, [ebp - 0x1c]
push 7
push 0x568b3e
push edi
call fcn.004bab10
mov ecx, edi
push 4
push 0x568b4e
push ebx
call fcn.004bab10
mov ecx, edi
call fcn.004b9720
jmp 0x41decf
mov ecx, ebx
call fcn.004b95a0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ecef0
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 0x41e52d
sete cl
test edi, edi
setne dl
or dl, cl
mov ebx, dword [ebp + 8]
je 0x41e526
lea ecx, [ebp - 0x28]
push eax
push edi
push ebx
call fcn.0046c490
cmp byte [ebp - 0x11], 0
jns 0x41df37
push dword [ebp - 0x1c]
call fcn.004ec97e
add esp, 4
cmp byte [ebp - 0x29], 0
jns 0x41df48
push dword [ebp - 0x34]
call fcn.004ec97e
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.004b9720
cmp byte [esi + 0x14], 1
jne 0x41df69
cmp byte [esi + 0x13], 0
jns 0x41df69
mov eax, dword [ebp - 0x70]
push dword [eax]
call fcn.004ec97e
add esp, 4
mov esp, dword [ebp - 0x74]
jmp 0x41decf
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.0041f390
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 0x41e1e3
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 0x41dfc2
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
test eax, eax
js 0x41e52d
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x41e526
lea edx, [ebp - 0x1c]
push eax
push ecx
push edx
call fcn.004648a0
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.00507c20
add esp, 4
push eax
push edi
push ebx
call fcn.004648a0
add esp, 0xc
mov dword [ebp - 0x58], ebx
movsx ebx, byte [ebx + 0xb]
test ebx, ebx
jns 0x41e020
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 0x41e0ad
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 0x41e10f
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 0x41e52d
sete al
test edi, edi
setne cl
or cl, al
je 0x41e526
mov ecx, ebx
push edx
push edi
call fcn.004b9630
cmp byte [ebp - 0x1d], 0
jns 0x41e093
push dword [ebp - 0x28]
call fcn.004ec97e
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x41df50
push dword [ebp - 0x1c]
call fcn.004ec97e
add esp, 4
jmp 0x41df50
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.0041e770
add esp, 4
mov ebx, eax
test al, al
jne 0x41e4f3
mov ecx, dword [ebp + 8]
call fcn.004b95a0
mov esi, dword [ebp - 0x48]
cmp byte [ebp - 0x29], 0
jns 0x41e0f4
push dword [ebp - 0x34]
call fcn.004ec97e
add esp, 4
test bl, bl
mov ebx, dword [ebp + 8]
je 0x41e082
mov cl, byte [ebp - 0x11]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x64], edx
movzx edx, cl
jmp 0x41e058
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 0x41e157
inc edi
xor eax, eax
movzx edx, word [ebp - 0x5a]
mov ecx, dword [ebp - 0x4c]
cmp word [ecx + eax], dx
je 0x41e16b
add eax, 2
dec edi
cmp ebx, edi
jne 0x41e146
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 0x41e058
mov ecx, dword [ebp - 0x4c]
add ecx, eax
je 0x41e157
xor edi, edi
mov edx, ecx
movzx esi, word [ecx + edi*2]
mov ecx, dword [ebp - 0x58]
cmp si, word [ecx + edi*2]
jne 0x41e1be
inc edi
cmp ebx, edi
mov ecx, edx
jne 0x41e174
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 0x41e055
sub esi, dword [ebp - 0x60]
mov dword [ebp - 0x4c], esi
cmp esi, 0xfffffffe
mov esi, dword [ebp - 0x48]
je 0x41e058
sar dword [ebp - 0x4c], 1
jmp 0x41e0b4
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 0x41e138
jmp 0x41e157
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.004b95a0
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 0x41e30c
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
cmp eax, 0x7ffffff8
jae 0x41e5c5
cmp eax, 5
lea esi, [ebp - 0x1c]
jae 0x41e4bf
lea edi, [ebp - 0x1c]
mov byte [edi + 0xb], al
mov ebx, eax
add eax, eax
push eax
push 0
push edi
call fcn.004f0940
add esp, 0xc
mov word [edi + ebx*2], 0
cmp byte [ebp - 0x11], 0
jns 0x41e25b
mov esi, dword [ebp - 0x1c]
push ebx
push esi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x41e2cb
movsx ebx, byte [ebp - 0x11]
test ebx, ebx
mov edx, dword [ebp - 0x18]
mov ecx, ebx
cmovs ecx, edx
cmp eax, ecx
jae 0x41e2cb
mov esi, eax
test bl, bl
jns 0x41e2bb
sub esi, edx
ja 0x41e54b
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 0x41e2da
sub esi, ebx
ja 0x41e53c
lea ecx, [ebp - 0x1c]
mov byte [ecx + 0xb], al
jmp 0x41e292
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 0x41e2f1
push dword [ebp - 0x1c]
call fcn.004ec97e
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 0x41e325
test cl, cl
js 0x41e343
lea edx, [ebp - 0x34]
jmp 0x41e346
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 0x41e2f7
lea eax, [ebp - 0x28]
push eax
push 0x6f
call fcn.00460330
add esp, 8
test al, al
jne 0x41e372
mov ecx, ebx
call fcn.004b95a0
jmp 0x41df37
mov edx, dword [ebp - 0x34]
test eax, eax
js 0x41e52d
test edx, edx
je 0x41e526
lea edi, [ebp - 0x1c]
mov ecx, edi
push eax
push edx
call fcn.004b9630
lea ecx, [ebp - 0x28]
push edi
call fcn.004b97a0
mov ecx, edi
call fcn.004b9720
push 0x30
call fcn.004ec94e
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 0x41e5bb
movups xmm0, xmmword [0x568b84]
movups xmmword [eax + 0x1c], xmm0
movups xmm0, xmmword [0x568b78]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.CompanyName_ProductName_InternalStream]
movups xmmword [eax], xmm0
mov byte [eax + 0x2c], 0
call fcn.0041ef00
test eax, eax
je 0x41e51f
mov edi, eax
push eax
call fcn.00507c20
add esp, 4
lea ebx, [ebp - 0x1c]
push eax
push edi
push 0xd
push 0x568b95
push 0
push ebx
call fcn.004af3c0
add esp, 0x18
call fcn.0041ef30
test eax, eax
je 0x41e51f
mov edi, eax
push eax
call fcn.00507c20
add esp, 4
push eax
push edi
push 0xd
push 0x568ba3
push 0
push ebx
call fcn.004af3c0
add esp, 0x18
lea esi, [ebp - 0x40]
mov eax, dword [ebp - 0x48]
push dword [eax + 4]
push esi
call fcn.0041f650
add esp, 8
movsx eax, byte [esi + 0xb]
test eax, eax
jns 0x41e446
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
test eax, eax
js 0x41e52d
sete cl
test esi, esi
setne dl
or dl, cl
je 0x41e526
push eax
push esi
push 0x10
push str.InternalStream
push 0
push ebx
call fcn.004af3c0
add esp, 0x18
cmp byte [ebp - 0x35], 0
jns 0x41e483
push dword [ebp - 0x40]
call fcn.004ec97e
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 0x41e4a1
xor eax, eax
jmp 0x41e4b7
mov esi, ebx
mov ebx, eax
jmp 0x41def3
mov byte [esi + eax], 0x5c
inc eax
cmp edi, eax
je 0x41dee5
cmp byte [esi + eax], 0x2f
jne 0x41e4ae
jmp 0x41e4aa
mov ebx, eax
or ebx, 3
inc ebx
mov dword [ebp - 0x4c], eax
js 0x41e5cd
lea eax, [ebx + ebx]
push eax
call fcn.004ec94e
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 0x41e23c
movsx eax, byte [ebp - 0x1d]
test eax, eax
jns 0x41e4fe
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.00535780
jmp 0x41e0e0
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 0x41e532
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 0x41e532
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 0x565ab5
call fcn.0051c8d0
je 0x41e29a
mov ecx, ebx
mov eax, 4
jmp 0x41e561
je 0x41e29a
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 0x41e58a
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.00496220
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
test cl, cl
js 0x41e593
lea edi, [ebp - 0x1c]
jmp 0x41e596
mov edi, dword [ebp - 0x1c]
lea eax, [edi + ebx*2]
lea ecx, [esi + esi]
push ecx
push 0
push eax
call fcn.004f0940
add esp, 0xc
add ebx, esi
cmp byte [ebp - 0x11], 0
jns 0x41e5d2
mov dword [ebp - 0x18], ebx
lea eax, [edi + ebx*2]
jmp 0x41e295
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 0x41e532
lea ecx, [ebp - 0x1c]
call fcn.0051bd70
call fcn.0051bd90
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x41e5b3