Function at 0x41ded0
Capabilities:
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44e681
push eax
mov eax, dword [0x45e644]
mov dword fs:[0], esp
sub esp, 0x218
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
mov al, byte [0x45f8b0]
mov ebx, ecx
je 0x41df2a
test al, 1
jne 0x41df26
mov dl, al
mov ecx, 0x45f8c0
or dl, 1
mov byte [0x45f8b0], dl
call fcn.00429af0
push 0x403fb0
call fcn.00438cb0
add esp, 4
push 7
jmp 0x41df56
test al, 1
jne 0x41df54
mov dl, byte [0x45f8b0]
mov ecx, 0x45f8c0
or dl, 1
mov byte [0x45f8b0], dl
call fcn.00429af0
push 0x403fb0
call fcn.00438cb0
add esp, 4
push 6
mov ecx, 0x45f8c0
call fcn.00429dc0
mov eax, dword [ebx + 0x70]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp eax, 0x3001
jl 0x41e04e
mov edx, dword [0x45e620]
cmp dword [edx - 8], ebp
je 0x41e04e
mov ecx, 0x45e5e8
call fcn.00427b70
test eax, eax
je 0x41e04e
mov eax, dword [0x45e460]
lea ecx, [esp + 0x18]
mov dword [0x45e648], ebp
push 0x100
mov eax, dword [eax + 8]
push ecx
push 0x91
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
cmp eax, ebp
jne 0x41dfc2
mov word [esp + 0x18], bp
mov edx, 0x100
sub edx, eax
cmp edx, 1
jle 0x41dfdf
lea eax, [esp + 0x18]
mov ecx, 0x45e658
push eax
call fcn.004030c0
jmp 0x41e030
push 0x1ff
mov ecx, 0x45e658
mov esi, 0x200
call fcn.00403bf0
cmp eax, ebp
je 0x41e024
push esi
push eax
push 0x91
call fcn.00403f40
mov ecx, esi
sub ecx, eax
cmp ecx, 1
jg 0x41e024
add esi, 0x100
mov ecx, 0x45e658
lea edx, [esi - 1]
push edx
call fcn.00403bf0
cmp eax, ebp
jne 0x41dff7
push 0xffffffffffffffff
mov ecx, 0x45e658
call fcn.00403cb0
mov eax, dword [ebx + 0x70]
push 0x5002
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebx + 0x70]
push 3
push eax
mov edx, dword [eax]
call dword [edx + 0x1c]
jmp 0x41e0d7
call fcn.00421650
test eax, eax
je 0x41e149
push edi
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1e]
mov word [esp + 0x1c], bp
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ebp
lea ecx, [esp + 0x20]
push 0x6400000
push ecx
call fcn.00420650
add esp, 0xc
test eax, eax
pop edi
je 0x41e0ef
lea edx, [esp + 0x18]
test edx, edx
jne 0x41e0a2
xor eax, eax
jmp 0x41e0ad
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x18]
push ecx
push eax
mov ecx, 0x45e664
call fcn.00403e10
mov eax, dword [ebx + 0x70]
cmp eax, ebp
je 0x41e0cc
mov edx, dword [eax]
push 1
push eax
call dword [edx + 0x44]
mov eax, dword [ebx + 0x70]
push 2
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov ecx, dword [esp + 0x224]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x224
ret
push ebp
push 0x6400000
call fcn.00421500
add esp, 8
cmp ax, bp
jne 0x41e120
push 0x40
push 0x96
push 0xb4
push ebp
call fcn.0040a1a0
add esp, 0x10
mov ecx, ebx
call fcn.0041ef40
jmp 0x41e0d7
and eax, 0xffff
push eax
push str._c:_
push 0x45e664
call fcn.00414f30
mov eax, dword [ebx + 0x70]
add esp, 0xc
cmp eax, ebp
je 0x41e0cc
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x44]
jmp 0x41e0cc
mov edx, dword [0x45e664]
push ebp
push 0x6400000
push edx
call fcn.00420650
add esp, 0xc
test eax, eax
jne 0x41e0cc
mov eax, dword [0x45e664]
lea ecx, [esp + 0xc]
push eax
push ecx
call fcn.004206b0
add esp, 8
lea edx, [esp + 0x14]
push 1
push edx
lea ecx, [esp + 0x14]
mov dword [esp + 0x234], ebp
call fcn.004033c0
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov byte [esp + 0x22c], 1
je 0x41e1e4
cmp dword [ecx - 0xc], ebp
jge 0x41e1b6
mov edx, dword [0x458054]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x41e1bb
cmp dword [eax - 0xc], ebp
jge 0x41e1cb
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x14]
call fcn.00403e10
jmp 0x41e1e4
lea ecx, [esp + 0xc]
call fcn.00403ed0
mov esi, dword [esi]
mov dword [esp + 0xc], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x14]
mov edx, dword [0x458054]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41e215
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x41e215
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xc]
push eax
call fcn.0042d78e
add esp, 4
mov eax, dword [0x458050]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0xc]
push 0x64
push ecx
lea edx, [esp + 0x18]
push 0xb5
push edx
mov byte [esp + 0x23c], 2
call fcn.00403530
mov eax, dword [esp + 0x20]
push 0x40
push 0x96
push eax
push ebp
call fcn.0040a430
add esp, 0x20
mov ecx, ebx
call fcn.0041ef40
mov eax, dword [esp + 0x10]
mov edx, dword [0x458054]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41e283
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x41e283
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.0042d78e
add esp, 4
mov eax, dword [esp + 0xc]
mov edx, dword [0x458054]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41e0d7
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x41e0d7
mov edx, dword [esp + 0xc]
add edx, 0xfffffff4
push edx
call fcn.0042d78e
add esp, 4
jmp 0x41e0d7