Function at 0x100045e0
Capabilities:
Create directory
Timestomp file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x10079040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
sub esp, 0x10
mov eax, ecx
mov ebx, edx
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x11c], ebx
lea edx, [ebp - 0x218]
mov dword [ebp - 0x138], eax
push 0x100
push ecx
push 0
mov ecx, eax
call fcn.10005c20
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x10004651
push esi
push str.error__d_with_zipfile_in_unzGetCurrentFileInfo_n
call fcn.100045b0
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10033290
mov esp, ebp
pop ebp
ret
push 0x2000
call fcn.1003c0d5
add esp, 4
mov dword [ebp - 0x13c], eax
test eax, eax
jne 0x1000468b
push str.Error_allocating_memory_n
call fcn.100045b0
add esp, 4
mov eax, 0xffffff98
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10033290
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x108]
lea edx, [ebp - 0x108]
mov dword [ebp - 0x114], edx
mov ecx, edx
test al, al
je 0x100046c1
cmp al, 0x2f
je 0x100046ae
cmp al, 0x5c
je 0x100046ae
inc ecx
jmp 0x100046b3
lea edx, [ecx + 1]
mov ecx, edx
mov al, byte [ecx]
test al, al
jne 0x100046a3
mov al, byte [edx]
mov dword [ebp - 0x114], edx
mov ecx, dword [ebx]
test al, al
jne 0x100046f4
test ecx, ecx
jne 0x10004a54
lea eax, [ebp - 0x108]
push eax
push str.creating_directory:__s_n
call fcn.100045b0
lea eax, [ebp - 0x108]
push eax
call fcn.10042027
add esp, 0xc
jmp 0x10004a54
test ecx, ecx
lea eax, [ebp - 0x108]
mov ecx, dword [ebp - 0x138]
cmovne eax, edx
sub esp, 0xc
mov dword [ebp - 0x10c], eax
call fcn.10006330
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1000472a
push esi
push str.error__d_with_zipfile_in_unzOpenCurrentFilePassword_n
call fcn.100045b0
add esp, 8
cmp dword [edi], 0
jne 0x100047b6
test esi, esi
jne 0x100047b6
push 0x100700d0
push dword [ebp - 0x10c]
xor bl, bl
call fcn.1003b586
add esp, 8
test eax, eax
je 0x100047a1
push eax
call fcn.1003b709
add esp, 4
nop dword [eax]
push 0x7f
lea eax, [ebp - 0x1bf]
mov byte [ebp - 0x1c0], 0x41
push 0
push eax
call fcn.10037990
mov dl, byte [ebp - 0x1c0]
add esp, 0xc
lea eax, [edx - 0x20]
lea ecx, [edx - 0x61]
movzx ebx, al
cmp cl, 0x19
movzx eax, dl
cmova ebx, eax
cmp bl, 0x59
je 0x100047a1
cmp bl, 0x4e
je 0x100047a1
cmp bl, 0x41
jne 0x10004760
xor eax, eax
cmp bl, 0x4e
sete al
cmp bl, 0x41
jne 0x100047b8
mov dword [edi], 1
jmp 0x100047c0
xor eax, eax
test esi, esi
jne 0x10004a49
test eax, eax
jne 0x10004a28
mov ebx, dword [ebp - 0x10c]
push 0x100700d8
push ebx
call fcn.1003b586
mov edi, eax
add esp, 8
test edi, edi
jne 0x10004929
mov eax, dword [ebp - 0x11c]
cmp dword [eax], edi
jne 0x10004916
mov eax, dword [ebp - 0x114]
lea ecx, [ebp - 0x108]
cmp eax, ecx
je 0x10004916
mov cl, byte [eax - 1]
mov esi, ebx
mov byte [ebp - 0x131], cl
mov byte [eax - 1], 0
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10004820
sub esi, ecx
je 0x100048f3
xor ecx, ecx
mov eax, esi
add eax, 1
setb cl
neg ecx
or ecx, eax
push ecx
call fcn.1003c0d5
mov edi, eax
add esp, 4
test edi, edi
jne 0x1000485b
push str.Error_allocating_memory_n
call fcn.100045b0
jmp 0x100048f0
mov edx, edi
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x10004861
cmp byte [edi + esi - 1], 0x2f
jne 0x10004876
mov byte [edi + esi - 1], al
push edi
call fcn.10042027
add esp, 4
test eax, eax
je 0x100048ea
lea esi, [edi + 1]
mov bl, byte [esi]
test bl, bl
je 0x100048a4
mov al, bl
nop
mov bl, al
cmp al, 0x5c
je 0x100048a4
cmp al, 0x2f
je 0x100048a4
mov bl, byte [esi + 1]
inc esi
mov al, bl
test bl, bl
jne 0x10004890
push edi
mov byte [esi], 0
call fcn.10042027
add esp, 4
cmp eax, 0xffffffff
jne 0x100048bf
call fcn.10041f45
cmp dword [eax], 2
je 0x100048c8
test bl, bl
je 0x100048e4
mov byte [esi], bl
inc esi
jmp 0x10004886
push edi
push str.couldnt_create_directory__s_n
call fcn.100045b0
push edi
call fcn.1003c0ba
mov ebx, dword [ebp - 0x10c]
add esp, 0xc
jmp 0x100048f3
mov ebx, dword [ebp - 0x10c]
push edi
call fcn.1003c0ba
add esp, 4
mov eax, dword [ebp - 0x114]
mov cl, byte [ebp - 0x131]
push 0x100700d8
push ebx
mov byte [eax - 1], cl
call fcn.1003b586
mov edi, eax
add esp, 8
test edi, edi
jne 0x10004929
push ebx
push str.error_opening__s_n
call fcn.100045b0
add esp, 8
jmp 0x10004a28
push ebx
push str._extracting:__s_n
call fcn.100045b0
add esp, 8
nop word [eax + eax]
mov edx, dword [ebp - 0x13c]
push ecx
mov ecx, dword [ebp - 0x138]
call fcn.10006550
mov esi, eax
add esp, 4
test esi, esi
js 0x10004986
jle 0x10004994
push edi
push 1
push esi
push dword [ebp - 0x13c]
call fcn.1003bd5f
add esp, 0x10
cmp eax, 1
je 0x10004940
push str.error_in_writing_extracted_file_n
call fcn.100045b0
add esp, 4
or esi, 0xffffffff
jmp 0x10004994
push esi
push str.error__d_with_zipfile_in_unzReadCurrentFile_n
call fcn.100045b0
add esp, 8
test edi, edi
je 0x100049a1
push edi
call fcn.1003b709
add esp, 4
test esi, esi
jne 0x10004a49
push esi
push esi
push 3
push esi
push esi
push 0xc0000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x130]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
lea eax, [ebp - 0x118]
push eax
mov eax, dword [ebp - 0x208]
push eax
shr eax, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x120]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x138]
call fcn.10006820
mov esi, eax
test esi, esi
je 0x10004a54
push esi
push str.error__d_with_zipfile_in_unzCloseCurrentFile_n
call fcn.100045b0
add esp, 8
jmp 0x10004a54
mov ecx, dword [ebp - 0x138]
call fcn.10006820
push dword [ebp - 0x13c]
call fcn.1003c0ba
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.10033290
mov esp, ebp
pop ebp
ret