Function at 0x43e830
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 0x43eb3a
movzx eax, byte [0x54e52c]
imul eax, eax, 0xd8
cmp dword [eax + edx + 0xf8], 0
je 0x43eb3a
cmp dword [eax + edx + 0x104], 0
je 0x43eb3a
push ebx
push edi
lea edi, [edx + 0xdc]
push 0x4ddc1c
push ecx
add edi, eax
call fcn.004891f7
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43e8b9
push eax
push str.General_I_O_error_during_saving__Is_the_file_in_use_
push str.System_message
push eax
call fcn.00442040
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 0x43e8f6
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 0x43e900
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.0043e770
cmp byte [esp + 0x18], 0
mov eax, 0x31365356
mov edx, 0x38535658
mov ecx, ebx
cmovne edx, eax
call fcn.0043e7c0
push 0x14
mov edx, str.VHDR
mov ecx, ebx
call fcn.0043e770
add esp, 8
cmp byte [esp + 0x13], 0
jne 0x43e95c
test byte [edi + 0x25], 3
je 0x43e95c
mov edx, dword [edi + 0x2c]
mov ecx, esi
shl edx, cl
mov ecx, ebx
call fcn.0043e7c0
mov edx, dword [edi + 0x30]
mov ecx, esi
shl edx, cl
jmp 0x43e967
xor edx, edx
mov ecx, ebx
call fcn.0043e7c0
xor edx, edx
mov ecx, ebx
call fcn.0043e7c0
xor edx, edx
mov ecx, ebx
call fcn.0043e7c0
movsx eax, byte [edi + 0x19]
add eax, 0x30
jns 0x43e98a
movsd xmm0, qword [0x4e2bf8]
jmp 0x43e9c9
cmp eax, 0x77
jl 0x43e999
movsd xmm0, qword [0x4e2bf8]
jmp 0x43e9c9
movsx ecx, byte [edi + 0x18]
inc eax
sar ecx, 3
shl eax, 4
add ecx, eax
cmp byte [0x789f67], 0
je 0x43e9b9
movzx eax, word [ecx*2 + 0x4bf5f0]
jmp 0x43e9c1
movzx eax, word [ecx*2 + 0x4c0610]
movzx ecx, ax
call fcn.00432a10
addsd xmm0, qword [0x4e2a70]
cvttsd2si eax, xmm0
test eax, eax
je 0x43e9e0
cmp eax, 0xffff
jbe 0x43e9e5
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.0048a02c
push ebx
push 1
lea eax, [esp + 0x2c]
mov byte [esp + 0x2c], 1
push 1
push eax
call fcn.0048a02c
push ebx
push 1
lea eax, [esp + 0x40]
mov byte [esp + 0x40], 0
push 1
push eax
call fcn.0048a02c
movzx edx, byte [edi + 0x24]
add esp, 0x30
shl edx, 0xa
mov ecx, ebx
call fcn.0043e7c0
cmp byte [esp + 0x13], 0
je 0x43ea4e
mov dword [esp + 0x1c], str.Ranged_data_from_FT2
mov esi, 0x14
jmp 0x43ea70
mov dword [esp + 0x1c], edi
xor esi, esi
cmp byte [esi + edi], 0
je 0x43ea6c
cmp byte [esi + edi + 1], 0
je 0x43ea6b
add esi, 2
cmp esi, 0x16
jb 0x43ea54
jmp 0x43ea6c
inc esi
test esi, esi
je 0x43ea8c
push esi
mov edx, str.NAME
mov ecx, ebx
call fcn.0043e770
mov edx, dword [esp + 0x20]
mov ecx, ebx
push esi
call fcn.0043e800
add esp, 8
push 0x14
mov edx, str.ANNO
mov ecx, ebx
call fcn.0043e770
push ebx
push 0x14
push 1
push 0x4df0dc
call fcn.0048a02c
mov ecx, dword [esp + 0x34]
mov edx, str.BODY
mov esi, dword [esp + 0x38]
shl esi, cl
mov ecx, ebx
push esi
call fcn.0043e770
push ebx
call fcn.00489a43
push esi
mov edx, ebp
mov dword [esp + 0x44], eax
mov ecx, ebx
call fcn.0043e800
push ebx
call fcn.00489a43
push 0
push 4
push ebx
mov esi, eax
call fcn.00489d25
lea edx, [esi - 8]
mov ecx, ebx
call fcn.0043e7c0
push ebx
call fcn.00488f38
add esp, 0x34
test byte [edi + 0x25], 3
pop esi
pop ebp
je 0x43eb1d
mov eax, dword [edi + 0x30]
add eax, dword [edi + 0x2c]
cmp dword [edi + 0x28], eax
jle 0x43eb1d
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push edi
call fcn.0043e610
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.00442040
add esp, 0x10
xor al, al
add esp, 0x20
ret