Function at 0x408036
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x423410]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x41d965
push 2
mov dword [ebp - 0x114], edi
call fcn.0040f658
xor ebx, ebx
mov esi, 0x4037c0
push esi
push 2
mov dword [0x4f12d4], ebx
mov dword [0x4f12d8], ebx
mov dword [0x4f12dc], ebx
mov dword [0x4f12e0], ebx
mov dword [0x4f12e4], ebx
call fcn.0040e7a8
push esi
push 0xf
call fcn.0040e7a8
push esi
push 0x16
call fcn.0040e7a8
push esi
push 0x15
call fcn.0040e7a8
push esi
push 4
call fcn.0040e7a8
push esi
push 0xb
call fcn.0040e7a8
mov eax, dword [edi]
add esp, 0x38
mov dword [0x4f1084], eax
call fcn.0040845d
mov dword [0x4f108c], eax
lea eax, [ebp - 0x108]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
dec eax
cmp eax, 0x102
ja 0x40810a
mov esi, 0x4f14a0
push esi
push ebx
push 0x41e4f4
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push esi
mov dword [0x424f80], esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 8]
push eax
mov dword [0x424f88], ebx
call fcn.0040796a
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
cmp ecx, ebx
jl 0x4083a6
cmp eax, ebx
jne 0x4083a6
mov esi, dword [ebp - 0x114]
mov dword [0x425048], esi
mov edi, ecx
cmp ecx, ebx
jle 0x40817a
mov eax, dword [0x425048]
mov eax, dword [eax]
cmp byte [eax], bl
je 0x40816e
cmp byte [eax], 0x5c
jne 0x40815a
mov byte [eax], 0x2f
push eax
call fcn.0040acb0
pop ecx
cmp byte [eax], bl
jne 0x408152
mov esi, dword [ebp - 0x114]
mov ecx, dword [ebp + 8]
add dword [0x425048], 4
dec edi
cmp edi, ebx
jg 0x408147
mov dword [0x425008], ecx
mov dword [0x42500c], ebx
cmp ecx, ebx
jle 0x408350
mov dword [0x425010], ebx
mov dword [0x425048], esi
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x118], ebx
cmp dword [esi], ebx
je 0x40835a
lea edi, [esi + 4]
mov dword [ebp - 0x10c], 4
push 2
push 0x41e4f0
push dword [esi]
call fcn.0040e5ea
add esp, 0xc
test eax, eax
jne 0x408279
mov eax, dword [esi]
xor ecx, ecx
cmp esi, dword [ebp - 0x114]
sete cl
add eax, 2
mov dword [0x424f80], eax
cmp dword [ebp - 0x110], ebx
je 0x40820b
mov dword [esi], ebx
mov eax, esi
sub eax, dword [0x425048]
mov dword [ebp - 0x110], ebx
sar eax, 2
mov dword [0x425008], eax
jmp 0x408225
cmp dword [ebp - 0x118], ebx
je 0x408225
mov dword [esi], ebx
mov eax, esi
sub eax, dword [0x42504c]
sar eax, 2
mov dword [0x42500c], eax
mov eax, dword [0x424f80]
cmp byte [eax], bl
jne 0x40824a
add dword [ebp - 0x10c], 4
add esi, 4
mov eax, dword [esi]
add edi, 4
cmp eax, ebx
je 0x408314
mov dword [0x424f80], eax
cmp ecx, ebx
je 0x4082fd
cmp dword [edi], ebx
je 0x408340
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp + 8]
sar eax, 2
sub ecx, eax
mov dword [0x425048], edi
mov dword [0x425008], ecx
jmp 0x4082fd
cmp dword [ebp - 0x118], ebx
jne 0x4082fd
push 0x41e4ec
push dword [esi]
call fcn.0040b400
pop ecx
pop ecx
test eax, eax
jne 0x4082f3
mov dword [ebp - 0x118], 1
cmp esi, dword [0x425048]
jne 0x4082b7
mov dword [0x425048], 0x423014
mov dword [0x425008], ebx
jmp 0x4082d7
cmp dword [ebp - 0x110], ebx
je 0x4082d7
mov dword [esi], ebx
mov eax, esi
sub eax, dword [0x425048]
mov dword [ebp - 0x110], ebx
sar eax, 2
mov dword [0x425008], eax
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp + 8]
sar eax, 2
sub ecx, eax
mov dword [0x42504c], edi
mov dword [0x42500c], ecx
jmp 0x4082fd
mov dword [ebp - 0x110], 1
add dword [ebp - 0x10c], 4
add esi, 4
add edi, 4
cmp dword [esi], ebx
jne 0x4081bb
jmp 0x40835a
push 0x401
push str.error:__must_specify_directory_to_which_to_extract_with__d_option_n
mov esi, 0x4e5064
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push 0x424f80
call dword [0x4f1380]
add esp, 0x10
push 0xa
pop esi
jmp 0x4083a8
mov dword [0x425048], 0x423014
mov dword [0x425008], ebx
mov dword [0x425010], 1
cmp dword [0x424f80], ebx
je 0x408391
cmp dword [0x42501c], ebx
jne 0x408391
push 0x401
push str.caution:__not_extracting___d_ignored_n
mov esi, 0x4e5064
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push 0x424f80
call dword [0x4f1380]
add esp, 0x10
xor eax, eax
inc eax
cmp dword [0x424fd4], eax
jne 0x4083a1
mov dword [0x4f12d4], eax
call fcn.0040775f
mov esi, eax
push 0x4f14a0
call fcn.0040982d
pop ecx
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040da8f
leave
ret