Function at 0x41cef0
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 [0x57f040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx]
movsx eax, byte [ecx + 0xb]
test eax, eax
jns 0x41cf15
mov eax, dword [ecx + 4]
test eax, eax
je 0x41cf68
mov ecx, dword [edi + 4]
lea esi, [ebp - 0x1c]
push str.single_profile
push esi
call fcn.0041e380
cmp byte [esi + 1], 0
je 0x41d007
cmp byte [ebp - 0x1c], 0
je 0x41d007
mov ecx, dword [edi]
lea edi, [ebp - 0x1c]
push 7
push str.profile
push edi
call fcn.004b8100
mov ecx, edi
push 4
push 0x56184c
push ebx
call fcn.004b8100
mov ecx, edi
call fcn.004b73c0
jmp 0x41cf6f
mov ecx, ebx
call fcn.004b7270
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e71b0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov bl, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
movzx eax, bl
test bl, bl
cmovs eax, edx
cmovs esi, ecx
test eax, eax
mov edi, dword [ebp - 0x48]
js 0x41d637
mov ebx, dword [ebp + 8]
je 0x41cfb1
test esi, esi
je 0x41d630
lea ecx, [ebp - 0x28]
push eax
push esi
push ebx
call fcn.0046b510
cmp byte [ebp - 0x11], 0
jns 0x41cfcd
push dword [ebp - 0x1c]
call fcn.004e6c3e
add esp, 4
cmp byte [ebp - 0x29], 0
jns 0x41cfde
push dword [ebp - 0x34]
call fcn.004e6c3e
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.004b73c0
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x14], 0
je 0x41cfff
cmp byte [eax + 0x13], 0
jns 0x41cfff
push dword [edi]
call fcn.004e6c3e
add esp, 4
mov esp, dword [ebp - 0x74]
jmp 0x41cf6f
mov dword [ebp - 0x74], esp
push eax
sub esp, 0x14
mov esi, esp
lea eax, [esi + 8]
mov ecx, dword [edi + 4]
mov edi, eax
push str.profile_path
push eax
call fcn.0041e3e0
mov dword [esi], ebx
mov eax, dword [ebp + 0xc]
mov dword [esi + 4], eax
cmp byte [esi + 0x14], 0
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x50], esi
je 0x41d281
mov edx, esi
xor esi, esi
dec esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
movsx eax, byte [edx + 0x13]
mov ecx, edi
test eax, eax
jns 0x41d059
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
test eax, eax
js 0x41d637
je 0x41d06b
test ecx, ecx
je 0x41d630
push eax
push ecx
lea eax, [ebp - 0x1c]
push eax
call fcn.00462d60
add esp, 0xc
lea edi, [ebp - 0x28]
mov dword [edi], esi
mov dword [edi + 4], esi
mov dword [edi + 8], esi
mov esi, str._USERNAME_
push esi
call fcn.00501ee0
add esp, 4
push eax
push esi
push edi
call fcn.00462d60
add esp, 0xc
mov dword [ebp - 0x5c], edi
movsx edi, byte [edi + 0xb]
test edi, edi
jns 0x41d0b1
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x5c], eax
movsx eax, byte [ebp - 0x11]
test eax, eax
mov ecx, dword [ebp - 0x1c]
lea esi, [ebp - 0x1c]
mov edx, esi
cmovs edx, ecx
test edi, edi
je 0x41d141
mov dword [ebp - 0x64], edx
mov edx, eax
test al, al
mov ebx, dword [ebp - 0x18]
mov esi, eax
mov dword [ebp - 0x68], ebx
cmovs esi, ebx
cmp esi, edi
jge 0x41d1ad
mov edi, dword [ebp - 0x48]
lea esi, [ebp - 0x1c]
mov ebx, dword [ebp + 8]
test dl, dl
cmovs eax, dword [ebp - 0x68]
cmovs esi, ecx
test eax, eax
js 0x41d637
je 0x41d104
test esi, esi
je 0x41d630
mov ecx, ebx
push eax
push esi
call fcn.004b72d0
mov eax, dword [ebp - 0x50]
cmp byte [ebp - 0x1d], 0
jns 0x41d124
push dword [ebp - 0x28]
call fcn.004e6c3e
mov eax, dword [ebp - 0x50]
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x41cfe9
push dword [ebp - 0x1c]
call fcn.004e6c3e
mov eax, dword [ebp - 0x50]
add esp, 4
jmp 0x41cfe9
mov dword [ebp - 0x4c], 0
xorps xmm0, xmm0
lea edi, [ebp - 0x34]
movsd qword [edi], xmm0
mov dword [edi + 8], 0
push edi
call fcn.0041d800
add esp, 4
mov ebx, eax
test al, al
jne 0x41d54d
mov ecx, dword [ebp + 8]
call fcn.004b7270
cmp byte [ebp - 0x29], 0
mov edi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
jns 0x41d18e
push dword [ebp - 0x34]
call fcn.004e6c3e
mov eax, dword [ebp - 0x50]
add esp, 4
test bl, bl
mov ebx, dword [ebp + 8]
je 0x41d110
mov dl, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x68], eax
movzx eax, dl
jmp 0x41d0e9
mov byte [ebp - 0x41], dl
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x64]
lea ecx, [edx + esi*2]
mov eax, dword [ebp - 0x5c]
movzx eax, word [eax]
mov word [ebp - 0x5e], ax
lea eax, [edx + esi*2 - 2]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x4c], edx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x6c], ecx
mov eax, esi
sub eax, edi
inc eax
je 0x41d1f5
inc esi
xor eax, eax
movzx edx, word [ebp - 0x5e]
mov ecx, dword [ebp - 0x4c]
cmp word [ecx + eax], dx
je 0x41d209
add eax, 2
dec esi
cmp edi, esi
jne 0x41d1e4
mov edi, dword [ebp - 0x48]
lea esi, [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov dl, byte [ebp - 0x41]
jmp 0x41d0e9
mov ecx, dword [ebp - 0x4c]
add ecx, eax
je 0x41d1f5
xor esi, esi
mov edx, ecx
movzx ebx, word [ecx + esi*2]
mov ecx, dword [ebp - 0x5c]
cmp bx, word [ecx + esi*2]
jne 0x41d25c
inc esi
cmp edi, esi
mov ecx, edx
jne 0x41d212
cmp ecx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x48]
lea esi, [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov ebx, ecx
mov ecx, dword [ebp - 0x54]
mov dl, byte [ebp - 0x41]
je 0x41d0e6
sub ebx, dword [ebp - 0x64]
mov dword [ebp - 0x4c], ebx
cmp ebx, 0xfffffffe
mov ebx, dword [ebp + 8]
je 0x41d0e9
sar dword [ebp - 0x4c], 1
jmp 0x41d148
mov esi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x4c]
sub esi, ecx
lea edx, [ecx + eax]
add edx, 2
sub esi, eax
sar esi, 1
mov dword [ebp - 0x4c], edx
cmp esi, edi
mov ebx, dword [ebp + 8]
jge 0x41d1d6
jmp 0x41d1f5
xor edi, edi
dec edi
lea ecx, [ebp - 0x28]
mov dword [ecx], edi
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
call fcn.004b7270
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
xor esi, esi
push esi
push esi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x41d3a9
mov ebx, eax
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
cmp eax, 0x7ffffff8
jae 0x41d646
cmp ebx, 5
lea esi, [ebp - 0x1c]
jae 0x41d579
lea edi, [ebp - 0x1c]
mov byte [edi + 0xb], bl
mov eax, ebx
add eax, ebx
push eax
push 0
push edi
call fcn.004eac00
add esp, 0xc
mov word [edi + ebx*2], 0
cmp byte [ebp - 0x11], 0
jns 0x41d2fb
mov esi, dword [ebp - 0x1c]
push ebx
push esi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x41d36b
movsx ebx, byte [ebp - 0x11]
test ebx, ebx
mov edx, dword [ebp - 0x18]
mov ecx, ebx
cmovs ecx, edx
cmp eax, ecx
jae 0x41d36b
mov esi, eax
test bl, bl
jns 0x41d35b
sub esi, edx
ja 0x41d5b9
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 0x41d37a
sub esi, ebx
ja 0x41d5aa
lea ecx, [ebp - 0x1c]
mov byte [ecx + 0xb], al
jmp 0x41d332
xorps xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
cmp byte [ebp - 0x11], 0
mov ebx, dword [ebp + 8]
jns 0x41d38e
push dword [ebp - 0x1c]
call fcn.004e6c3e
add esp, 4
mov cl, byte [ebp - 0x29]
mov esi, dword [ebp - 0x30]
test cl, cl
movzx eax, cl
cmovs eax, esi
test eax, eax
je 0x41d3bc
test cl, cl
js 0x41d3dd
lea edx, [ebp - 0x34]
jmp 0x41d3e0
xorps xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
xor ecx, ecx
jmp 0x41d394
lea eax, [ebp - 0x28]
push eax
push 0x6f
call fcn.0045e9d0
add esp, 8
test al, al
jne 0x41d40c
mov ecx, ebx
call fcn.004b7270
mov edi, dword [ebp - 0x48]
jmp 0x41cfcd
mov edx, dword [ebp - 0x34]
test eax, eax
js 0x41d637
test edx, edx
je 0x41d630
lea edi, [ebp - 0x1c]
mov ecx, edi
push eax
push edx
call fcn.004b72d0
lea ecx, [ebp - 0x28]
push edi
call fcn.0046a1e0
mov ecx, edi
call fcn.004b73c0
push 0x30
call fcn.004e6c0e
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 0x80000030
mov dword [ebp - 0x18], 0x2c
cmp eax, str.CompanyName_ProductName_InternalStream
ja 0x41d43d
lea ecx, [eax + 0x2c]
cmp ecx, str.CompanyName_ProductName_InternalStream
ja 0x41d64e
movups xmm0, xmmword [0x561882]
movups xmmword [eax + 0x1c], xmm0
movups xmm0, xmmword [0x561876]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.CompanyName_ProductName_InternalStream]
movups xmmword [eax], xmm0
mov byte [eax + 0x2c], 0
call fcn.0041df50
test eax, eax
je 0x41d629
mov edi, eax
push eax
call fcn.00501ee0
add esp, 4
lea esi, [ebp - 0x1c]
push eax
push edi
push 0xd
push 0x561893
push 0
push esi
call fcn.004aee50
add esp, 0x18
call fcn.0041df80
test eax, eax
je 0x41d629
mov edi, eax
push eax
call fcn.00501ee0
add esp, 4
push eax
push edi
push 0xd
push 0x5618a1
push 0
push esi
call fcn.004aee50
add esp, 0x18
lea edi, [ebp - 0x40]
mov eax, dword [ebp - 0x50]
push dword [eax + 4]
push edi
call fcn.0041e690
add esp, 8
movsx eax, byte [edi + 0xb]
test eax, eax
jns 0x41d4dc
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
test eax, eax
js 0x41d637
je 0x41d4ee
test edi, edi
je 0x41d630
push eax
push edi
push 0x10
push str.InternalStream
push 0
push esi
call fcn.004aee50
add esp, 0x18
cmp byte [ebp - 0x35], 0
jns 0x41d513
push dword [ebp - 0x40]
call fcn.004e6c3e
add esp, 4
movsx eax, byte [ebp - 0x11]
test eax, eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov edi, esi
cmovs edi, ecx
mov ebx, eax
cmovs ebx, edx
test ebx, ebx
je 0x41d531
xor eax, eax
jmp 0x41d545
mov ebx, eax
jmp 0x41cf91
mov byte [edi + eax], 0x5c
inc eax
cmp ebx, eax
je 0x41cf85
cmp byte [edi + eax], 0x2f
jne 0x41d53c
jmp 0x41d538
movsx eax, byte [ebp - 0x1d]
test eax, eax
jns 0x41d558
mov eax, dword [ebp - 0x24]
movsx edx, byte [ebp - 0x29]
test edx, edx
cmovs edx, dword [ebp - 0x30]
cmovs edi, dword [ebp - 0x34]
lea ecx, [ebp - 0x1c]
push edx
push edi
push eax
push dword [ebp - 0x4c]
call fcn.0052f850
jmp 0x41d174
mov esi, ebx
or esi, 3
inc esi
js 0x41d655
lea eax, [esi + esi]
push eax
call fcn.004e6c0e
add esp, 4
mov edi, eax
mov dword [ebp - 0x1c], eax
or esi, 0x80000000
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ebx
lea esi, [ebp - 0x1c]
jmp 0x41d2dc
je 0x41d33a
mov ecx, ebx
mov eax, 4
jmp 0x41d5cf
je 0x41d33a
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 0x41d5f8
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.00496fd0
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
test cl, cl
js 0x41d601
lea edi, [ebp - 0x1c]
jmp 0x41d604
mov edi, dword [ebp - 0x1c]
lea eax, [edi + ebx*2]
lea ecx, [esi + esi]
push ecx
push 0
push eax
call fcn.004eac00
add esp, 0xc
add ebx, esi
cmp byte [ebp - 0x11], 0
jns 0x41d65a
mov dword [ebp - 0x18], ebx
lea eax, [edi + ebx*2]
jmp 0x41d335
push str....._third_partylibc_srcinclude_string_view:267:_assertion___s___nullptr_failed:_null_pointer_passed_to_non_null_argument_of_char_traits_..._::length_n
jmp 0x41d63c
push str....._third_partylibc_srcinclude_string_view:316:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
jmp 0x41d63c
push str....._third_partylibc_srcinclude_string_view:314:_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 0x55eb93
call fcn.00516c70
lea ecx, [ebp - 0x1c]
call fcn.00516100
push str....._third_partylibc_srcinclude__stringchar_traits.h:146:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
jmp 0x41d63c
call fcn.00516120
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x41d621