Function at 0x4228d0
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0xc80c]
mov eax, 0xc80c
call fcn.0049ebb0
push 0xffffffffffffffff
push 0x4ae3a4
mov eax, dword fs:[0]
push eax
sub esp, 0x200
mov eax, dword [0x4c03a0]
xor eax, ebp
mov dword [ebp + 0xc808], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov eax, dword [ebx + 8]
xor edi, edi
cmp eax, edi
je 0x42296b
push eax
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov edi, eax
push edi
push 0x2042
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x422ba5
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x422ba5
push edi
mov ecx, dword [ebx + 8]
push ecx
push eax
call fcn.0049ec60
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, esi
jmp 0x422ba7
push 0x4c7160
push str.Rar_DRXXXXXX
call fcn.0047f110
test al, al
je 0x422ba5
lea edx, [ebp + 0xb408]
push edx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x4c7160
call fcn.004acbe8
add esp, 4
call fcn.00486bf0
mov esi, eax
push 0x5310
push 0x4e2ef8
lea eax, [ebp + 0x4858]
push eax
call fcn.0049ec60
add esp, 0xc
mov dword [ebp - 4], edi
lea ecx, [ebx + 0x10]
push ecx
mov ecx, 0x4e2ef8
call fcn.00422620
push edi
push edi
mov ecx, 0x4e0c60
call fcn.004160e0
lea edx, [ebp + 0x4858]
push edx
mov ecx, 0x4e2ef8
call fcn.00422620
push 0x5310
push edi
lea eax, [ebp + 0x4858]
push eax
call fcn.0049ebe0
add esp, 0xc
call fcn.00486bf0
cmp esi, eax
jne 0x422a15
cmp dword [0x4db888], edi
je 0x422a1c
mov byte [0x4c7561], 0
lea eax, [ebx + 0x5320]
cmp byte [eax], 0
je 0x422a5a
lea ecx, [ebp + 0xc408]
push ecx
push eax
call fcn.0044dc00
lea edx, [ebp + 0xb808]
push edx
add ebx, 0x5720
push ebx
call fcn.0044dd40
lea eax, [ebp + 0xb808]
push eax
lea ecx, [ebp + 0xc408]
push ecx
call fcn.0047e420
call fcn.0043cdb0
mov ebx, eax
neg ebx
sbb ebx, ebx
neg ebx
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x114]
call fcn.004658e0
mov byte [ebp - 4], 1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20c]
call fcn.004658e0
mov byte [ebp - 4], 3
push 0x4b175c
lea ecx, [ebp - 0x20c]
call fcn.00465960
lea ecx, [ebp + 0x9b68]
call fcn.00401140
push 3
push edi
push edi
lea edx, [ebp - 0x20c]
push edx
lea ecx, [ebp + 0x242c]
call fcn.0045e680
mov byte [ebp - 4], 4
xor esi, esi
lea eax, [ebp + 0x9b68]
push eax
lea ecx, [ebp + 0x242c]
call fcn.0045f070
test eax, eax
jne 0x422b62
lea ecx, [ebp + 0xc408]
push ecx
lea edx, [ebp + 0x9b68]
push edx
call fcn.0042fda0
lea eax, [ebp + 0x9f68]
push eax
mov ecx, eax
push ecx
lea edx, [ebp + 0x9b68]
push edx
call fcn.0044dab0
lea eax, [ebp + 0xb808]
push eax
lea ecx, [ebp + 0x9f68]
push ecx
call fcn.0042fe30
lea edx, [ebp + 0xb808]
push edx
lea eax, [ebp + 0xc408]
push eax
lea ecx, [ebp - 0x114]
call fcn.00465650
lea eax, [ebp + 0xc408]
lea edx, [eax + 1]
jmp 0x422b40
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x422b40
sub eax, edx
lea esi, [esi + eax + 3]
lea ecx, [ebp + 0xb808]
push ecx
call fcn.0046db10
lea edi, [edi + eax + 3]
jmp 0x422ac3
test esi, esi
jne 0x422bcc
mov byte [ebp - 4], 3
lea ecx, [ebp + 0x242c]
call fcn.0045e8f0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20c]
call fcn.00465560
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x114]
call fcn.00465560
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x4858]
call fcn.0041c120
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xc808]
xor ecx, ebp
call fcn.0049e626
add ebp, 0xc80c
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x422bd3
lea esi, [edi + edi]
add esi, 0x15
push esi
push 0x2042
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
mov dword [ebp - 0x18], esi
test esi, esi
je 0x422b66
lea ecx, [ebp - 0x20c]
call fcn.004654e0
push 1
push 0
push 2
lea edx, [ebp - 0x20c]
push edx
lea ecx, [ebp]
call fcn.0045e680
mov bl, 5
mov byte [ebp - 4], bl
lea eax, [ebp + 0x9b68]
push eax
lea ecx, [ebp]
call fcn.0045f070
test eax, eax
jne 0x422c38
test byte [ebp + 0xa770], bl
je 0x422c14
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x5f21], al
mov byte [ebp - 4], 4
lea ecx, [ebp]
call fcn.0045e8f0
mov byte [ebp - 4], 3
lea ecx, [ebp + 0x242c]
call fcn.0045e8f0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20c]
call fcn.00465560
mov dword [ebp - 4], 1
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
test edi, edi
je 0x422b84
mov dword [edi], 0x14
mov ebx, dword [ebp - 0x1c]
mov dword [edi + 0x10], ebx
xor esi, esi
push 0x400
lea edx, [ebp + 0xac08]
push edx
lea eax, [ebp + 0xc008]
push eax
lea ecx, [ebp - 0x114]
call fcn.00465970
test al, al
je 0x422d1f
lea ebx, [ebx]
test ebx, ebx
je 0x422cd3
lea ecx, [ebp + 0xac08]
push ecx
lea edx, [edi + esi*2 + 0x14]
push edx
call fcn.0046db30
lea eax, [ebp + 0xac08]
push eax
call fcn.0046db10
jmp 0x422cf9
lea ecx, [ebp + 0xc008]
push ecx
lea edx, [edi + esi + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0xc008]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x422cf0
sub eax, edx
lea esi, [esi + eax + 1]
push 0x400
lea eax, [ebp + 0xac08]
push eax
lea ecx, [ebp + 0xc008]
push ecx
lea ecx, [ebp - 0x114]
call fcn.00465970
test al, al
jne 0x422cb0
test ebx, ebx
je 0x422d2c
xor edx, edx
mov word [edi + esi*2 + 0x14], dx
jmp 0x422d31
mov byte [edi + esi + 0x14], 0
lea eax, [ebp + 0xb408]
push eax
call fcn.004acbe8
add esp, 4
mov ebx, dword [ebp - 0x18]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalSize]
mov esi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 8], eax
test eax, eax
je 0x422d6a
push esi
push edi
push eax
call fcn.0049ec60
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x114]
call fcn.00465560
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x4858]
call fcn.0041c120
mov eax, ebx
jmp 0x422ba7