Function at 0x43ea90
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x20
mov al, byte [0x51d9c6]
mov byte [esp + 3], al
movzx eax, byte [0x54e52a]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax*4 + 0x54ed40]
test edx, edx
je 0x43ed9a
movzx eax, byte [0x54e52c]
imul eax, eax, 0xd8
cmp dword [eax + edx + 0xf8], 0
je 0x43ed9a
cmp dword [eax + edx + 0x104], 0
je 0x43ed9a
push ebx
push edi
lea edi, [edx + 0xdc]
push 0x4ddc2c
push ecx
add edi, eax
call fcn.00489507
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43eb19
push eax
push str.General_I_O_error_during_saving__Is_the_file_in_use_
push str.System_message
push eax
call fcn.004422b0
add esp, 0x10
xor al, al
pop edi
pop ebx
add esp, 0x20
ret
mov al, byte [edi + 0x25]
shr al, 4
and al, 1
cmp byte [esp + 0xb], 0
push ebp
push esi
movzx esi, al
mov byte [esp + 0x14], al
mov dword [esp + 0x20], esi
je 0x43eb56
mov ebp, dword [0x4edf3c]
mov ecx, esi
mov esi, dword [0x4edf40]
shl ebp, cl
add ebp, dword [edi + 0x1c]
sub esi, dword [0x4edf3c]
mov dword [esp + 0x24], esi
mov esi, ecx
jmp 0x43eb60
mov eax, dword [edi + 0x28]
mov ebp, dword [edi + 0x1c]
mov dword [esp + 0x24], eax
push 0
mov edx, str.FORM
mov ecx, ebx
call fcn.0043e9d0
cmp byte [esp + 0x18], 0
mov eax, 0x31365356
mov edx, 0x38535658
mov ecx, ebx
cmovne edx, eax
call fcn.0043ea20
push 0x14
mov edx, str.VHDR
mov ecx, ebx
call fcn.0043e9d0
add esp, 8
cmp byte [esp + 0x13], 0
jne 0x43ebbc
test byte [edi + 0x25], 3
je 0x43ebbc
mov edx, dword [edi + 0x2c]
mov ecx, esi
shl edx, cl
mov ecx, ebx
call fcn.0043ea20
mov edx, dword [edi + 0x30]
mov ecx, esi
shl edx, cl
jmp 0x43ebc7
xor edx, edx
mov ecx, ebx
call fcn.0043ea20
xor edx, edx
mov ecx, ebx
call fcn.0043ea20
xor edx, edx
mov ecx, ebx
call fcn.0043ea20
movsx eax, byte [edi + 0x19]
add eax, 0x30
jns 0x43ebea
movsd xmm0, qword [0x4e2c38]
jmp 0x43ec29
cmp eax, 0x77
jl 0x43ebf9
movsd xmm0, qword [0x4e2c38]
jmp 0x43ec29
movsx ecx, byte [edi + 0x18]
inc eax
sar ecx, 3
shl eax, 4
add ecx, eax
cmp byte [0x789f67], 0
je 0x43ec19
movzx eax, word [ecx*2 + 0x4bf600]
jmp 0x43ec21
movzx eax, word [ecx*2 + 0x4c0620]
movzx ecx, ax
call fcn.00432bf0
addsd xmm0, qword [0x4e2ad0]
cvttsd2si eax, xmm0
test eax, eax
je 0x43ec40
cmp eax, 0xffff
jbe 0x43ec45
mov eax, 0x4156
rol ax, 8
push ebx
movzx eax, ax
push 1
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push 2
push eax
call fcn.0048a33c
push ebx
push 1
lea eax, [esp + 0x2c]
mov byte [esp + 0x2c], 1
push 1
push eax
call fcn.0048a33c
push ebx
push 1
lea eax, [esp + 0x40]
mov byte [esp + 0x40], 0
push 1
push eax
call fcn.0048a33c
movzx edx, byte [edi + 0x24]
add esp, 0x30
shl edx, 0xa
mov ecx, ebx
call fcn.0043ea20
cmp byte [esp + 0x13], 0
je 0x43ecae
mov dword [esp + 0x1c], str.Ranged_data_from_FT2
mov esi, 0x14
jmp 0x43ecd0
mov dword [esp + 0x1c], edi
xor esi, esi
cmp byte [esi + edi], 0
je 0x43eccc
cmp byte [esi + edi + 1], 0
je 0x43eccb
add esi, 2
cmp esi, 0x16
jb 0x43ecb4
jmp 0x43eccc
inc esi
test esi, esi
je 0x43ecec
push esi
mov edx, str.NAME
mov ecx, ebx
call fcn.0043e9d0
mov edx, dword [esp + 0x20]
mov ecx, ebx
push esi
call fcn.0043ea60
add esp, 8
push 0x14
mov edx, str.ANNO
mov ecx, ebx
call fcn.0043e9d0
push ebx
push 0x14
push 1
push 0x4df12c
call fcn.0048a33c
mov ecx, dword [esp + 0x34]
mov edx, str.BODY
mov esi, dword [esp + 0x38]
shl esi, cl
mov ecx, ebx
push esi
call fcn.0043e9d0
push ebx
call fcn.00489d53
push esi
mov edx, ebp
mov dword [esp + 0x44], eax
mov ecx, ebx
call fcn.0043ea60
push ebx
call fcn.00489d53
push 0
push 4
push ebx
mov esi, eax
call fcn.0048a035
lea edx, [esi - 8]
mov ecx, ebx
call fcn.0043ea20
push ebx
call fcn.00489248
add esp, 0x34
test byte [edi + 0x25], 3
pop esi
pop ebp
je 0x43ed7d
mov eax, dword [edi + 0x30]
add eax, dword [edi + 0x2c]
cmp dword [edi + 0x28], eax
jle 0x43ed7d
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push edi
call fcn.0043e870
add esp, 4
mov byte [0x54e4e0], 1
mov al, 1
pop edi
mov byte [0x54e620], 0
mov byte [0x54e621], 1
pop ebx
add esp, 0x20
ret
push 0
push str.The_sample_is_empty_
push str.System_message
push 0
call fcn.004422b0
add esp, 0x10
xor al, al
add esp, 0x20
ret