Function at 0x40b7f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45d2eb
mov eax, dword fs:[0]
push eax
sub esp, 0x68c
mov eax, dword [0x48e200]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x40189c
mov dword [ebp - 0x644], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40ba48
mov eax, dword [0x401898]
mov edx, dword [0x401894]
mov ecx, dword [0x401890]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], ecx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b860
sub eax, edx
lea ecx, [ebp - 0x1c]
lea eax, [ebp + eax - 0x1c]
mov edx, ecx
cmp edx, eax
je 0x40b888
dec eax
cmp ecx, eax
je 0x40b888
mov dl, byte [ecx]
mov bl, byte [eax]
mov byte [ecx], bl
inc ecx
mov byte [eax], dl
cmp ecx, eax
jne 0x40b876
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea eax, [ebp - 0x1c]
push eax
push 0x401884
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call esi
push 0x401870
push 0x401884
mov edi, eax
call ebx
push eax
call esi
push 0x401860
push 0x401648
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call esi
mov esi, eax
test esi, esi
je 0x43da48
test edi, edi
je 0x43da48
test ebx, ebx
je 0x43da48
push 0x40
lea ecx, [ebp - 0x694]
push 0
push ecx
call fcn.00450610
xor eax, eax
xor edx, edx
push 0x206
mov word [ebp - 0x668], dx
push eax
lea edx, [ebp - 0x22a]
xor ecx, ecx
push edx
mov dword [ebp - 0x698], 0x44
mov dword [ebp - 0x654], eax
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x648], eax
mov word [ebp - 0x22c], cx
call fcn.00450610
add esp, 0x18
push 0
push 0x25
lea eax, [ebp - 0x22c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x22c]
push eax
mov dword [ebp - 0x24], 0x65006e
mov dword [ebp - 0x20], 0x74
call edi
push 0
lea ecx, [ebp - 0x22c]
push ecx
call ebx
xor edx, edx
push 0x40e
push edx
lea eax, [ebp - 0x63a]
push eax
mov word [ebp - 0x63c], dx
call fcn.00450610
add esp, 0xc
push 0x401840
lea ecx, [ebp - 0x640]
call fcn.00407470
push 0x401834
push 0x401828
lea ecx, [ebp - 0x640]
mov dword [ebp - 4], 0
call fcn.0040b4d0
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x640]
push ecx
lea edx, [ebp - 0x22c]
push edx
push eax
lea ecx, [ebp - 0x63c]
push 0x208
push ecx
call fcn.0045156f
add esp, 0x14
lea edx, [ebp - 0x654]
push edx
lea eax, [ebp - 0x698]
push eax
push 0
push 0
push 0x8000000
push 0
push 0
push 0
lea ecx, [ebp - 0x63c]
push ecx
lea edx, [ebp - 0x22c]
push edx
call esi
mov eax, dword [ebp - 0x640]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43da48
add byte [ebx + 0x50118b08], cl
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43da48
rol byte [edx], cl
popfd
js 0x40baa0
xor ebp, dword [esi]
wait
lodsb al, byte [esi]
pop ds
mov ebp, 0xfda76e2e
sub eax, 0xa544c775
push 0x10
xor edi, eax
mov ebx, dword [eax - 0x6f]
cmp ch, byte [edi - 0x7b497c50]
xchg esi, eax
fcmovne st(0), st(7)
sbb al, 0x6c
lds ecx, [esi]
test al, 0x29
stosd dword es:[edi], eax
inc esi
or dword [edi + 0x58], 0x25
jb 0x40ba97
pop eax
and eax, 0xa5d1d72
sub al, byte [0x601216b3]
pop ebp
or ch, byte [edx]
add eax, 0x601216b3
mov dword [0xe3614b86], eax
inc eax
dec ebx
popal
jecxz 0x40bac8
out dx, al
inc edi
add ch, byte [ebx - 0x3bfa286c]
sbb al, 0xa
push ebx
outsd dx, dword [esi]
test al, 3
into
or ch, cl
inc ebx
inc ebx
dec eax
popfd
and byte [edi - 0x4a2c8cab], al
jl 0x40ba38
push ebp
jae 0x40ba76
mov ch, 0x7c
xchg edx, eax
add cl, dl
xchg ebp, eax
jle 0x40ba84
mov dh, 0xc4
pop ebp
cmp ch, ah
nop
sub bh, byte [ebp + 0x4f]
out 0xab, eax
test al, 4
bound esp, qword [ebx + 0x4acb08be]
imul esp, dword [edx - 0x23], 0xfffffffa
ljmp 0x37d
add esp, dword [ecx - 0x1b4c6ad7]
movsb byte es:[edi], byte [esi]
cwde
invalid
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00450601
mov esp, ebp
pop ebp
ret