Function at 0x4225bc
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x7a
push 0
push 0
dec ecx
jne 0x4225c4
push ecx
push ebx
push esi
push edi
mov esi, 0x4bdcdc
xor eax, eax
push ebp
push 0x422fd1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x47b5d8]
cmp byte [eax], 0
je 0x422fa3
cmp byte [0x47abd8], 0
jne 0x422fa3
cmp byte [0x47abdc], 0
je 0x42279f
lea eax, [ebp - 0x108]
push eax
push pe_nt_image_headers32
call sub.kernel32.dll_GetCurrentDirectoryA
lea edx, [ebp - 0x284]
lea eax, [ebp - 0x108]
call fcn.00409400
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
xor eax, eax
mov al, byte [ebp - 0x208]
cmp byte [ebp + eax - 0x208], 0x5c
je 0x42268b
lea eax, [ebp - 0x288]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x288]
mov edx, 0x422fe8
call fcn.00404ebc
mov edx, dword [ebp - 0x288]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
mov eax, dword [0x47b5d8]
cmp byte [eax], 8
jbe 0x4226fd
lea eax, [ebp - 0x28c]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x2a0]
push eax
mov ecx, 8
mov edx, 1
mov eax, 0x4bde38
call fcn.00402798
lea edx, [ebp - 0x2a0]
lea eax, [ebp - 0x290]
call fcn.00404e58
mov edx, dword [ebp - 0x290]
pop eax
call fcn.00404ebc
mov edx, dword [ebp - 0x28c]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
jmp 0x422747
lea eax, [ebp - 0x2a4]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x2a8]
mov edx, 0x4bde38
call fcn.00404e58
mov edx, dword [ebp - 0x2a8]
pop eax
call fcn.00404ebc
mov edx, dword [ebp - 0x2a4]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
lea eax, [ebp - 0x2ac]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x2ac]
mov edx, 0x422ff4
call fcn.00404ebc
mov edx, dword [ebp - 0x2ac]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
lea eax, [ebp - 0x2b0]
lea edx, [ebp - 0x208]
call fcn.00404e58
mov edx, dword [ebp - 0x2b0]
mov eax, 0x4bdcec
call fcn.00402e0c
mov edx, 1
mov eax, 0x4bdcec
call fcn.00403564
call fcn.00402874
test eax, eax
jne 0x422b45
mov edx, 0x4be014
mov eax, dword [0x47b3dc]
mov eax, dword [eax]
call fcn.004185f8
mov eax, 0x2bb
call fcn.00402688
mov dword [esi], eax
mov eax, dword [esi]
xor ecx, ecx
mov edx, 0x2bb
call fcn.004031f8
mov ebx, 1
mov eax, 0x47ac09
mov edx, dword [esi]
mov cl, byte [eax]
mov byte [edx + ebx - 1], cl
inc ebx
inc eax
cmp ebx, 0xb
jne 0x4227f0
mov eax, dword [0x47b2a8]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0xe], eax
mov eax, dword [0x47b23c]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0xa], eax
mov eax, dword [0x47b508]
mov al, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x13], al
mov eax, dword [0x47b264]
mov al, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x12], al
mov edx, dword [0x47b408]
mov eax, dword [esi]
add eax, 0x30
call fcn.0042257c
mov edx, dword [0x47b388]
mov eax, dword [esi]
add eax, 0x8d
call fcn.0042257c
mov edx, dword [0x47b5e4]
mov eax, dword [esi]
add eax, 0xea
call fcn.0042257c
mov edx, dword [0x47b39c]
mov eax, dword [esi]
add eax, 0x147
call fcn.0042257c
mov edx, dword [0x47b4a4]
mov eax, dword [esi]
add eax, 0x1a4
call fcn.0042257c
mov edx, dword [0x47b4ac]
mov eax, dword [esi]
add eax, 0x201
call fcn.0042257c
mov edx, dword [0x47b25c]
mov eax, dword [esi]
add eax, 0x25e
call fcn.0042257c
mov eax, dword [0x47b698]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x16], eax
mov eax, dword [0x47b1a8]
mov eax, dword [eax]
mov edx, dword [esi]
mov dword [edx + 0x1a], eax
mov eax, dword [0x47b1ec]
mov al, byte [eax + 2]
mov edx, dword [esi]
mov byte [edx + 0x2e], al
mov eax, dword [0x47b1ec]
mov al, byte [eax + 3]
mov edx, dword [esi]
mov byte [edx + 0x2f], al
mov eax, dword [0x47b1cc]
mov al, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x14], al
mov eax, dword [0x47b40c]
mov edx, dword [esi]
push esi
mov esi, eax
lea edi, [edx + 0x1e]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [0x47b1b8]
mov al, byte [eax]
mov edx, dword [esi]
mov byte [edx + 0x15], al
push 0
mov edx, dword [esi]
mov ecx, 0x2bb
mov eax, 0x4bdcec
call fcn.00402f90
call fcn.00402874
test eax, eax
mov edx, 0x2bb
mov eax, dword [esi]
call fcn.004026a8
mov eax, 0xd
call fcn.00402688
mov dword [0x4bdce0], eax
mov eax, dword [0x4bdce0]
xor ecx, ecx
mov edx, 0xd
call fcn.004031f8
mov eax, dword [0x47b2ec]
mov al, byte [eax]
mov edx, dword [0x4bdce0]
mov byte [edx], al
mov eax, dword [0x47b574]
mov al, byte [eax]
mov edx, dword [0x4bdce0]
mov byte [edx + 1], al
mov eax, dword [0x47b238]
mov al, byte [eax]
mov edx, dword [0x4bdce0]
mov byte [edx + 2], al
mov eax, dword [0x47b278]
mov al, byte [eax]
mov edx, dword [0x4bdce0]
mov byte [edx + 3], al
mov eax, dword [0x47b1e4]
mov al, byte [eax]
mov edx, dword [0x4bdce0]
mov byte [edx + 4], al
mov eax, dword [0x4bdce0]
mov edx, dword [0x47b490]
mov ecx, dword [edx]
mov dword [eax + 5], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 9], ecx
push 0
mov edx, dword [0x4bdce0]
mov ecx, 0xd
mov eax, 0x4bdcec
call fcn.00402f90
call fcn.00402874
test eax, eax
mov edx, 0xd
mov eax, dword [0x4bdce0]
call fcn.004026a8
mov eax, 0x1d
call fcn.00402688
mov dword [0x4bdce4], eax
mov eax, dword [0x4bdce4]
xor ecx, ecx
mov edx, 0x1d
call fcn.004031f8
mov eax, dword [0x47b58c]
mov al, byte [eax]
mov edx, dword [0x4bdce4]
mov byte [edx], al
mov eax, dword [0x47b514]
mov al, byte [eax]
mov edx, dword [0x4bdce4]
mov byte [edx + 1], al
mov eax, dword [0x47b624]
mov al, byte [eax]
mov edx, dword [0x4bdce4]
mov byte [edx + 2], al
mov eax, dword [0x47b330]
mov al, byte [eax]
mov edx, dword [0x4bdce4]
mov byte [edx + 3], al
mov eax, dword [0x47b248]
mov edx, dword [0x4bdce4]
mov esi, eax
lea edi, [edx + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [0x4bdce4]
mov edx, dword [0x47b568]
mov ecx, dword [edx]
mov dword [eax + 0x14], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0x18], ecx
mov eax, dword [0x47b598]
mov al, byte [eax]
mov edx, dword [0x4bdce4]
mov byte [edx + 0x1c], al
push 0
mov edx, dword [0x4bdce4]
mov ecx, 0x1d
mov eax, 0x4bdcec
call fcn.00402f90
call fcn.00402874
test eax, eax
mov edx, 0x1d
mov eax, dword [0x4bdce4]
call fcn.004026a8
mov eax, 0x60
call fcn.00402688
mov dword [0x4bdce8], eax
mov eax, dword [0x4bdce8]
xor ecx, ecx
mov edx, 0x60
call fcn.004031f8
mov eax, dword [0x47b6a4]
mov al, byte [eax]
mov edx, dword [0x4bdce8]
mov byte [edx], al
mov eax, dword [0x47b254]
mov al, byte [eax]
mov edx, dword [0x4bdce8]
mov byte [edx + 1], al
mov eax, dword [0x47b578]
mov al, byte [eax]
mov edx, dword [0x4bdce8]
mov byte [edx + 2], al
mov edx, dword [0x47b530]
mov eax, dword [0x4bdce8]
add eax, 3
call fcn.0042257c
push 0
mov edx, dword [0x4bdce8]
mov ecx, 0x60
mov eax, 0x4bdcec
call fcn.00402f90
call fcn.00402874
test eax, eax
mov edx, 0x60
mov eax, dword [0x4bdce8]
call fcn.004026a8
mov eax, 0x4bdcec
call fcn.00402fb0
call fcn.00402874
test eax, eax
cmp byte [0x47abe0], 0
je 0x422ce8
lea eax, [ebp - 0x108]
push eax
push pe_nt_image_headers32
call sub.kernel32.dll_GetCurrentDirectoryA
lea edx, [ebp - 0x2b4]
lea eax, [ebp - 0x108]
call fcn.00409400
mov edx, dword [ebp - 0x2b4]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
xor eax, eax
mov al, byte [ebp - 0x208]
cmp byte [ebp + eax - 0x208], 0x5c
je 0x422bd3
lea eax, [ebp - 0x2b8]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x2b8]
mov edx, 0x422fe8
call fcn.00404ebc
mov edx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
mov eax, dword [0x47b5d8]
cmp byte [eax], 8
jbe 0x422c45
lea eax, [ebp - 0x2bc]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [0x47b5d8]
mov ecx, 8
mov edx, 1
call fcn.00402798
lea edx, [ebp - 0x2a0]
lea eax, [ebp - 0x2c0]
call fcn.00404e58
mov edx, dword [ebp - 0x2c0]
pop eax
call fcn.00404ebc
mov edx, dword [ebp - 0x2bc]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
jmp 0x422c90
lea eax, [ebp - 0x2c4]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2c8]
mov edx, dword [0x47b5d8]
call fcn.00404e58
mov edx, dword [ebp - 0x2c8]
pop eax
call fcn.00404ebc
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
lea eax, [ebp - 0x2cc]
lea edx, [ebp - 0x208]
call fcn.00404e58
lea eax, [ebp - 0x2cc]
mov edx, 0x423004
call fcn.00404ebc
mov edx, dword [ebp - 0x2cc]
lea eax, [ebp - 0x208]
mov ecx, 0xff
call fcn.00404e90
lea eax, [ebp - 0x2d0]
lea edx, [ebp - 0x208]
call fcn.00404e58
mov edx, dword [ebp - 0x2d0]
mov eax, 0x4bde48
call fcn.00402e0c
mov eax, 0x4bde48
call fcn.00402b90
call fcn.00402874
test eax, eax
jne 0x422fa3
xor ebx, ebx
jmp case.0x422d6a.5
lea edx, [ebp - 0x208]
mov ecx, 0xff
mov eax, 0x4bde48
call fcn.004033a8
mov eax, 0x4bde48
call fcn.004033b4
call fcn.00402874
test eax, eax
je 0x422d44
mov eax, 0x4bde48
call fcn.00402fb0
call fcn.00402874
test eax, eax
jmp 0x422fa3
inc ebx
lea esi, [ebx + ebx*2]
lea eax, [ebp + esi*2 - 0x286]
lea edx, [ebp - 0x208]
mov cl, 5
call fcn.00403044
mov eax, ebx
add eax, 0xfffffffc
cmp eax, 9
ja case.0x422d6a.5
jmp dword [eax*4 + 0x422d71]
mov eax, dword [0x47b1cc]
cmp byte [eax], 1
jne 0x422db2
mov word [ebp + esi*2 - 0x286], 0x3101
jmp case.0x422d6a.5
mov word [ebp + esi*2 - 0x286], 0x3001
jmp case.0x422d6a.5
lea eax, [ebp - 0x2d4]
mov edx, dword [0x47b1ec]
mov dl, byte [edx + 2]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x2d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
jmp case.0x422d6a.5
lea eax, [ebp - 0x2d4]
mov edx, dword [0x47b1ec]
mov dl, byte [edx + 3]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x2d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
jmp case.0x422d6a.5
lea edx, [ebp - 0x3d4]
mov eax, dword [0x47b490]
movzx eax, word [eax + 2]
call fcn.004035d0
lea edx, [ebp - 0x3d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
jmp case.0x422d6a.5
mov edi, dword [0x47b490]
mov di, word [edi]
test di, di
jne 0x422e67
mov word [ebp + esi*2 - 0x286], 0x3101
jmp case.0x422d6a.5
lea edx, [ebp - 0x3d4]
mov eax, dword [0x47b490]
movzx eax, di
call fcn.004035d0
lea edx, [ebp - 0x3d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
jmp case.0x422d6a.5
lea edx, [ebp - 0x3d4]
mov eax, dword [0x47b490]
movzx eax, word [eax + 6]
call fcn.004035d0
lea edx, [ebp - 0x3d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
jmp case.0x422d6a.5
mov edi, dword [0x47b490]
mov di, word [edi + 4]
test di, di
jne 0x422f08
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 4]
mov eax, dword [0x47b490]
movzx eax, word [eax + 6]
or edx, 0xffffffff
call fcn.004195c8
lea edx, [ebp - 0x3d4]
mov eax, dword [ebp - 8]
call fcn.004035d0
lea edx, [ebp - 0x3d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
jmp case.0x422d6a.5
lea edx, [ebp - 0x3d4]
mov eax, dword [0x47b490]
movzx eax, di
call fcn.004035d0
lea edx, [ebp - 0x3d4]
lea eax, [ebp + esi*2 - 0x286]
mov cl, 5
call fcn.00403044
mov eax, 0x4bde48
call fcn.004030ec
test al, al
je 0x422d06
mov eax, 0x4bde48
call fcn.00402fb0
call fcn.00402874
test eax, eax
mov esi, ebx
mov eax, 0x4bde48
call fcn.00402b9c
call fcn.00402874
test eax, eax
jne 0x422fa3
xor ebx, ebx
cmp ebx, esi
jge 0x422f92
inc ebx
lea eax, [ebx + ebx*2]
lea edx, [ebp + eax*2 - 0x286]
mov eax, 0x4bde48
call fcn.00403848
call fcn.00403854
call fcn.00402874
test eax, eax
cmp ebx, esi
jl 0x422f6d
mov eax, 0x4bde48
call fcn.00402fb0
call fcn.00402874
test eax, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x422fd8
lea eax, [ebp - 0x2d0]
mov edx, 0xc
call fcn.00404c18
lea eax, [ebp - 0x290]
mov edx, 4
call fcn.00404c18
ret