Function at 0x411c90
Capabilities:
Get common file path

Disassembly:
sub esp, 0x548
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x4a
xor eax, eax
lea edi, [esp + 0x430]
mov dword [esp + 0x42c], ebx
mov byte [esp + 0x11c], bl
rep stosd dword es:[edi], eax
mov ecx, 0x40
lea edi, [esp + 0x11d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x19]
mov byte [esp + 0x18], bl
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x560]
or ecx, 0xffffffff
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
jne 0x411d0b
lea eax, [esp + 0x11c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
jmp 0x411d22
push 0x104
lea ecx, [esp + 0x120]
push esi
push ecx
call dword [sym.imp.MSVCRT.dll__mbsnbcpy]
add esp, 0xc
mov al, byte [edi + esi - 1]
cmp al, 0x5c
je 0x411d36
cmp al, 0x2f
je 0x411d36
mov byte [esp + edi + 0x11c], 0x5c
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x220]
push edx
call fcn.00411ba0
mov edx, dword [esp + 0x55c]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 2
push ecx
push edx
lea ecx, [esp + 0x22c]
call fcn.00411a90
mov esi, eax
cmp esi, ebx
je 0x411d8e
push str.OpenZip_failed_n
push ebx
call fcn.00404a50
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x548
ret
lea eax, [esp + 0x10]
lea ecx, [esp + 0x220]
push eax
mov dword [esp + 0x14], ebx
call fcn.00411b10
mov ecx, dword [esp + 0x10]
mov ebp, eax
push ecx
push str.filecnt___d_n
push ebx
call fcn.00404a50
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, ebx
je 0x411f33
cmp ebp, ebx
jne 0x411f33
xor ecx, ecx
cmp eax, ebx
mov dword [esp + 0x14], ecx
jle 0x411f33
lea edx, [esp + 0x42c]
push edx
push ecx
lea ecx, [esp + 0x228]
call fcn.00411b50
mov ebp, eax
cmp ebp, ebx
jne 0x411f1e
lea eax, [esp + 0x430]
lea ecx, [esp + 0x11c]
push eax
push ecx
lea edx, [esp + 0x20]
push str._s_s
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x411e4d
cmp byte [esp + edx + 0x18], 0x2f
jne 0x411e3a
mov byte [esp + edx + 0x18], 0x5c
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jb 0x411e2e
test byte [esp + 0x534], 0x10
je 0x411eb1
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x329]
mov byte [esp + 0x328], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x18]
push 0x104
lea ecx, [esp + 0x32c]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsnbcpy]
add esp, 0xc
lea edx, [esp + 0x328]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea eax, [esp + 0x328]
push 0x41fc6c
push eax
call fcn.00411950
add esp, 8
jmp 0x411f1e
push ebx
push 0x80
push 2
push ebx
push 1
lea ecx, [esp + 0x2c]
push 0x40000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x411eef
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0x18]
push eax
push edx
push str.Create_file__s_failed_with_errcode___d_n
push ebx
call fcn.00404a50
add esp, 0x10
jmp 0x411f1e
mov eax, dword [esp + 0x14]
push esi
push eax
lea ecx, [esp + 0x228]
call fcn.00411c20
lea ecx, [esp + 0x18]
mov ebp, eax
push ecx
push ebp
push str.UnzipItemToFile_zr___d__s_n
push ebx
call fcn.00404a50
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x411dda
lea ecx, [esp + 0x220]
call fcn.00411c40
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x548
ret