Function at 0x41f500
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 [0x5c1040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx]
movsx eax, byte [ecx + 0xb]
test eax, eax
jns 0x41f525
mov eax, dword [ecx + 4]
test eax, eax
je 0x41f578
mov ecx, dword [edi + 4]
lea esi, [ebp - 0x1c]
push str.single_profile
push esi
call fcn.00420610
cmp byte [esi + 1], 0
je 0x41f617
cmp byte [ebp - 0x1c], 0
je 0x41f617
mov ecx, dword [edi]
lea edi, [ebp - 0x1c]
push 7
push str.profile
push edi
call fcn.004bd830
mov ecx, edi
push 4
push 0x59e326
push ebx
call fcn.004bd830
mov ecx, edi
call fcn.004bcaf0
jmp 0x41f57f
mov ecx, ebx
call fcn.004bc9a0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f1eb0
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 0x41fc47
mov ebx, dword [ebp + 8]
je 0x41f5c1
test esi, esi
je 0x41fc40
lea ecx, [ebp - 0x28]
push eax
push esi
push ebx
call fcn.00453090
cmp byte [ebp - 0x11], 0
jns 0x41f5dd
push dword [ebp - 0x1c]
call fcn.004f193e
add esp, 4
cmp byte [ebp - 0x29], 0
jns 0x41f5ee
push dword [ebp - 0x34]
call fcn.004f193e
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.004bcaf0
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x14], 0
je 0x41f60f
cmp byte [eax + 0x13], 0
jns 0x41f60f
push dword [edi]
call fcn.004f193e
add esp, 4
mov esp, dword [ebp - 0x74]
jmp 0x41f57f
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.00420670
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 0x41f891
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 0x41f669
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 8]
test eax, eax
js 0x41fc47
je 0x41f67b
test ecx, ecx
je 0x41fc40
push eax
push ecx
lea eax, [ebp - 0x1c]
push eax
call fcn.0044a440
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.0050d550
add esp, 4
push eax
push esi
push edi
call fcn.0044a440
add esp, 0xc
mov dword [ebp - 0x5c], edi
movsx edi, byte [edi + 0xb]
test edi, edi
jns 0x41f6c1
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 0x41f751
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 0x41f7bd
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 0x41fc47
je 0x41f714
test esi, esi
je 0x41fc40
mov ecx, ebx
push eax
push esi
call fcn.004bca00
mov eax, dword [ebp - 0x50]
cmp byte [ebp - 0x1d], 0
jns 0x41f734
push dword [ebp - 0x28]
call fcn.004f193e
mov eax, dword [ebp - 0x50]
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x41f5f9
push dword [ebp - 0x1c]
call fcn.004f193e
mov eax, dword [ebp - 0x50]
add esp, 4
jmp 0x41f5f9
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.0041fc80
add esp, 4
mov ebx, eax
test al, al
jne 0x41fb5d
mov ecx, dword [ebp + 8]
call fcn.004bc9a0
cmp byte [ebp - 0x29], 0
mov edi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
jns 0x41f79e
push dword [ebp - 0x34]
call fcn.004f193e
mov eax, dword [ebp - 0x50]
add esp, 4
test bl, bl
mov ebx, dword [ebp + 8]
je 0x41f720
mov dl, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x68], eax
movzx eax, dl
jmp 0x41f6f9
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 0x41f805
inc esi
xor eax, eax
movzx edx, word [ebp - 0x5e]
mov ecx, dword [ebp - 0x4c]
cmp word [ecx + eax], dx
je 0x41f819
add eax, 2
dec esi
cmp edi, esi
jne 0x41f7f4
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 0x41f6f9
mov ecx, dword [ebp - 0x4c]
add ecx, eax
je 0x41f805
xor esi, esi
mov edx, ecx
movzx ebx, word [ecx + esi*2]
mov ecx, dword [ebp - 0x5c]
cmp bx, word [ecx + esi*2]
jne 0x41f86c
inc esi
cmp edi, esi
mov ecx, edx
jne 0x41f822
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 0x41f6f6
sub ebx, dword [ebp - 0x64]
mov dword [ebp - 0x4c], ebx
cmp ebx, 0xfffffffe
mov ebx, dword [ebp + 8]
je 0x41f6f9
sar dword [ebp - 0x4c], 1
jmp 0x41f758
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 0x41f7e6
jmp 0x41f805
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.004bc9a0
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 0x41f9b9
mov ebx, eax
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
cmp eax, 0x7ffffff8
jae 0x41fc56
cmp ebx, 5
lea esi, [ebp - 0x1c]
jae 0x41fb89
lea edi, [ebp - 0x1c]
mov byte [edi + 0xb], bl
mov eax, ebx
add eax, ebx
push eax
push 0
push edi
call fcn.004f5920
add esp, 0xc
mov word [edi + ebx*2], 0
cmp byte [ebp - 0x11], 0
jns 0x41f90b
mov esi, dword [ebp - 0x1c]
push ebx
push esi
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x41f97b
movsx ebx, byte [ebp - 0x11]
test ebx, ebx
mov edx, dword [ebp - 0x18]
mov ecx, ebx
cmovs ecx, edx
cmp eax, ecx
jae 0x41f97b
mov esi, eax
test bl, bl
jns 0x41f96b
sub esi, edx
ja 0x41fbc9
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 0x41f98a
sub esi, ebx
ja 0x41fbba
lea ecx, [ebp - 0x1c]
mov byte [ecx + 0xb], al
jmp 0x41f942
xorps xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
cmp byte [ebp - 0x11], 0
mov ebx, dword [ebp + 8]
jns 0x41f99e
push dword [ebp - 0x1c]
call fcn.004f193e
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 0x41f9cc
test cl, cl
js 0x41f9ed
lea edx, [ebp - 0x34]
jmp 0x41f9f0
xorps xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
xor ecx, ecx
jmp 0x41f9a4
lea eax, [ebp - 0x28]
push eax
push 0x6f
call fcn.004452f0
add esp, 8
test al, al
jne 0x41fa1c
mov ecx, ebx
call fcn.004bc9a0
mov edi, dword [ebp - 0x48]
jmp 0x41f5dd
mov edx, dword [ebp - 0x34]
test eax, eax
js 0x41fc47
test edx, edx
je 0x41fc40
lea edi, [ebp - 0x1c]
mov ecx, edi
push eax
push edx
call fcn.004bca00
lea ecx, [ebp - 0x28]
push edi
call fcn.00451df0
mov ecx, edi
call fcn.004bcaf0
push 0x30
call fcn.004f190e
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 0x41fa4d
lea ecx, [eax + 0x2c]
cmp ecx, str.CompanyName_ProductName_InternalStream
ja 0x41fc5e
movups xmm0, xmmword [0x59e35c]
movups xmmword [eax + 0x1c], xmm0
movups xmm0, xmmword [0x59e350]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.CompanyName_ProductName_InternalStream]
movups xmmword [eax], xmm0
mov byte [eax + 0x2c], 0
call fcn.004203e0
test eax, eax
je 0x41fc39
mov edi, eax
push eax
call fcn.0050d550
add esp, 4
lea esi, [ebp - 0x1c]
push eax
push edi
push 0xd
push 0x59e36d
push 0
push esi
call fcn.004b4bd0
add esp, 0x18
call fcn.00420410
test eax, eax
je 0x41fc39
mov edi, eax
push eax
call fcn.0050d550
add esp, 4
push eax
push edi
push 0xd
push 0x59e37b
push 0
push esi
call fcn.004b4bd0
add esp, 0x18
lea edi, [ebp - 0x40]
mov eax, dword [ebp - 0x50]
push dword [eax + 4]
push edi
call fcn.00420920
add esp, 8
movsx eax, byte [edi + 0xb]
test eax, eax
jns 0x41faec
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
test eax, eax
js 0x41fc47
je 0x41fafe
test edi, edi
je 0x41fc40
push eax
push edi
push 0x10
push str.InternalStream
push 0
push esi
call fcn.004b4bd0
add esp, 0x18
cmp byte [ebp - 0x35], 0
jns 0x41fb23
push dword [ebp - 0x40]
call fcn.004f193e
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 0x41fb41
xor eax, eax
jmp 0x41fb55
mov ebx, eax
jmp 0x41f5a1
mov byte [edi + eax], 0x5c
inc eax
cmp ebx, eax
je 0x41f595
cmp byte [edi + eax], 0x2f
jne 0x41fb4c
jmp 0x41fb48
movsx eax, byte [ebp - 0x1d]
test eax, eax
jns 0x41fb68
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.00538160
jmp 0x41f784
mov esi, ebx
or esi, 3
inc esi
js 0x41fc65
lea eax, [esi + esi]
push eax
call fcn.004f190e
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 0x41f8ec
je 0x41f94a
mov ecx, ebx
mov eax, 4
jmp 0x41fbdf
je 0x41f94a
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 0x41fc08
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.0049c0c0
lea eax, [ebp - 0x1c]
mov dword [eax + 4], ebx
mov cl, byte [eax + 0xb]
test cl, cl
js 0x41fc11
lea edi, [ebp - 0x1c]
jmp 0x41fc14
mov edi, dword [ebp - 0x1c]
lea eax, [edi + ebx*2]
lea ecx, [esi + esi]
push ecx
push 0
push eax
call fcn.004f5920
add esp, 0xc
add ebx, esi
cmp byte [ebp - 0x11], 0
jns 0x41fc6a
mov dword [ebp - 0x18], ebx
lea eax, [edi + ebx*2]
jmp 0x41f945
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 0x41fc4c
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 0x41fc4c
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 0x59a9a3
call fcn.00523170
lea ecx, [ebp - 0x1c]
call fcn.005221b0
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 0x41fc4c
call fcn.005221d0
mov eax, ebx
and al, 0x7f
mov byte [ebp - 0x11], al
jmp 0x41fc31