Function at 0x4349d0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
test ebx, ebx
je 0x434e20
movzx eax, byte [esi]
cmp al, 0x80
je 0x434a83
test al, al
js 0x434a21
test edx, edx
jne 0x434aa3
xor eax, eax
xor edx, edx
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
test al, 0x40
je 0x434ac0
test edx, edx
je 0x434a83
cmp al, 0xa0
je 0x434b08
jbe 0x434bf1
cmp al, 0xc1
je 0x434ed0
jbe 0x434b30
cmp al, 0xe0
je 0x434e90
cmp al, 0xe1
jne 0x434a15
test ecx, ecx
jne 0x434a15
test byte [esi + 1], 1
jne 0x434a15
mov dword [esp + 0x88], str.Vendor_allocation_dirent_is_missing_the_AllocationPossible_flag.
mov dword [esp + 0x84], 9
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x18]
jmp 0x434a9a
mov eax, dword [ebx]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 4]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp eax
mov eax, dword [ebx]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0xc]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp eax
test edx, edx
jne 0x434aa3
cmp al, 0x85
je 0x434c09
ja 0x434b00
lea edx, [eax + 0x7f]
cmp dl, 2
ja 0x434f10
cmp edi, 1
je 0x434a15
mov eax, dword [ebx]
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], eax
mov dword [esp + 0x80], esi
jmp 0x434a97
cmp al, 0xa0
jne 0x434f10
cmp byte [esi + 1], 0
je 0x434a15
mov eax, dword [ebx]
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 8]
jmp 0x434aaf
cmp al, 0xc0
jne 0x434a15
test ecx, ecx
jne 0x434a15
test byte [esi + 1], 1
jne 0x434b68
mov dword [esp + 8], str.Expected_stream_record_to_have_a_set_allocation_flag.
mov dword [esp + 4], 1
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0x18]
mov ecx, edx
or ecx, eax
jne 0x434a19
cmp byte [esi + 3], 0
jne 0x434b90
mov dword [esp + 8], str.Stream_record_specifies_0_length_filename.
mov dword [esp + 4], 2
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0x18]
mov edi, edx
or edi, eax
jne 0x434a19
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 8]
cmp dword [esi + 0x18], edi
sbb eax, dword [esi + 0xc]
jae 0x434bc0
mov dword [esp + 8], str.Stream_record_has_a_valid_data_length_larger_than_its_file_size.
mov dword [esp + 4], 3
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0x18]
mov ecx, edx
or ecx, eax
jne 0x434a19
cmp dword [esi + 0x14], 1
jne 0x434a15
mov dword [esp + 0x88], str.Invalid_value_1_for_first_cluster_of_file.
mov dword [esp + 0x84], 4
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x18]
jmp 0x434a9a
cmp al, 0x81
jb 0x434a15
cmp al, 0x83
jbe 0x434ada
cmp al, 0x85
jne 0x434a15
test ecx, ecx
jne 0x434a15
lea edx, [esi + 0xc]
lea edi, [esi + 0x14]
mov dword [esp + 0x50], 0
xor ebp, ebp
mov dword [esp + 0x40], edx
lea edx, [esi + 0x15]
lea eax, [esi + 8]
mov ecx, ebx
mov dword [esp + 0x4c], edx
lea edx, [esi + 0x17]
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], edi
lea edi, [esi + 0x16]
mov dword [esp + 0x58], edx
lea edx, [esi + 0x10]
add esi, 0x18
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x5c], esi
movzx edi, word [eax]
movzx esi, word [eax + 2]
mov ebx, edi
lea eax, [edi + edi]
mov edx, esi
shr esi, 5
shr ebx, 5
and edx, 0x1f
and eax, 0x3e
shr di, 0xb
and ebx, 0x3f
mov byte [esp + 0x20], dl
and esi, 0xf
cmp al, 0x3a
jbe 0x434cd0
movzx eax, al
mov edx, dword [ebp*4 + 0x539060]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebp*4 + 0x539034]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], str.Invalid_value__u_for_seconds_in__s_time.
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp], eax
call dword [ecx + 0x10]
mov ecx, edx
or ecx, eax
mov ecx, dword [esp + 0x24]
jne 0x434a19
cmp bl, 0x3b
jbe 0x434d1c
mov eax, dword [ebp*4 + 0x539060]
movzx ebx, bl
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov eax, dword [ebp*4 + 0x539034]
mov dword [esp + 0xc], str.Invalid_value__u_for_minutes_in__s_time.
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp], eax
call dword [ecx + 0x10]
mov ecx, edx
or ecx, eax
mov ecx, dword [esp + 0x24]
jne 0x434a19
cmp di, 0x17
jbe 0x434d69
mov eax, dword [ebp*4 + 0x539060]
movzx edi, di
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp*4 + 0x539034]
mov dword [esp + 0xc], str.Invalid_value__u_for_hours_in__s_time.
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp], eax
call dword [ecx + 0x10]
mov ecx, dword [esp + 0x24]
mov edi, edx
or edi, eax
jne 0x434a19
cmp byte [esp + 0x20], 0
jne 0x434db8
mov eax, dword [ebp*4 + 0x539060]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.Invalid_value__u_for_day_in__s_time.
mov dword [esp + 0x14], eax
mov eax, dword [ebp*4 + 0x539034]
mov dword [esp + 8], 8
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp + 0x20], ecx
mov dword [esp], eax
call dword [ecx + 0x10]
mov ecx, dword [esp + 0x20]
mov edi, edx
or edi, eax
jne 0x434a19
lea eax, [esi - 1]
cmp al, 0xb
jbe 0x434e08
mov eax, dword [ebp*4 + 0x539060]
mov dword [esp + 0xc], str.Invalid_value__u_for_month_in__s_time.
mov dword [esp + 8], 0x20
mov dword [esp + 0x14], eax
mov eax, esi
movzx esi, al
mov eax, dword [ebp*4 + 0x539034]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp], eax
call dword [ecx + 0x10]
mov ecx, dword [esp + 0x20]
mov edi, edx
or edi, eax
jne 0x434a19
add ebp, 1
cmp ebp, 3
je 0x434f31
mov eax, dword [esp + ebp*4 + 0x3c]
jmp 0x434c5d
mov ebx, dword [fcn.004a1b90]
mov dword [esp], 2
call ebx
mov dword [esp + 8], 0x537cc0
mov dword [esp + 4], 0x5389f4
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x537cf5
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, 0x16
xor edx, edx
jmp 0x434a19
test ecx, ecx
jne 0x434a15
movzx eax, byte [esi + 1]
test al, 1
je 0x43501f
mov dword [esp + 0x88], str.Vendor_extension_dirent_has_AllocationPossible_flag_set.
mov dword [esp + 0x84], 7
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x18]
jmp 0x434a9a
test ecx, ecx
jne 0x434a15
movzx eax, byte [esi + 1]
test al, 1
je 0x434ff0
mov dword [esp + 0x88], str.Expected_name_record_to_have_a_cleared_allocation_flag.
mov dword [esp + 0x84], 5
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x18]
jmp 0x434a9a
test al, 0x20
jne 0x434a15
mov eax, dword [ebx]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
jmp 0x434af7
mov eax, dword [esp + 0x28]
mov ebx, ecx
xor esi, esi
test eax, eax
je 0x434f80
movzx eax, byte [eax]
cmp al, 0xc7
jbe 0x434f80
mov dword [esp + 0x10], eax
mov edx, dword [esi*4 + 0x539060]
mov eax, dword [esi*4 + 0x539034]
mov dword [esp + 0xc], str.Invalid_csec_value__u_in__s_time.
mov dword [esp + 0x14], edx
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0x10]
mov edi, edx
or edi, eax
jne 0x434a19
add esi, 1
cmp esi, 3
je 0x434f92
mov eax, dword [esp + esi*4 + 0x48]
test eax, eax
jne 0x434f3d
jmp 0x434f80
mov eax, dword [esp + 0x2c]
xor esi, esi
movzx eax, byte [eax]
test al, al
jg 0x434fb6
add esi, 1
cmp esi, 3
je 0x434a15
mov eax, dword [esp + esi*4 + 0x54]
movzx eax, byte [eax]
test al, al
jle 0x434f9f
mov dword [esp + 0x10], eax
mov eax, dword [esi*4 + 0x539060]
mov dword [esp + 8], str.Invalid__s_time_zone_has_non_0_value__u.
mov dword [esp + 0xc], eax
mov eax, dword [esi*4 + 0x539034]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call dword [ebx + 0x14]
mov edi, edx
or edi, eax
je 0x434f9f
jmp 0x434a19
test al, 2
je 0x434a15
mov dword [esp + 0x88], str.Expected_name_record_to_have_a_cleared_continguous_flag.
mov dword [esp + 0x84], 6
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x18]
jmp 0x434a9a
test al, 2
je 0x434a15
mov dword [esp + 0x88], str.Vendor_extension_dirent_has_NoFatChain_flag_set.
mov dword [esp + 0x84], 8
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x18]
jmp 0x434a9a