Function at 0x40fbc0
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6d8f7c
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x9570
call fcn.0068e250
mov eax, dword [0x79a200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x800
lea eax, [ebp - 0xd28]
push 0
push eax
call fcn.00690e10
add esp, 0xc
lea eax, [ebp - 0x320]
push 0x208
push 0
push eax
call fcn.00690e10
add esp, 0xc
mov byte [ebp - 0x9541], 0
lea eax, [ebp - 0x320]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0x208
lea eax, [ebp - 0x528]
push 0
push eax
call fcn.00690e10
add esp, 0xc
lea eax, [ebp - 0x320]
push str.LocalURL.ini
push eax
lea eax, [ebp - 0x528]
push 0x770bb8
push eax
call fcn.0040d9b0
push 0x100
lea eax, [ebp - 0x118]
mov dword [ebp - 0x9554], 0
push 0
push eax
call fcn.00690e10
add esp, 0x1c
lea eax, [ebp - 0x528]
push 0x771100
push eax
lea eax, [ebp - 0x9554]
push eax
call fcn.006a0140
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add esp, 0xc
test eax, eax
jne 0x40fd20
push 0
push 0
push dword [ebp - 0x9554]
call fcn.006a04d0
add esp, 0xc
lea eax, [ebp - 0x118]
push 0x100
push eax
push 0x770cf4
push dword [ebp - 0x9554]
call fcn.0040de50
push dword [ebp - 0x9554]
call fcn.006a065f
add esp, 0x14
lea eax, [ebp - 0xd28]
push 0x400
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x118]
push eax
push 0
push 0
call esi
mov byte [ebp - 0x9541], 1
push 0x800
lea eax, [ebp - 0x1528]
push 0
push eax
call fcn.00690e10
mov eax, dword fs:[0x2c]
add esp, 0xc
movaps xmm0, xmmword [0x776900]
movups xmmword [ebp - 0x9574], xmm0
mov dword [ebp - 0x9564], 0x2d1bc4
mov ecx, dword [eax]
mov dword [ebp - 0x9560], 0x8232e13c
mov dword [ebp - 0x955c], 0x50774c85
mov word [ebp - 0x9558], 0xa07b
mov eax, dword [ecx + 0x98]
lea edi, [ecx + 0x9c]
mov byte [ebp - 0x9556], 0x57
test al, 1
jne 0x40fded
or eax, 1
mov dword [ecx + 0x98], eax
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x9550], xmm0
mov edx, dword [ebp - 0x954c]
mov ecx, dword [ebp - 0x9550]
mov byte [edi + 0x1f], 1
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x9574]
mov byte [ecx + edi], al
add ecx, 1
adc edx, 0
test edx, edx
jne 0x40fdd9
cmp ecx, 0x1f
jb 0x40fdc0
push 0x6ea4b0
call fcn.0068dcce
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp byte [edi + 0x1f], 0
je 0x40fe4f
xorps xmm0, xmm0
movlpd qword [ebp - 0x9580], xmm0
mov eax, dword [ebp - 0x957c]
mov esi, dword [ebp - 0x9580]
mov dword [ebp - 0x954c], eax
mov ecx, esi
mov eax, 0x33032df5
and ecx, 7
mov edx, 0xf5578f13
shl ecx, 3
call fcn.006d81e0
xor byte [esi + edi], al
add esi, 1
mov eax, dword [ebp - 0x954c]
adc eax, 0
mov dword [ebp - 0x954c], eax
test eax, eax
jne 0x40fe45
cmp esi, 0x1f
jb 0x40fe10
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov byte [edi + 0x1f], 0
mov ecx, edi
mov dword [ebp - 0x1530], 0
xorps xmm0, xmm0
mov dword [ebp - 0x152c], 0
movups xmmword [ebp - 0x1540], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe72
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x1540]
call fcn.00415170
push 0
mov dword [ebp - 4], 1
lea eax, [ebp - 0x1540]
cmp dword [ebp - 0x152c], 0xf
push 0
cmova eax, dword [ebp - 0x1540]
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call esi
xor ecx, ecx
mov edi, eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00545633
add esp, 4
lea ecx, [ebp - 0x1540]
cmp dword [ebp - 0x152c], 0xf
mov esi, eax
cmova ecx, dword [ebp - 0x1540]
push edi
push esi
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
lea eax, [ebp - 0x1528]
push 0x400
push eax
call fcn.006a63a0
add esp, 0xc
push str.PatchConfigList.xml
push str.DownLoad_PatchConfigList__FileName__s_
call fcn.0041d700
add esp, 8
xor edi, edi
nop
cmp byte [ebp - 0x9541], 0
mov esi, dword [sym.imp.WININET.dll_DeleteUrlCacheEntryW]
je 0x40ff85
lea eax, [ebp - 0xd28]
push eax
lea eax, [ebp - 0x5540]
push 0x771158
push eax
call fcn.00413d00
add esp, 0xc
push eax
call esi
lea eax, [ebp - 0xd28]
push eax
lea eax, [ebp - 0x5540]
push 0x771158
push eax
call fcn.00413d00
add esp, 0xc
mov esi, eax
lea eax, [ebp - 0x9540]
push str.PatchConfigList.xml
push 0x771160
push eax
call fcn.00413d00
add esp, 0xc
jmp 0x40ffe0
push str.PatchConfigList.xml
lea eax, [ebp - 0x1528]
push eax
lea eax, [ebp - 0x9540]
push 0x77116c
push eax
call fcn.00413d00
add esp, 0x10
push eax
call esi
push str.PatchConfigList.xml
lea eax, [ebp - 0x1528]
push eax
lea eax, [ebp - 0x9540]
push 0x77116c
push eax
call fcn.00413d00
push str.PatchConfigList.xml
mov esi, eax
lea eax, [ebp - 0x5540]
push 0x771160
push eax
call fcn.00413d00
add esp, 0x1c
mov edx, eax
mov ecx, esi
call fcn.0041c540
mov esi, eax
test esi, esi
je 0x410068
inc edi
cmp edi, 3
jl 0x40ff20
cmp esi, 1
jne 0x410005
mov esi, 0x80004005
jmp 0x410009
test esi, esi
jns 0x410068
mov edx, 0x3ec
lea ecx, [ebp - 0x954c]
call fcn.0041abd0
mov byte [ebp - 4], 2
push dword [ebp - 0x954c]
push 0
call fcn.0041d690
add esp, 8
push 0
push 0
push dword [ebp - 0x954c]
call fcn.0054779e
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov edx, dword [ebp - 0x954c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41005e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [0x7adb3c], 5
mov ecx, dword [ebp - 0x152c]
cmp ecx, 0xf
jbe 0x41009e
mov edx, dword [ebp - 0x1540]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410094
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4100be
push ecx
push edx
call fcn.0068d77d
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0068d76f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.006944a3
int3