Function at 0x41de00
Capabilities:
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44e211
push eax
mov eax, dword [0x45d5ac]
mov dword fs:[0], esp
sub esp, 0x218
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
mov al, byte [0x45e818]
mov ebx, ecx
je 0x41de5a
test al, 1
jne 0x41de56
mov dl, al
mov ecx, 0x45e820
or dl, 1
mov byte [0x45e818], dl
call fcn.004296b0
push 0x403fc0
call fcn.00438860
add esp, 4
push 7
jmp 0x41de86
test al, 1
jne 0x41de84
mov dl, byte [0x45e818]
mov ecx, 0x45e820
or dl, 1
mov byte [0x45e818], dl
call fcn.004296b0
push 0x403fc0
call fcn.00438860
add esp, 4
push 6
mov ecx, 0x45e820
call fcn.00429980
mov eax, dword [ebx + 0x70]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp eax, 0x3001
jl 0x41df7e
mov edx, dword [0x45d588]
cmp dword [edx - 8], ebp
je 0x41df7e
mov ecx, 0x45d550
call fcn.00427730
test eax, eax
je 0x41df7e
mov eax, dword [0x45d3d0]
lea ecx, [esp + 0x18]
mov dword [0x45d5b0], 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 0x41def2
mov word [esp + 0x18], bp
mov edx, 0x100
sub edx, eax
cmp edx, 1
jle 0x41df0f
lea eax, [esp + 0x18]
mov ecx, 0x45d5c0
push eax
call fcn.004030d0
jmp 0x41df60
push 0x1ff
mov ecx, 0x45d5c0
mov esi, 0x200
call fcn.00403b50
cmp eax, ebp
je 0x41df54
push esi
push eax
push 0x91
call fcn.00403f50
mov ecx, esi
sub ecx, eax
cmp ecx, 1
jg 0x41df54
add esi, 0x100
mov ecx, 0x45d5c0
lea edx, [esi - 1]
push edx
call fcn.00403b50
cmp eax, ebp
jne 0x41df27
push 0xffffffffffffffff
mov ecx, 0x45d5c0
call fcn.00403c10
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 0x41e007
call fcn.004215b0
test eax, eax
je 0x41e079
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.004205b0
add esp, 0xc
test eax, eax
pop edi
je 0x41e01f
lea edx, [esp + 0x18]
test edx, edx
jne 0x41dfd2
xor eax, eax
jmp 0x41dfdd
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x18]
push ecx
push eax
mov ecx, 0x45d5cc
call fcn.00403d70
mov eax, dword [ebx + 0x70]
cmp eax, ebp
je 0x41dffc
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.00421460
add esp, 8
cmp ax, bp
jne 0x41e050
push 0x40
push 0x96
push 0xb4
push ebp
call fcn.0040a1b0
add esp, 0x10
mov ecx, ebx
call fcn.0041eea0
jmp 0x41e007
and eax, 0xffff
push eax
push str._c:_
push 0x45d5cc
call fcn.00414b00
mov eax, dword [ebx + 0x70]
add esp, 0xc
cmp eax, ebp
je 0x41dffc
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x44]
jmp 0x41dffc
mov edx, dword [0x45d5cc]
push ebp
push 0x6400000
push edx
call fcn.004205b0
add esp, 0xc
test eax, eax
jne 0x41dffc
mov eax, dword [0x45d5cc]
lea ecx, [esp + 0xc]
push eax
push ecx
call fcn.00420610
add esp, 8
lea edx, [esp + 0x14]
push 1
push edx
lea ecx, [esp + 0x14]
mov dword [esp + 0x234], ebp
call fcn.00403320
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov byte [esp + 0x22c], 1
je 0x41e114
cmp dword [ecx - 0xc], ebp
jge 0x41e0e6
mov edx, dword [0x457054]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x41e0eb
cmp dword [eax - 0xc], ebp
jge 0x41e0fb
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x14]
call fcn.00403d70
jmp 0x41e114
lea ecx, [esp + 0xc]
call fcn.00403e30
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 [0x457054]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41e145
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x41e145
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xc]
push eax
call fcn.0042d34c
add esp, 4
mov eax, dword [0x457050]
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.00403490
mov eax, dword [esp + 0x20]
push 0x40
push 0x96
push eax
push ebp
call fcn.0040a440
add esp, 0x20
mov ecx, ebx
call fcn.0041eea0
mov eax, dword [esp + 0x10]
mov edx, dword [0x457054]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41e1b3
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x41e1b3
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.0042d34c
add esp, 4
mov eax, dword [esp + 0xc]
mov edx, dword [0x457054]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41e007
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x41e007
mov edx, dword [esp + 0xc]
add edx, 0xfffffff4
push edx
call fcn.0042d34c
add esp, 4
jmp 0x41e007