Function at 0x422640
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0xc7fc]
mov eax, 0xc7fc
call fcn.0049e430
push 0xffffffffffffffff
push 0x4adbe4
mov eax, dword fs:[0]
push eax
sub esp, 0x200
mov eax, dword [0x4c0390]
xor eax, ebp
mov dword [ebp + 0xc7f8], 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 0x4226d3
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 0x42290d
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
mov ecx, dword [ebx + 8]
push ecx
push eax
call fcn.0049e4e0
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, esi
jmp 0x42290f
push 0x4c7118
push str.Rar_DRXXXXXX
call fcn.0047f0a0
test al, al
je 0x42290d
lea edx, [ebp + 0xb3f8]
push edx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x4c7118
call fcn.004ac458
add esp, 4
call fcn.00486ab0
mov esi, eax
push 0x5300
push 0x4e2ea0
lea eax, [ebp + 0x4858]
push eax
call fcn.0049e4e0
add esp, 0xc
mov dword [ebp - 4], edi
lea ecx, [ebx + 0x10]
push ecx
mov ecx, 0x4e2ea0
call fcn.00422390
push edi
push edi
mov ecx, 0x4e0c08
call fcn.00416240
lea edx, [ebp + 0x4858]
push edx
mov ecx, 0x4e2ea0
call fcn.00422390
push 0x5300
push edi
lea eax, [ebp + 0x4858]
push eax
call fcn.0049e460
add esp, 0xc
call fcn.00486ab0
cmp esi, eax
jne 0x42277d
cmp dword [0x4db840], edi
je 0x422784
mov byte [0x4c7519], 0
lea eax, [ebx + 0x5310]
cmp byte [eax], 0
je 0x4227c2
lea ecx, [ebp + 0xc3f8]
push ecx
push eax
call fcn.0044dc40
lea edx, [ebp + 0xb7f8]
push edx
add ebx, 0x5710
push ebx
call fcn.0044dd80
lea eax, [ebp + 0xb7f8]
push eax
lea ecx, [ebp + 0xc3f8]
push ecx
call fcn.0047e3b0
call fcn.0043ca60
mov ebx, eax
neg ebx
sbb ebx, ebx
neg ebx
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x20c]
call fcn.00465890
mov byte [ebp - 4], 1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x114]
call fcn.00465890
mov byte [ebp - 4], 3
push 0x4b175c
lea ecx, [ebp - 0x114]
call fcn.00465910
lea ecx, [ebp + 0x9b58]
call fcn.00401140
push 3
push edi
push edi
lea edx, [ebp - 0x114]
push edx
lea ecx, [ebp + 0x242c]
call fcn.0045e620
mov byte [ebp - 4], 4
xor esi, esi
jmp 0x422830
lea eax, [ebp + 0x9b58]
push eax
lea ecx, [ebp + 0x242c]
call fcn.0045f020
test eax, eax
jne 0x4228ca
lea ecx, [ebp + 0xc3f8]
push ecx
lea edx, [ebp + 0x9b58]
push edx
call fcn.0042fa70
lea eax, [ebp + 0x9f58]
push eax
mov ecx, eax
push ecx
lea edx, [ebp + 0x9b58]
push edx
call fcn.0044daf0
lea eax, [ebp + 0xb7f8]
push eax
lea ecx, [ebp + 0x9f58]
push ecx
call fcn.0042fb00
lea edx, [ebp + 0xb7f8]
push edx
lea eax, [ebp + 0xc3f8]
push eax
lea ecx, [ebp - 0x20c]
call fcn.00465600
lea eax, [ebp + 0xc3f8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4228a8
sub eax, edx
lea esi, [esi + eax + 3]
lea ecx, [ebp + 0xb7f8]
push ecx
call fcn.0046dac0
lea edi, [edi + eax + 3]
jmp 0x422830
test esi, esi
jne 0x422934
mov byte [ebp - 4], 3
lea ecx, [ebp + 0x242c]
call fcn.0045e890
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x114]
call fcn.00465510
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20c]
call fcn.00465510
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x4858]
call fcn.0041c0f0
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 + 0xc7f8]
xor ecx, ebp
call fcn.0049dea6
add ebp, 0xc7fc
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x42293b
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 0x4228ce
lea ecx, [ebp - 0x114]
call fcn.00465490
push 1
push 0
push 2
lea edx, [ebp - 0x114]
push edx
lea ecx, [ebp]
call fcn.0045e620
mov bl, 5
mov byte [ebp - 4], bl
lea esp, [esp]
lea eax, [ebp + 0x9b58]
push eax
lea ecx, [ebp]
call fcn.0045f020
test eax, eax
jne 0x4229a4
test byte [ebp + 0xa760], bl
je 0x422980
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x5f11], al
mov byte [ebp - 4], 4
lea ecx, [ebp]
call fcn.0045e890
mov byte [ebp - 4], 3
lea ecx, [ebp + 0x242c]
call fcn.0045e890
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x114]
call fcn.00465510
mov dword [ebp - 4], 1
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [edi], 0x14
mov ebx, dword [ebp - 0x1c]
mov dword [edi + 0x10], ebx
xor esi, esi
push 0x400
lea edx, [ebp + 0xabf8]
push edx
lea eax, [ebp + 0xbff8]
push eax
lea ecx, [ebp - 0x20c]
call fcn.00465920
test al, al
je 0x422a7f
mov edi, edi
test ebx, ebx
je 0x422a33
lea ecx, [ebp + 0xabf8]
push ecx
lea edx, [edi + esi*2 + 0x14]
push edx
call fcn.0046dae0
lea eax, [ebp + 0xabf8]
push eax
call fcn.0046dac0
jmp 0x422a59
lea ecx, [ebp + 0xbff8]
push ecx
lea edx, [edi + esi + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0xbff8]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x422a50
sub eax, edx
lea esi, [esi + eax + 1]
push 0x400
lea eax, [ebp + 0xabf8]
push eax
lea ecx, [ebp + 0xbff8]
push ecx
lea ecx, [ebp - 0x20c]
call fcn.00465920
test al, al
jne 0x422a10
test ebx, ebx
je 0x422a8c
xor edx, edx
mov word [edi + esi*2 + 0x14], dx
jmp 0x422a91
mov byte [edi + esi + 0x14], 0
lea eax, [ebp + 0xb3f8]
push eax
call fcn.004ac458
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 0x422aca
push esi
push edi
push eax
call fcn.0049e4e0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20c]
call fcn.00465510
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x4858]
call fcn.0041c0f0
mov eax, ebx
jmp 0x42290f