Function at 0x402f10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
mov dword [ebp - 0x94], 0x11d9
cmp dword [ebp - 0x94], 0x6f7d
jle 0x402f8a
mov eax, dword [ebp - 0x94]
and eax, 0x11e2
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
or ecx, 0x5cdb
cmp ecx, 0x78a3
jg 0x402f76
push 0xffffffffffffffa1
push 0x8d
movzx edx, byte [ebp + 8]
push edx
call fcn.00402eb0
add esp, 0xc
mov byte [ebp + 8], 0xf1
mov eax, dword [ebp - 0x94]
shl eax, 0x14
mov dword [ebp - 0x94], eax
jmp 0x403427
mov ecx, dword [ebp - 0x94]
sub ecx, 0x7b22
cmp ecx, 0x1781
jge 0x403427
lea edx, [ebp - 0x94]
mov dword [ebp - 0xa0], edx
mov eax, 0x7c6
mov word [ebp - 0x70], ax
mov cx, word [ebp - 0x70]
mov word [ebp - 0x7c], cx
mov dl, byte [ebp + 8]
mov byte [ebp - 0x90], dl
movzx eax, byte [ebp - 0x90]
sar eax, 0xa9
movzx ecx, byte [ebp + 8]
cmp eax, ecx
je 0x403018
push 0x5a
movzx edx, word [ebp - 0x7c]
push edx
movzx eax, byte [ebp - 0x90]
push eax
call fcn.00402eb0
add esp, 0xc
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
xor edx, 0x3a51
mov dword [ebp - 0x94], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0xc], eax
movzx ecx, byte [ebp + 8]
add ecx, 5
mov byte [ebp - 0x90], cl
movsx edx, word [ebp - 0x70]
mov dword [ebp - 0xb4], edx
cmp dword [ebp - 0xb4], 0x7c6
je 0x403033
jmp 0x40337b
mov byte [ebp - 0x8f], 0x77
movsx eax, word [ebp - 0x7c]
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0x13f
je 0x4030da
cmp dword [ebp - 0xb8], 0x5ca
je 0x403065
jmp 0x403143
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x10], ecx
movzx edx, byte [ebp - 0x8f]
push edx
movzx eax, word [ebp - 0x7c]
push eax
movzx ecx, byte [ebp - 0x90]
push ecx
call fcn.00402eb0
add esp, 0xc
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
sub eax, 0x6dd1
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
add edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0xa0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x94]
push ecx
movzx edx, byte [ebp + 8]
push edx
movzx eax, byte [ebp - 0x8f]
push eax
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
mov cl, byte [ebp - 0x8f]
call fcn.00403b10
jmp 0x403143
movsx edx, word [ebp - 0x70]
or edx, 0x60b
mov word [ebp - 0x7c], dx
mov al, byte [ebp - 0x90]
mov byte [ebp + 8], al
mov cl, byte [ebp - 0x90]
mov byte [ebp + 8], cl
lea edx, [ebp - 0x68]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgExW]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x94]
sar eax, 7
mov ecx, dword [ebp - 0xa0]
mov dword [ecx], eax
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0xc]
push eax
movzx ecx, byte [ebp - 0x90]
push ecx
call fcn.00402f10
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
xor eax, 0x4b53
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x74], ecx
mov dl, byte [ebp - 0x8f]
mov byte [ebp - 0x8d], dl
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
mov dword [ebp - 0xac], ecx
movsx eax, word [ebp - 0x7c]
cdq
mov ecx, 0x131
idiv ecx
movsx edx, word [ebp - 0x70]
cmp eax, edx
je 0x4031e0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x8c], ecx
mov dl, byte [ebp - 0x90]
mov byte [ebp - 9], dl
push 0
push 0x200
push 2
push 0
push 2
push 0xc0000000
push str.C:SnareLiteratureRedirecting
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x9c], eax
mov eax, 0x4a0
mov word [ebp - 4], ax
lea ecx, [ebp - 0x94]
mov dword [ebp - 8], ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xac]
shl edx, cl
mov eax, dword [ebp - 0xa0]
mov dword [eax], edx
push str.DOOqN
call dword [sym.imp.KERNEL32.dll_AddAtomW]
mov word [ebp - 0x10], ax
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x94]
and edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x78]
cmp edx, ecx
jne 0x403267
movzx edx, byte [ebp - 9]
movzx eax, byte [ebp + 8]
sub edx, eax
mov byte [ebp - 0x90], dl
mov ecx, dword [ebp - 0x78]
add ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov al, byte [ebp - 0x90]
mov byte [ebp + 8], al
movzx ecx, word [ebp - 4]
push ecx
movzx edx, word [ebp - 4]
push edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
call fcn.00404920
movzx eax, byte [ebp - 9]
movzx ecx, byte [ebp - 0x90]
sub eax, ecx
movzx edx, byte [ebp + 8]
cmp eax, edx
jge 0x4032fb
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x94]
add eax, dword [edx]
cmp ecx, eax
jge 0x4032ea
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 8]
mov eax, dword [ecx]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x8c]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb0]
mov dword [ebp + 0x10], edx
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 8]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x94], edx
movzx eax, word [ebp - 4]
add eax, 0x650
mov word [ebp - 4], ax
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0xa0]
mov dword [eax], edx
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x74]
shr edx, cl
mov dword [ebp - 0xa8], edx
lea eax, [ebp - 0x78]
mov dword [ebp - 0x98], eax
mov edx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x78]
shl edx, cl
mov eax, dword [ebp - 8]
mov dword [eax], edx
movzx ecx, byte [ebp - 0x90]
movzx edx, byte [ebp - 9]
or ecx, edx
movzx eax, byte [ebp + 8]
cmp ecx, eax
jl 0x403379
movzx ecx, word [ebp - 4]
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 0xacb
je 0x40334d
cmp dword [ebp - 0xbc], 0xbfc
je 0x40336c
jmp 0x403379
mov edx, dword [ebp + 0x10]
mov dword [ebp + 0xc], edx
movzx eax, byte [ebp - 0x90]
push eax
movzx ecx, byte [ebp - 9]
push ecx
movzx edx, word [ebp - 0x70]
push edx
call fcn.00404050
jmp 0x403379
movzx eax, word [ebp - 4]
and eax, 0xc6b
mov word [ebp - 4], ax
jmp 0x4033b2
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0xc], ecx
mov dl, byte [ebp - 0x90]
mov byte [ebp + 8], dl
call fcn.00403450
movzx eax, byte [ebp + 8]
add eax, 0x9e
mov byte [ebp - 0x90], al
mov ecx, dword [ebp - 0x94]
sub ecx, 0x20cd
mov edx, dword [ebp - 0xa0]
mov dword [edx], ecx
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x88]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0xa4], eax
movsx eax, word [ebp - 0x7c]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0x141
je 0x4033ea
jmp 0x4033fb
mov ecx, dword [ebp - 0x94]
and ecx, 0x79
mov edx, dword [ebp - 0xa0]
mov dword [edx], ecx
mov eax, dword [ebp - 0x94]
sub eax, 0x7b3
mov ecx, dword [ebp - 0xa0]
mov dword [ecx], eax
call fcn.00403450
mov edx, dword [ebp - 0x94]
push edx
movzx eax, byte [ebp - 0x90]
push eax
call fcn.004053c0
mov ecx, dword [ebp - 0x94]
add ecx, 0x2183
mov dword [ebp - 0x94], ecx
mov eax, 0x75
mov esp, ebp
pop ebp
ret 0xc