Function at 0x45b110
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov eax, 0x50e4
call fcn.00530230
mov eax, dword [0x58cb30]
xor eax, esp
mov dword [esp + 0x50e0], eax
cmp byte [0x5943f4], 0
push ebx
push edi
mov edi, dword [esp + 0x50f0]
mov ebx, ecx
jne 0x45b16c
cmp word [edi], 0x2e
jne 0x45b16c
movzx eax, word [edi + 2]
push eax
call fcn.004a2f40
test al, al
je 0x45b15b
add edi, 4
cmp word [edi], 0x2e
je 0x45b142
jmp 0x45b16c
cmp word [edi], 0x2e
jne 0x45b16c
cmp word [edi + 2], 0
je 0x45b7b7
push 0x800
lea eax, [esp + 0x3024]
push eax
push edi
call fcn.004a2840
mov ecx, 0x558698
mov eax, edi
push ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b1ad
test dx, dx
je 0x45b1a9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b1ad
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b187
xor ebp, ebp
jmp 0x45b1b2
sbb ebp, ebp
or ebp, 1
push esi
push edi
mov dword [esp + 0x24], ebp
call fcn.004a3740
mov esi, eax
movzx ecx, word [esi]
push ecx
call fcn.004a2f40
test al, al
je 0x45b214
test ebp, ebp
je 0x45b214
lea ecx, [esp + 0x3028]
mov eax, edi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b206
test dx, dx
je 0x45b202
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b206
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b1e0
xor eax, eax
jmp 0x45b20b
sbb eax, eax
or eax, 1
test eax, eax
je 0x45b214
xor eax, eax
mov word [esi], ax
movzx eax, word [edi]
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov esi, edi
test ax, ax
je 0x45b266
mov ecx, eax
cmp cx, 0x2e
jne 0x45b262
cmp word [esi + 2], cx
jne 0x45b262
movzx eax, word [esi + 4]
push eax
call fcn.004a2f40
test al, al
jne 0x45b247
cmp word [esi + 4], 0
jne 0x45b262
xor eax, eax
cmp word [esi + 4], ax
setne al
inc ebp
lea esi, [esi + eax*2]
movzx eax, word [esi + 4]
add esi, 4
mov ecx, eax
test ax, ax
jne 0x45b226
mov dword [esp + 0x18], ebp
cmp byte [0x5943f4], 0
je 0x45b294
cmp byte [esp + 0x50fc], 0
je 0x45b294
push edi
call fcn.004a2e20
test al, al
jne 0x45b28d
push edi
call fcn.004a2df0
test al, al
je 0x45b294
mov ecx, ebx
call fcn.0045b820
cmp byte [ebx + 0x103a], 0
je 0x45b2c9
mov ecx, dword [ebx + 0x213c]
mov eax, ebp
cmp ebp, ecx
jl 0x45b2ab
mov eax, ecx
cmp dword [esp + 0x20], 0
jne 0x45b2b4
mov eax, ecx
test eax, eax
je 0x45b2c9
push 0
push eax
mov ecx, ebx
call fcn.0045caa0
push 0
jmp 0x45b7ae
mov byte [ebx + 0x103a], 0
cmp byte [0x5943f4], 0
je 0x45b3c2
push 0
push 0x5599d0
push str.FileList
call fcn.004cffa0
test eax, eax
je 0x45b2fa
test ebp, ebp
je 0x45b7b5
push 0x800
lea eax, [esp + 0x202c]
mov ecx, 0x5c3bd0
push eax
call fcn.0040a1e0
mov ecx, 0x558698
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b33e
test dx, dx
je 0x45b33a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b33e
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b318
xor eax, eax
jmp 0x45b343
sbb eax, eax
or eax, 1
test eax, eax
je 0x45b374
push edi
mov ecx, 0x5c3bd0
call fcn.0040bf10
test al, al
je 0x45b374
xor eax, eax
lea ecx, [esp + 0x2028]
test ebp, ebp
setle al
dec eax
and eax, ecx
mov ecx, ebx
push eax
call fcn.0045fd10
jmp 0x45b7b5
push 0x800
lea eax, [esp + 0x2c]
mov ecx, 0x5c3bd0
push eax
call fcn.004099c0
push 0x800
lea eax, [esp + 0x2c]
push eax
lea esi, [ebx + 0x103c]
push esi
call fcn.004bdae0
push esi
call fcn.004a37e0
mov ecx, ebx
call fcn.0045b820
test al, al
je 0x45b7b5
lea eax, [esp + 0x28]
push eax
call fcn.004a3770
jmp 0x45b7ad
push 0x800
lea ebp, [ebx + 0x103c]
push ebp
lea eax, [esp + 0x2030]
push eax
call fcn.004bdae0
xor eax, eax
push ebp
mov word [esp + 0x2c], ax
call fcn.004a3740
movzx ecx, word [ebp]
mov esi, eax
push ecx
call fcn.004a2f40
test al, al
je 0x45b40e
movzx ecx, word [esi]
push ecx
call fcn.004a2f40
test al, al
je 0x45b40e
cmp esi, ebp
jbe 0x45b40e
xor eax, eax
mov word [esi], ax
mov esi, dword [esp + 0x18]
test esi, esi
jle 0x45b5eb
lea ebx, [ebx]
cmp byte [ebx + 0x103a], 0
jne 0x45b5eb
push ebp
call fcn.004a2df0
test al, al
je 0x45b59a
movzx eax, word [ebx + 0x1040]
push eax
call fcn.004a2f40
test al, al
je 0x45b59a
cmp word [ebx + 0x1042], 0
jne 0x45b59a
cmp dword [ebx + 0x213c], 0
jle 0x45b473
mov byte [ebx + 0x103a], 1
jmp 0x45b5b6
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push 0
push 0
push 0x11
push dword [ebx + 0x28]
call dword [sym.imp.SHELL32.dll_SHGetFolderLocation]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], 0
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
jne 0x45b57b
cmp dword [esp + 0x10], eax
je 0x45b57b
push 0x800
lea eax, [esp + 0x102c]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push dword [0x5c6838]
call fcn.00417bc0
test al, al
je 0x45b50f
cmp byte [0x5cd0a9], 0
jne 0x45b567
push 1
lea eax, [esp + 0x102c]
mov byte [0x5cd0a9], 1
push eax
mov ecx, 0x5c6810
call fcn.0045b110
mov byte [0x5cd0a9], 0
jmp 0x45b567
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], 0
mov eax, dword [ecx]
mov esi, dword [eax + 0x14]
lea eax, [esp + 0x24]
push eax
push 0x56eca0
push 0
push dword [esp + 0x1c]
push ecx
mov ecx, esi
call dword [0x55770c]
call esi
test eax, eax
jne 0x45b567
mov eax, dword [esp + 0x24]
push dword [esp + 0x10]
mov dword [0x5c88cc], eax
call fcn.00416fb0
mov dword [0x5c884c], eax
mov byte [0x5c784a], 1
mov dword [0x5c894c], 1
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x55770c]
call esi
mov eax, dword [0x600948]
push dword [esp + 0x1c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x55770c]
call esi
mov esi, dword [esp + 0x18]
jmp 0x45b5b6
push 0x800
push ebp
call fcn.004a3770
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004bdae0
push ebp
call fcn.004a37e0
movzx eax, word [edi]
dec esi
mov dword [esp + 0x18], esi
mov ecx, eax
cmp eax, 0x2e
jne 0x45b5d3
movzx eax, word [edi + 2]
add edi, 2
cmp eax, 0x2e
je 0x45b5c5
mov ecx, eax
movzx eax, cx
push eax
call fcn.004a2f40
test al, al
je 0x45b5e3
add edi, 2
test esi, esi
jg 0x45b420
cmp dword [esp + 0x20], 0
jne 0x45b61a
push 0x800
lea eax, [esp + 0x102c]
push eax
push ebp
call fcn.004a2840
push 0x800
lea eax, [esp + 0x102c]
push eax
push ebp
call fcn.004bdae0
jmp 0x45b68b
push edi
call fcn.004a2e20
test al, al
je 0x45b632
push 0x800
push edi
push ebp
call fcn.004bdae0
jmp 0x45b68b
push edi
call fcn.004a2df0
test al, al
je 0x45b66e
movzx eax, word [ebp]
push eax
call fcn.004c1b20
movzx ecx, word [edi]
mov esi, eax
push ecx
call fcn.004c1b20
cmp eax, esi
je 0x45b661
push 0x800
push ebp
push edi
call fcn.004fe650
push 0x800
push ebp
call fcn.004a1860
jmp 0x45b68b
cmp word [edi], 0
je 0x45b68b
push 0x800
push ebp
call fcn.004a1860
push 0x800
push edi
push ebp
call fcn.004bda80
push ebp
call fcn.004a2800
mov esi, eax
cmp esi, 0xffffffff
je 0x45b6c2
call fcn.004fd290
mov edx, 1
mov ecx, esi
shl edx, cl
test edx, eax
jne 0x45b6c2
push 0x800
lea eax, [esp + 0x202c]
push eax
push ebp
call fcn.004bdae0
jmp 0x45b7b5
cmp byte [ebx + 0x103a], 0
jne 0x45b79e
push ebp
call fcn.00491350
test al, al
jne 0x45b79e
push 0x800
lea eax, [esp + 0x102c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x45b716
cmp eax, 0x800
jae 0x45b716
lea eax, [esp + 0x1028]
push eax
call fcn.00491350
test al, al
je 0x45b716
lea eax, [esp + 0x1028]
jmp 0x45b792
cmp word [ebp], 0x5c
jne 0x45b750
cmp word [ebx + 0x103e], 0x5c
jne 0x45b750
lea eax, [ebx + 0x1040]
push 0x55d14c
push eax
call fcn.0053d1de
add esp, 8
test eax, eax
jne 0x45b750
cmp dword [ebx + 0x213c], eax
jle 0x45b750
mov byte [ebx + 0x103a], 1
jmp 0x45b79e
push ebp
push 0x6c
call fcn.004b7300
push eax
lea eax, [esp + 0x4030]
push 0x864
push eax
call fcn.00404ce0
add esp, 0x10
push 0x66
call fcn.004b7300
push 0x10
push eax
lea eax, [esp + 0x4030]
push eax
push dword [0x5933dc]
call fcn.004feae0
lea eax, [esp + 0x2028]
push 0x800
push eax
push ebp
call fcn.004bdae0
movzx eax, word [esp + 0x28]
lea ecx, [esp + 0x28]
neg eax
sbb eax, eax
and eax, ecx
push eax
mov ecx, ebx
call fcn.00460c30
pop esi
pop ebp
mov ecx, dword [esp + 0x50e8]
pop edi
pop ebx
xor ecx, esp
call fcn.00530218
add esp, 0x50e4
ret 8