Function at 0x40c9b0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41bc68
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x421094]
xor eax, esp
mov dword [esp + 0x28], eax
push ebx
push esi
push edi
mov eax, dword [0x421094]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov eax, dword [0x421d84]
fild dword [0x421d84]
test eax, eax
jge 0x40c9fc
fadd qword [0x41ed58]
fdivr qword [0x41ed50]
call fcn.00417cf0
fst qword [0x422e68]
mov eax, dword [0x421d88]
lea ecx, [eax*8]
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
jge 0x40ca2d
fadd qword [0x41ed58]
mov esi, dword [sym.imp.KERNEL32.dll_OpenMutexA]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x14], eax
push 0x41ed40
xor ebx, ebx
fldcw word [esp + 0x18]
push ebx
push 0x1f0001
fistp qword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov dword [0x421d84], edx
fldcw word [esp + 0x1e]
call esi
mov eax, dword [esp + 0x14]
push 3
push eax
call dword [sym.imp.USER32.dll_GetAncestor]
mov ecx, dword [0x421d8c]
add ecx, 0xffffffbb
mov dword [0x421d88], eax
mov eax, 0x422e70
mov dword [0x421d90], ecx
mov dword [0x421d94], ebx
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
lea ecx, [eax + 1]
jmp 0x40cab0
mov dl, byte [eax]
add eax, 1
cmp dl, bl
jne 0x40cab0
sub eax, ecx
push eax
push 0x422e70
lea ecx, [esp + 0x24]
call fcn.0040ce50
mov dword [esp + 0x48], ebx
push 0x422e70
push 0xd9
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edx, dword [0x421d8c]
cmp edx, 5
mov ecx, dword [0x421d84]
je 0x40cb15
cmp edx, 0x13
je 0x40cb0b
movzx edx, dx
add ecx, ecx
sub ecx, edx
movzx edx, cl
mov dword [0x421d84], ecx
sub ecx, edx
add ecx, 0x3f
jmp 0x40cb2a
movzx edx, al
sub ecx, edx
add ecx, 0x3f
jmp 0x40cb2a
movzx edi, cl
mov eax, edx
sub eax, edi
add eax, 0x3f
mov edi, eax
sub edi, ecx
lea ecx, [edx + edi + 0x1080c]
movzx eax, al
mov dword [0x421d8c], ecx
push str.Mapne
sub ecx, eax
push ebx
add ecx, 0x3f
push 0x1f0001
mov dword [0x421d90], ecx
mov dword [0x421d94], ebx
call esi
mov edi, dword [0x421d94]
mov esi, dword [0x421d90]
push ebx
push 0x8f
push edi
push esi
call fcn.00411f50
cmp edx, ebx
mov ecx, dword [0x421d74]
ja 0x40cb7b
cmp eax, 0x1ace
jbe 0x40cb94
mov esi, ecx
sub esi, dword [0x421d84]
add esi, 0x48
xor edi, edi
mov dword [0x421d90], esi
mov dword [0x421d94], edi
mov eax, dword [esp + 0x30]
mov edx, ecx
sub edx, dword [0x421d8c]
mov dword [0x421d88], eax
lea eax, [edx + eax - 0x8dd9]
lea edx, [eax*8]
sub edx, eax
add edx, esi
add edx, edx
movzx ecx, cx
mov eax, edx
sub eax, ecx
lea ecx, [eax + eax + 0xe5]
xor edx, edx
cmp ecx, esi
mov dword [0x421d8c], eax
jne 0x40cbe4
cmp edx, edi
jne 0x40cbe4
mov edx, 0x48
sub edx, esi
add eax, edx
mov dword [0x421d8c], eax
call fcn.0040c280
mov edx, dword [0x421d8c]
lea ecx, [edx*8]
sub ecx, edx
add ecx, dword [0x421d74]
mov esi, eax
mov eax, dword [0x421d90]
mov edx, ecx
imul edx, edx, 0x2e
cmp eax, edx
mov dword [0x421d88], esi
jne 0x40cc1c
cmp dword [0x421d94], ebx
je 0x40cc2b
lea edx, [ecx*8]
sub edx, ecx
add edx, eax
mov ecx, edx
jmp 0x40cc37
movzx edx, al
mov edi, 6
sub edi, edx
add ecx, edi
mov dword [0x421d8c], ecx
add ecx, 0xffff722a
xor edx, edx
sub ecx, eax
sbb edx, dword [0x421d94]
mov dword [0x421d90], ecx
mov dword [0x421d94], edx
mov dword [esp + 0x48], 0xffffffff
cmp dword [esp + 0x34], 0x10
jb 0x40cc75
mov eax, dword [esp + 0x20]
push eax
call fcn.0040da6e
add esp, 4
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov eax, esi
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.0040d3d6
mov esp, ebp
pop ebp
ret 0x10