Function at 0x4316a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2fc
mov eax, dword [0x4c3518]
xor eax, esp
mov dword [esp + 0x2f8], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov ebx, ecx
push 0x100
lea ecx, [esp + 0x184]
push ecx
mov edi, edx
lea edx, [esp + 0x30]
mov dword [esp + 0x1c], eax
push 0
push edx
mov eax, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], 0
call fcn.0047e4a1
mov esi, eax
add esp, 0x10
test esi, esi
je 0x43171d
push esi
push str.error__d_with_zipfile_in_unzGetCurrentFileInfo_n
call fcn.0048919b
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f8]
xor ecx, esp
call fcn.0048532c
mov esp, ebp
pop ebp
ret
push 0x2000
call fcn.004860e8
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x431759
push str.Error_allocating_memory_n
call fcn.0048919b
add esp, 4
mov eax, 0xffffff98
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f8]
xor ecx, esp
call fcn.0048532c
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x180]
mov dword [esp + 0x10], eax
mov ecx, eax
mov al, byte [esp + 0x180]
test al, al
je 0x431a78
cmp al, 0x2f
je 0x43177d
cmp al, 0x5c
jne 0x431784
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x431775
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x431a78
mov ecx, dword [ebp + 8]
cmp dword [ecx], 0
mov dword [esp + 0x24], 0
lea esi, [esp + 0x180]
je 0x4317b2
mov esi, eax
push 0x103
lea edx, [esp + 0x7d]
push 0
push edx
mov byte [esp + 0x84], 0
call fcn.0048ab30
add esp, 0xc
push edi
lea eax, [esp + 0x7c]
push 0x104
push eax
call fcn.0048a185
add esp, 0xc
push esi
lea ecx, [esp + 0x7c]
push 0x104
push ecx
call fcn.0048a185
add esp, 0xc
lea edi, [esp + 0x78]
call fcn.00431b60
mov eax, ebx
call fcn.0047e9e0
mov esi, eax
test esi, esi
je 0x431818
push esi
push str.error__d_with_zipfile_in_unzOpenCurrentFile_n
call fcn.0048919b
add esp, 8
mov edi, dword [esp + 0x14]
cmp dword [edi], 0
jne 0x4318c4
test esi, esi
jne 0x43196a
push 0x4b3954
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], esi
call fcn.00489148
add esp, 0xc
test eax, eax
jne 0x4318a3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4318a3
push eax
call fcn.00488244
add esp, 4
lea ecx, [ecx]
lea ecx, [esp + 0x78]
push ecx
push str.The_file__s_exist._Overwrite____y_es___n_o___A_ll:
call fcn.0048919b
lea edx, [esp + 0x288]
push edx
push 0x4b6658
call fcn.0048a6e4
mov al, byte [esp + 0x290]
add esp, 0x10
cmp al, 0x61
jl 0x431895
cmp al, 0x7a
jg 0x431895
sub al, 0x20
cmp al, 0x59
je 0x4318a7
cmp al, 0x4e
je 0x4318ab
cmp al, 0x41
jne 0x431860
jmp 0x4318a7
mov al, byte [esp + 0x1f]
cmp al, 0x4e
jne 0x4318b2
mov ecx, 1
jmp 0x4318b6
mov ecx, dword [esp + 0x24]
cmp al, 0x41
jne 0x4318c0
mov dword [edi], 1
test ecx, ecx
jmp 0x4318c6
test esi, esi
jne 0x43196a
push 0x4b5950
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.00489148
add esp, 0xc
test eax, eax
je 0x4318f1
mov dword [esp + 0xc], 0
jmp 0x4318fc
cmp dword [esp + 0xc], 0
jne 0x4319a3
mov edx, dword [ebp + 8]
cmp dword [edx], 0
jne 0x431958
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x180]
cmp eax, ecx
je 0x431958
mov bl, byte [eax - 1]
mov edi, eax
lea eax, [esp + 0x78]
mov byte [edi - 1], 0
call fcn.00431aa0
push 0x4b5950
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x14]
push eax
mov byte [edi - 1], bl
call fcn.00489148
add esp, 0xc
test eax, eax
je 0x43194d
mov dword [esp + 0xc], 0
jmp 0x431954
cmp dword [esp + 0xc], 0
jne 0x43199f
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x78]
push ecx
push str.error_opening__s_n
call fcn.0048919b
add esp, 8
cmp dword [esp + 0xc], 0
jne 0x4319a3
test esi, esi
jne 0x431a6f
push ebx
call fcn.0047ec46
mov esi, eax
add esp, 4
test esi, esi
je 0x431a78
push esi
push str.error__d_with_zipfile_in_unzCloseCurrentFile_n
call fcn.0048919b
add esp, 8
jmp 0x431a78
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x78]
push edx
push str._extracting:__s_n
call fcn.0048919b
add esp, 8
mov edi, dword [esp + 0x20]
push edi
mov ecx, 0x2000
mov eax, ebx
call fcn.0047eace
mov esi, eax
add esp, 4
test esi, esi
jl 0x431a5f
jle 0x4319fb
mov eax, dword [esp + 0xc]
push eax
push 1
push esi
push edi
call fcn.0048967f
add esp, 0x10
cmp eax, 1
je 0x4319b5
push str.error_in_writing_extracted_file_n
call fcn.0048919b
add esp, 4
or esi, 0xffffffff
mov ecx, dword [esp + 0xc]
push ecx
call fcn.00488244
add esp, 4
test esi, esi
jne 0x431a6f
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
sub esp, 0x18
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x84]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x88]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x14], ecx
push edx
lea eax, [esp + 0x94]
call fcn.00431bf0
add esp, 0x1c
jmp 0x431979
push esi
push str.error__d_with_zipfile_in_unzReadCurrentFile_n
call fcn.0048919b
add esp, 8
jmp 0x4319fb
push ebx
call fcn.0047ec46
add esp, 4
mov eax, dword [esp + 0x20]
push eax
call fcn.0048556b
mov ecx, dword [esp + 0x308]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.0048532c
mov esp, ebp
pop ebp
ret