Function at 0x40a3d0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x1f4
mov eax, dword [0x42c400]
xor eax, esp
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x1fc]
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x20], eax
push edi
lea eax, [esp + 0x7c]
lea esi, [esp + 0x2c]
mov dword [esp + 0x14], edi
call fcn.0040da30
mov esi, eax
add esp, 4
test esi, esi
je 0x40a423
push esi
push str.error__d_with_zipfile_in_unzGetCurrentFileInfo_n
call fcn.004159ac
add esp, 8
jmp 0x40a6e2
push 0x2000
call fcn.00414831
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x40a44f
push str.Error_allocating_memory_n
call fcn.004159ac
add esp, 4
mov eax, 0xffffff98
jmp 0x40a6e4
mov al, byte [esp + 0x78]
test al, al
lea ebx, [esp + 0x78]
mov dword [esp + 0x18], ebx
mov ecx, ebx
je 0x40a480
cmp al, 0x2f
je 0x40a469
cmp al, 0x5c
jne 0x40a472
lea edx, [ecx + 1]
mov dword [esp + 0x18], edx
mov ebx, edx
mov al, byte [ecx + 1]
add ecx, 1
test al, al
jne 0x40a461
cmp byte [ebx], al
jne 0x40a4b4
mov eax, dword [esp + 0x208]
cmp dword [eax], 0
jne 0x40a6d5
lea ecx, [esp + 0x78]
push ecx
push str.creating_directory:__s_n
call fcn.004159ac
lea edx, [esp + 0x80]
push edx
call fcn.004221cf
add esp, 0xc
jmp 0x40a6d5
mov eax, dword [esp + 0x208]
cmp dword [eax], 0
mov dword [esp + 0x24], 0
lea ebp, [esp + 0x78]
je 0x40a4ce
mov ebp, ebx
push edi
call fcn.0040de90
mov esi, eax
add esp, 4
test esi, esi
je 0x40a4eb
push esi
push str.error__d_with_zipfile_in_unzOpenCurrentFile_n
call fcn.004159ac
add esp, 8
mov ecx, dword [esp + 0x20]
cmp dword [ecx], 0
jne 0x40a58a
test esi, esi
jne 0x40a6ce
push 0x4262b8
push ebp
call fcn.00413bf6
add esp, 8
test eax, eax
je 0x40a55f
push eax
call fcn.00413ab6
add esp, 4
jmp 0x40a520
push ebp
push str.The_file__s_exist._Overwrite____y_es___n_o___A_ll:
call fcn.004159ac
lea edx, [esp + 0x180]
push edx
push 0x4263a4
call fcn.004158e5
mov al, byte [esp + 0x188]
add esp, 0x10
cmp al, 0x61
jl 0x40a551
cmp al, 0x7a
jg 0x40a551
sub al, 0x20
cmp al, 0x59
je 0x40a563
cmp al, 0x4e
je 0x40a567
cmp al, 0x41
jne 0x40a520
jmp 0x40a563
mov al, byte [esp + 0x17]
cmp al, 0x4e
jne 0x40a56e
mov ecx, 1
jmp 0x40a572
mov ecx, dword [esp + 0x24]
cmp al, 0x41
jne 0x40a580
mov eax, dword [esp + 0x20]
mov dword [eax], 1
test ecx, ecx
jne 0x40a69a
jmp 0x40a592
test esi, esi
jne 0x40a6ce
push 0x42609c
push ebp
call fcn.00413bf6
mov edi, eax
add esp, 8
test edi, edi
jne 0x40a5f4
mov ecx, dword [esp + 0x208]
cmp dword [ecx], eax
jne 0x40a5dd
lea edx, [esp + 0x78]
cmp ebx, edx
je 0x40a5dd
mov bl, byte [ebx - 1]
mov esi, dword [esp + 0x18]
mov edi, ebp
mov byte [esi - 1], al
call fcn.0040a2f0
push 0x42609c
push ebp
mov byte [esi - 1], bl
call fcn.00413bf6
add esp, 8
mov edi, eax
test edi, edi
jne 0x40a5f4
push ebp
push str.error_opening__s_n
call fcn.004159ac
add esp, 8
jmp 0x40a696
push ebp
push str._extracting:__s_n
call fcn.004159ac
add esp, 8
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push ebx
call fcn.0040e060
mov esi, eax
add esp, 4
test esi, esi
jl 0x40a6b7
jle 0x40a641
push edi
push 1
push esi
push ebx
call fcn.004153c5
add esp, 0x10
cmp eax, 1
je 0x40a602
push str.error_in_writing_extracted_file_n
call fcn.004159ac
add esp, 4
or esi, 0xffffffff
push edi
call fcn.00413ab6
add esp, 4
test esi, esi
jne 0x40a6ca
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
sub esp, 0x18
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x14], edx
mov eax, ebp
call fcn.0040a270
add esp, 0x18
mov edi, dword [esp + 0x10]
mov ebx, edi
call fcn.0040e310
mov esi, eax
test esi, esi
je 0x40a6d5
push esi
push str.error__d_with_zipfile_in_unzCloseCurrentFile_n
call fcn.004159ac
add esp, 8
jmp 0x40a6d5
push esi
push str.error__d_with_zipfile_in_unzReadCurrentFile_n
call fcn.004159ac
add esp, 8
jmp 0x40a641
mov edi, dword [esp + 0x10]
mov ebx, edi
call fcn.0040e310
mov eax, dword [esp + 0x1c]
push eax
call fcn.0041336e
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x1fc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041310b
add esp, 0x1f4
ret