Function at 0x10021120
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100947ad
mov eax, dword fs:[0]
push eax
sub esp, 0x3ec
mov eax, dword [0x100c3384]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x294], ecx
call fcn.1003eb30
mov dword [ebp - 0x298], eax
push 1
mov eax, dword [ebp - 0x298]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x298]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 0x2ac], al
cmp byte [ebp - 0x2ac], 1
je 0x10021185
jmp 0x1002124e
push 0x1009e080
lea ecx, [ebp - 0x248]
call fcn.10004260
mov dword [ebp - 4], 0
push 0x1009e0d0
lea ecx, [ebp - 0x230]
call fcn.10004260
mov byte [ebp - 4], 1
call fcn.1003eb30
mov dword [ebp - 0x29c], eax
lea ecx, [ebp + 0xc]
push ecx
push str.Hotfix_Init:_is_retry__
push 0xd0
lea edx, [ebp - 0x248]
push edx
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x360]
call fcn.10004a60
mov dword [ebp - 0x2b0], eax
mov ecx, dword [ebp - 0x2b0]
mov dword [ebp - 0x2b4], ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2b4]
call fcn.10002a60
mov ecx, eax
call fcn.1000c8a0
push eax
mov edx, dword [ebp - 0x29c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x29c]
mov edx, dword [eax + 0x1c]
call edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x360]
call fcn.10005a70
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x230]
call fcn.10005680
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.10005680
mov ecx, dword [ebp - 0x294]
add ecx, 0x30
call fcn.10022730
mov ecx, dword [ebp - 0x294]
add ecx, 0x48
call fcn.10022730
mov ecx, dword [ebp - 0x294]
add ecx, 0x60
call fcn.10022730
mov ecx, dword [ebp - 0x294]
add ecx, 0x78
call fcn.10022730
mov ecx, dword [ebp - 0x294]
add ecx, 0x90
call fcn.10022730
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.1006c6b0
add esp, 0xc
lea ecx, [ebp - 0x218]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.hotfix_
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x294]
add ecx, 0x30
call fcn.1001fee0
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x294]
add ecx, 0x48
call fcn.1001fee0
push str..msu
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x290]
push eax
call fcn.1001f9c0
add esp, 0xc
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2b8]
mov dword [ebp - 0x2bc], ecx
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0x2bc]
push edx
mov ecx, dword [ebp - 0x294]
add ecx, 0x48
call fcn.10022610
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x290]
call fcn.100056d0
mov eax, dword [ebp - 0x294]
add eax, 0x48
push eax
mov ecx, dword [ebp - 0x294]
add ecx, 0x60
call fcn.1001fe70
push str..del
mov ecx, dword [ebp - 0x294]
add ecx, 0x60
call fcn.10022650
mov ecx, dword [ebp - 0x294]
add ecx, 0x90
push ecx
mov edx, dword [ebp - 0x294]
add edx, 0x78
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x294]
add ecx, 0x2c
call fcn.10023170
call fcn.1003eb30
mov dword [ebp - 0x2a0], eax
push 1
mov edx, dword [ebp - 0x2a0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 0x2c0], al
cmp byte [ebp - 0x2c0], 1
je 0x100213df
jmp 0x100214cd
push 0x1009e118
lea ecx, [ebp - 0x278]
call fcn.10004260
mov dword [ebp - 4], 4
push 0x1009e168
lea ecx, [ebp - 0x260]
call fcn.10004260
mov byte [ebp - 4], 5
call fcn.1003eb30
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x294]
add eax, 0x90
push eax
push str._nmd5:
mov ecx, dword [ebp - 0x294]
add ecx, 0x78
push ecx
push str.Hotfix_downlaod_params:____nurl:
push 0xe5
lea edx, [ebp - 0x278]
push edx
lea eax, [ebp - 0x260]
push eax
lea ecx, [ebp - 0x3f8]
call fcn.10004a60
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c8], ecx
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x2c8]
call fcn.10002a60
mov ecx, eax
call fcn.1000c8f0
mov ecx, eax
call fcn.10002a60
mov ecx, eax
call fcn.1000c8f0
push eax
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [eax + 0x1c]
call edx
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x3f8]
call fcn.10005a70
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x260]
call fcn.10005680
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x278]
call fcn.10005680
mov ecx, dword [ebp - 0x294]
add ecx, 0x30
call fcn.1000a340
movzx eax, al
test eax, eax
jne 0x10021545
mov ecx, dword [ebp - 0x294]
add ecx, 0x48
call fcn.1000a340
movzx ecx, al
test ecx, ecx
jne 0x10021545
mov ecx, dword [ebp - 0x294]
add ecx, 0x60
call fcn.1000a340
movzx edx, al
test edx, edx
jne 0x10021545
mov ecx, dword [ebp - 0x294]
add ecx, 0x78
call fcn.1000a340
movzx eax, al
test eax, eax
jne 0x10021545
mov ecx, dword [ebp - 0x294]
add ecx, 0x90
call fcn.1000a340
movzx ecx, al
test ecx, ecx
jne 0x10021545
mov dword [ebp - 0x2a8], 1
jmp 0x1002154f
mov dword [ebp - 0x2a8], 0
mov eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005dfd5
mov esp, ebp
pop ebp
ret 8