Function at 0x421619
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a7e9e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x334
push esi
push edi
mov dword [ebp - 0x308], ecx
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], 0
mov ecx, dword [ebp - 0x308]
add ecx, 0x684
push ecx
lea ecx, [ebp - 0x178]
call fcn.00585936
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x174]
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x174]
mov eax, dword [edx + 4]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x16c]
xor edx, edx
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x78], ecx
mov dword [eax + 0x7c], edx
mov ecx, dword [ebp + 8]
add ecx, 9
push ecx
mov ecx, dword [ebp - 0x308]
add ecx, 0x74
call fcn.00425250
mov edx, dword [ebp - 0x308]
xor eax, eax
mov al, byte [edx + 0x94c]
test eax, eax
je 0x4218d7
mov byte [ebp - 0x280], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x27f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea ecx, [ebp - 0x280]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov ecx, dword [ebp - 0x308]
add ecx, 0x74
call fcn.00401260
push eax
call fcn.00426c50
add esp, 4
push eax
lea edx, [ebp - 0x280]
push edx
push str._u__z_n_v_flnd
mov eax, dword [ebp - 0x308]
add eax, 0x64
push eax
call fcn.0057e262
add esp, 0x10
push 4
lea ecx, [ebp - 0x17c]
push ecx
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.0057ddb5
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x17c]
call fcn.005860f5
push 0x60bbd8
lea edx, [ebp - 0x17c]
push edx
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x421833
push str._uz
lea eax, [ebp - 0x17c]
push eax
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x421833
push str.3lzG____vPE___
lea ecx, [ebp - 0x17c]
push ecx
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x421833
push 0x60bbf0
lea edx, [ebp - 0x17c]
push edx
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x421833
push 0x60bbf8
push 3
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x17c]
call fcn.0057ddb5
mov dword [ebp - 0x30c], eax
mov ecx, dword [ebp - 0x30c]
mov dword [ebp - 0x310], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x310]
push edx
call fcn.00403a00
mov byte [ebp - 0x2ec], al
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2f0]
call fcn.00585bc1
mov eax, dword [ebp - 0x2ec]
and eax, 0xff
test eax, eax
je 0x421848
push 0x60bbfc
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585f9d
jmp 0x4218c3
push 0x60bc04
lea ecx, [ebp - 0x17c]
push ecx
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x4218b0
push 0x60bc0c
lea edx, [ebp - 0x17c]
push edx
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x4218b0
push 0x60bc14
lea eax, [ebp - 0x17c]
push eax
call fcn.00403a00
and eax, 0xff
test eax, eax
jne 0x4218b0
push 0x60bc1c
lea ecx, [ebp - 0x17c]
push ecx
call fcn.00403a00
and eax, 0xff
test eax, eax
je 0x4218c3
push 0x60bc24
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585f9d
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x17c]
call fcn.00585bc1
jmp 0x421afc
mov ecx, dword [ebp - 0x308]
add ecx, 0x80c
call fcn.00425aa0
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x308]
add ecx, 0x70
call fcn.004039e0
test eax, eax
jne 0x421957
push 0x60bc2c
mov edx, dword [ebp - 0x308]
add edx, 0x70
push edx
lea eax, [ebp - 0x2f4]
push eax
call fcn.00585e56
mov dword [ebp - 0x314], eax
mov ecx, dword [ebp - 0x314]
mov dword [ebp - 0x318], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x318]
push edx
lea ecx, [ebp - 0x178]
call fcn.00585fd9
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f4]
call fcn.00585bc1
jmp 0x421a1a
cmp dword [ebp - 0x284], 0xffffffff
je 0x421a1a
mov eax, dword [ebp - 0x284]
push eax
mov ecx, dword [ebp - 0x308]
add ecx, 0x80c
call fcn.0057f10f
cmp eax, 1
jne 0x421a1a
push 0x60bc30
push 0
mov ecx, dword [ebp - 0x284]
push ecx
lea edx, [ebp - 0x2f8]
push edx
mov ecx, dword [ebp - 0x308]
add ecx, 0x80c
call fcn.0057f06a
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp - 0x31c]
mov dword [ebp - 0x320], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x320]
push ecx
lea edx, [ebp - 0x2fc]
push edx
call fcn.00585e56
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x324]
mov dword [ebp - 0x328], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x328]
push ecx
lea ecx, [ebp - 0x178]
call fcn.00585fd9
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2fc]
call fcn.00585bc1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2f8]
call fcn.00585bc1
mov ecx, dword [ebp - 0x308]
add ecx, 0x260
call fcn.00401260
push eax
mov ecx, dword [ebp - 0x308]
add ecx, 0x74
call fcn.0057df21
cmp eax, 0xffffffff
je 0x421a51
mov edx, dword [ebp - 0x308]
xor eax, eax
mov al, byte [edx + 0x94e]
test eax, eax
je 0x421ab8
mov ecx, dword [ebp - 0x308]
add ecx, 0x74
call fcn.00401260
push eax
call fcn.00426c50
add esp, 4
push eax
lea ecx, [ebp - 0x178]
push ecx
lea edx, [ebp - 0x300]
push edx
call fcn.00585e56
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp - 0x32c]
mov dword [ebp - 0x330], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x330]
push ecx
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585cfa
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x300]
call fcn.00585bc1
jmp 0x421afc
mov edx, dword [ebp - 0x308]
add edx, 0x74
push edx
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585cfa
lea ecx, [ebp - 0x178]
call fcn.00401260
push eax
mov ecx, dword [ebp - 0x308]
add ecx, 0x260
call fcn.00401260
push eax
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.0057db99
push 0
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585ff1
push eax
mov ecx, dword [ebp - 0x308]
call fcn.0042419c
lea eax, [ebp - 0x15c]
push eax
push 0
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585ff1
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x421c4c
mov ecx, dword [ebp - 0x308]
cmp dword [ecx + 0x6c], 4
je 0x421c4c
mov edx, dword [ebp - 0x308]
cmp dword [edx + 0x6c], 2
je 0x421c4c
mov eax, dword [ebp - 0x308]
cmp dword [eax + 0x6c], 6
je 0x421c4c
mov ecx, dword [ebp - 0x308]
push ecx
lea ecx, [ebp - 0x2e4]
call fcn.00425eb0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x308]
add edx, 0x64
push edx
lea ecx, [ebp - 0x288]
call fcn.00585cfa
lea ecx, [ebp - 0x2e4]
call fcn.0058182f
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x334]
sub eax, 0x3f4
mov dword [ebp - 0x334], eax
cmp dword [ebp - 0x334], 6
ja case.default.0x421bcf
mov ecx, dword [ebp - 0x334]
jmp dword [ecx*4 + 0x421f7e]
mov edx, dword [ebp - 0x308]
mov dword [edx + 0x6c], 3
jmp case.default.0x421bcf
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x6c], 4
jmp case.default.0x421bcf
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x6c], 1
jmp case.default.0x421bcf
mov edx, dword [ebp - 0x308]
mov dword [edx + 0x6c], 2
jmp case.default.0x421bcf
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x6c], 5
jmp case.default.0x421bcf
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x6c], 6
jmp case.default.0x421bcf
mov edx, dword [ebp - 0x308]
mov dword [edx + 0x6c], 7
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2e4]
call fcn.00425270
mov eax, dword [ebp - 0x308]
cmp dword [eax + 0x6c], 7
jne 0x421c84
mov ecx, dword [ebp - 0x308]
mov byte [ecx + 0x60], 1
mov ecx, dword [ebp - 0x308]
call fcn.0042253a
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.00585bc1
jmp 0x421f6c
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x6c]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 2
je 0x421cb9
cmp dword [ebp - 0x338], 4
je 0x421cb0
cmp dword [ebp - 0x338], 6
je 0x421cc2
jmp 0x421ccb
mov dword [ebp - 0x18], 3
jmp 0x421cd7
mov dword [ebp - 0x18], 1
jmp 0x421cd7
mov dword [ebp - 0x18], 5
jmp 0x421cd7
mov ecx, dword [ebp - 0x308]
mov edx, dword [ecx + 0x6c]
mov dword [ebp - 0x18], edx
push 9
push 0
lea eax, [ebp - 0x168]
push eax
call fcn.00459e80
add esp, 0xc
mov byte [ebp - 0x168], 7
cmp dword [ebp - 0x1c], 0xffffffff
je 0x421df8
cmp dword [ebp - 0x18], 1
jne 0x421d92
push 4
lea ecx, [ebp - 0x140]
push ecx
lea edx, [ebp - 0x167]
push edx
call fcn.00459fb0
add esp, 0xc
push 4
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x163]
push ecx
call fcn.00459fb0
add esp, 0xc
mov edx, dword [ebp - 0x308]
mov eax, dword [ebp - 0x308]
mov ecx, dword [edx + 0x80]
mov dword [eax + 0x80], ecx
mov edx, dword [edx + 0x84]
mov dword [eax + 0x84], edx
mov eax, dword [ebp - 0x308]
mov ecx, dword [ebp - 0x13c]
xor edx, edx
mov esi, dword [eax + 0x80]
add esi, ecx
mov eax, dword [eax + 0x84]
adc eax, edx
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x84], eax
mov dword [ebp - 0x14], 3
jmp 0x421df6
cmp dword [ebp - 0x18], 3
jne 0x421db4
push 8
push 0
lea edx, [ebp - 0x167]
push edx
call fcn.00459e80
add esp, 0xc
mov dword [ebp - 0x14], 2
jmp 0x421df6
cmp dword [ebp - 0x18], 5
jne 0x421df6
push 0x64
mov eax, dword [ebp - 0x308]
mov ecx, dword [eax + 0x67c]
call fcn.00425ad0
mov dword [ebp - 0x2e8], 0xffffffff
push 4
lea ecx, [ebp - 0x2e8]
push ecx
lea edx, [ebp - 0x163]
push edx
call fcn.00459fb0
add esp, 0xc
mov dword [ebp - 0x14], 3
jmp 0x421e12
push 8
push 0
lea eax, [ebp - 0x167]
push eax
call fcn.00459e80
add esp, 0xc
mov dword [ebp - 0x14], 2
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
push 0x80
mov edx, dword [ebp - 0x14]
push edx
push 0
push 2
push 0x40000000
push 0
mov ecx, dword [ebp - 0x308]
add ecx, 0x64
call fcn.00585ff1
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0xffffffff
jne 0x421eff
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x78], 0
mov dword [eax + 0x7c], 0
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x80], 0
mov dword [ecx + 0x84], 0
push 0x30
push 0x60bc34
push 0x60bc3c
mov edx, dword [ebp - 0x308]
add edx, 0x64
push edx
lea eax, [ebp - 0x304]
push eax
call fcn.00585e56
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x33c]
mov dword [ebp - 0x340], ecx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x340]
call fcn.00401260
push eax
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x1c]
push eax
call dword [0x623418]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x304]
call fcn.00585bc1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.00585bc1
jmp 0x421f6c
mov ecx, dword [ebp - 0x170]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x308]
call fcn.00422569
mov edx, dword [ebp - 0x308]
xor eax, eax
mov al, byte [edx + 0x60]
test eax, eax
je 0x421f33
mov ecx, dword [ebp - 0x308]
call fcn.0042253a
jmp 0x421f5a
push 9
lea ecx, [ebp - 0x168]
push ecx
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x670]
push eax
mov ecx, dword [ebp - 0x308]
mov ecx, dword [ecx + 0x674]
call fcn.0042aab2
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x178]
call fcn.00585bc1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4