Function at 0x409380
Capabilities:
Get common file path
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x228
call fcn.0043d930
test al, al
je 0x4096d5
lea eax, [esp + 0x20]
push 0
push 0x10
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.00436800
test al, al
je 0x4096d0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0xbf6bf376
mov esi, 0x921106b
mov ecx, ebx
shrd esi, edx, cl
shr edx, cl
mov dword [esp + 0x18], eax
test bl, 0x20
je 0x4093e1
mov esi, edx
xor edx, edx
mov eax, esi
xor eax, 0x921106b
mov dword [esp + 4], eax
mov eax, edx
xor eax, 0xbf6bf376
mov dword [esp + 8], eax
mov ecx, esi
mov edi, esi
and edi, 0x5180fe0f
mov ebx, edx
mov ebp, edx
mov dword [esp], edx
and ebx, 0x4262d878
xor edi, 0xfeffeff4
xor ebx, 0xfd9d2f8f
add edi, 0x5180fe0f
adc ebx, 0x4262d878
add edi, 1
adc ebx, 0
and esi, 0xae7f01f0
and ebp, 0xbd9d2787
mov dword [esp + 0xc], ebp
mov edx, esi
xor edx, 0x8210060
xor ebp, 0xbd092306
imul ebx, edx
mov eax, edi
mul edx
mov dword [esp + 0x10], eax
imul ebp, edi
add ebp, edx
add ebp, ebx
mov dword [esp + 0x14], ebp
xor ecx, 0xa75e119b
and ecx, dword [esp + 4]
mov edx, ecx
mov ebx, dword [esp]
xor ebx, 0x2f6d4f1
and ebx, dword [esp + 8]
mov dword [esp], ebx
mov edi, esi
xor edi, 0x59a1fe6f
mov ecx, dword [esp + 0xc]
xor ecx, 0xff6bfb7e
mov ebp, edx
mov dword [esp + 4], edx
not ebp
not ebx
and ebp, edi
xor esi, 0xa65e0190
and esi, edx
mov eax, esi
mul ebp
mov dword [esp + 8], eax
and ebx, ecx
imul esi, ebx
add esi, edx
mov ebx, dword [esp + 0xc]
xor ebx, 0x940481
and ebx, dword [esp]
imul ebx, ebp
add ebx, esi
mov esi, edi
mov eax, dword [esp + 4]
and esi, eax
or edi, eax
mov edx, ecx
mov eax, dword [esp]
and edx, eax
or ecx, eax
mov eax, edi
imul edi, edx
mul esi
add edi, edx
imul ecx, esi
add ecx, edi
add eax, dword [esp + 8]
adc ecx, ebx
add eax, dword [esp + 0x10]
adc ecx, dword [esp + 0x14]
mov esi, ecx
shld esi, eax, 0xb
mov dword [esp], esi
mov ebp, ecx
shr ebp, 0x15
mov dword [esp + 0xc], ebp
and ebp, ecx
and esi, eax
mov edx, esi
and edx, 2
mov edi, esi
or edi, 0xfffffffd
add edi, 1
mov ebx, 0
adc ebx, 0xffffffff
mov dword [esp + 0x14], ebx
xor dword [esp + 0xc], ecx
xor dword [esp], eax
mov eax, esi
or eax, 2
mov ecx, edi
imul ecx, ebp
mov dword [esp + 8], ebp
imul ebp, edx
mul edx
mov dword [esp + 4], eax
mov dword [esp + 0x10], edx
mov ebx, esi
and ebx, 0xfffffffd
mov eax, edi
mov edi, dword [esp + 0xc]
mul ebx
add dword [esp + 0x10], ebp
mov ebp, dword [esp]
add edx, ecx
imul ebx, dword [esp + 0x14]
add ebx, edx
mov ecx, dword [esp + 8]
shld ecx, esi, 1
add esi, esi
sub eax, dword [esp + 4]
sbb ebx, dword [esp + 0x10]
add ebp, esi
adc edi, ecx
add ebp, eax
adc edi, ebx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x4096ac
mov esi, ebp
and esi, 0x878eeb81
mov ebx, esi
xor ebx, 0x878eeb81
mov ecx, ebp
and ecx, 0x7871147e
mov eax, ebx
mul ecx
mov dword [esp], eax
mov eax, edi
and eax, 0xbce0d161
imul eax, ebx
add edx, eax
mov ebx, edx
mov edx, edi
and edx, 0x431f2e9e
or ebp, 0x878eeb81
mov eax, ebp
imul ebp, edx
xor edx, 0x431f2e9e
imul ecx, edx
mul esi
add ecx, ebx
add ebp, edx
or edi, 0x431f2e9e
imul edi, esi
add edi, ebp
add eax, dword [esp]
adc edi, ecx
mov edx, eax
mov ecx, dword [esp + 0x18]
shrd edx, edi, cl
mov esi, edi
shr esi, cl
test cl, 0x20
je 0x4095fd
mov edx, esi
xor esi, esi
mov dword [esp], edx
mov ebx, edi
not ebx
mov ecx, eax
not ecx
or ebx, esi
or ecx, edx
add ecx, eax
adc ebx, edi
add ecx, 1
adc ebx, 0
mov edx, ecx
and edx, 2
mov dword [esp + 8], edx
mov ebp, ecx
or ebp, 0xfffffffd
add ebp, 1
mov dword [esp + 4], eax
mov eax, 0
adc eax, 0xffffffff
mov dword [esp + 0x14], eax
mov edx, esi
and edx, edi
mov dword [esp + 0x10], edx
xor esi, edi
mov dword [esp + 0xc], esi
mov esi, dword [esp]
mov eax, dword [esp + 4]
and esi, eax
xor dword [esp], eax
mov edi, ecx
or ecx, 2
mov eax, ebp
imul eax, ebx
mov dword [esp + 0x18], eax
mov eax, ecx
mov ecx, dword [esp + 8]
mul ecx
mov dword [esp + 4], eax
mov dword [esp + 0x1c], edx
imul ebx, ecx
and edi, 0xfffffffd
mov eax, ebp
mul edi
mov ecx, dword [esp + 0x1c]
or ecx, ebx
add edx, dword [esp + 0x18]
imul edi, dword [esp + 0x14]
add edi, edx
mov edx, dword [esp + 0x10]
shld edx, esi, 1
add esi, esi
sub eax, dword [esp + 4]
sbb edi, ecx
add dword [esp], esi
mov ebp, dword [esp]
mov ecx, dword [esp + 0xc]
adc ecx, edx
add ebp, eax
adc ecx, edi
mov edi, ecx
or edi, 0x1010101
or ebp, 0x1010101
push edi
push ebp
call fcn.0040a8d0
add esp, 8
test al, al
je 0x4096d0
call fcn.0040d330
call fcn.0040c220
call fcn.0043e7f0
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]