Function at 0x401f10
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x52378c
mov eax, dword fs:[0]
push eax
sub esp, 0x248
mov eax, dword [0x56e188]
xor eax, esp
mov dword [esp + 0x244], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x56e188]
xor eax, esp
push eax
lea eax, [esp + 0x25c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x26c]
push 0x10
xor ebx, ebx
push ebx
push eax
mov esi, ecx
call fcn.004fdd2d
add esp, 0xc
push 0x10
push ebx
push esi
movzx edi, ax
call fcn.004fdd2d
movzx eax, ax
add esp, 0xc
push eax
push edi
lea ecx, [esp + 0x20]
call fcn.004023e0
add esp, 8
mov dword [esp + 0x264], ebx
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], ebx
jne 0x401fe3
mov dword [esp + 0x264], 0xffffffff
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401fb9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x25c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x244]
xor ecx, esp
call fcn.004fd1b4
add esp, 0x254
ret
call fcn.00410e81
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x401ffd
push 0x80004005
call fcn.00405240
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
mov byte [esp + 0x264], 1
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x40203b
push 0x104
lea ecx, [esp + 0x24]
call fcn.004051a0
mov esi, dword [esp + 0x20]
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004fe098
add esp, 8
cmp eax, ebx
jl 0x40228b
cmp eax, dword [esi - 8]
jg 0x40228b
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
call fcn.00410e81
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x402088
push 0x80004005
call fcn.00405240
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x264], 2
mov ecx, dword [esp + 0x18]
push ecx
push esi
lea edx, [esp + 0x24]
push str._sinf_s
push edx
call fcn.00404a40
mov edi, dword [esp + 0x2c]
add esp, 0x10
lea eax, [esp + 0x28]
push eax
push edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.00419e17
test eax, eax
jne 0x40213e
lea eax, [edi - 0x10]
mov byte [esp + 0x264], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402107
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x264], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40212a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x264], 0xffffffff
mov eax, dword [esp + 0x18]
jmp 0x401f9d
call fcn.00410e81
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x402158
push 0x80004005
call fcn.00405240
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x24], ebp
mov byte [esp + 0x264], 3
call fcn.00402ef0
or edx, 0xffffffff
test eax, eax
lea eax, [ebp - 0x10]
mov byte [esp + 0x264], 2
lea ecx, [eax + 0xc]
jne 0x4021fc
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40219d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x264], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4021c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x264], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40212a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x264], 0xffffffff
mov eax, dword [esp + 0x18]
jmp 0x401f9d
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40220f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x264], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402233
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x264], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402256
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x264], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402281
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x401fbb
push 0x80070057
call fcn.00405240
int3