Function at 0x43e9f0
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 0x43ecfa
movzx eax, byte [0x54e52c]
imul eax, eax, 0xd8
cmp dword [eax + edx + 0xf8], 0
je 0x43ecfa
cmp dword [eax + edx + 0x104], 0
je 0x43ecfa
push ebx
push edi
lea edi, [edx + 0xdc]
push 0x4ddcbc
push ecx
add edi, eax
call fcn.004893d7
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43ea79
push eax
push str.General_I_O_error_during_saving__Is_the_file_in_use_
push str.System_message
push eax
call fcn.00442210
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 0x43eab6
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 0x43eac0
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.0043e930
cmp byte [esp + 0x18], 0
mov eax, 0x31365356
mov edx, 0x38535658
mov ecx, ebx
cmovne edx, eax
call fcn.0043e980
push 0x14
mov edx, str.VHDR
mov ecx, ebx
call fcn.0043e930
add esp, 8
cmp byte [esp + 0x13], 0
jne 0x43eb1c
test byte [edi + 0x25], 3
je 0x43eb1c
mov edx, dword [edi + 0x2c]
mov ecx, esi
shl edx, cl
mov ecx, ebx
call fcn.0043e980
mov edx, dword [edi + 0x30]
mov ecx, esi
shl edx, cl
jmp 0x43eb27
xor edx, edx
mov ecx, ebx
call fcn.0043e980
xor edx, edx
mov ecx, ebx
call fcn.0043e980
xor edx, edx
mov ecx, ebx
call fcn.0043e980
movsx eax, byte [edi + 0x19]
add eax, 0x30
jns 0x43eb4a
movsd xmm0, qword [0x4e2c98]
jmp 0x43eb89
cmp eax, 0x77
jl 0x43eb59
movsd xmm0, qword [0x4e2c98]
jmp 0x43eb89
movsx ecx, byte [edi + 0x18]
inc eax
sar ecx, 3
shl eax, 4
add ecx, eax
cmp byte [0x789f67], 0
je 0x43eb79
movzx eax, word [ecx*2 + 0x4bf690]
jmp 0x43eb81
movzx eax, word [ecx*2 + 0x4c06b0]
movzx ecx, ax
call fcn.00432b60
addsd xmm0, qword [0x4e2b10]
cvttsd2si eax, xmm0
test eax, eax
je 0x43eba0
cmp eax, 0xffff
jbe 0x43eba5
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.0048a20c
push ebx
push 1
lea eax, [esp + 0x2c]
mov byte [esp + 0x2c], 1
push 1
push eax
call fcn.0048a20c
push ebx
push 1
lea eax, [esp + 0x40]
mov byte [esp + 0x40], 0
push 1
push eax
call fcn.0048a20c
movzx edx, byte [edi + 0x24]
add esp, 0x30
shl edx, 0xa
mov ecx, ebx
call fcn.0043e980
cmp byte [esp + 0x13], 0
je 0x43ec0e
mov dword [esp + 0x1c], str.Ranged_data_from_FT2
mov esi, 0x14
jmp 0x43ec30
mov dword [esp + 0x1c], edi
xor esi, esi
cmp byte [esi + edi], 0
je 0x43ec2c
cmp byte [esi + edi + 1], 0
je 0x43ec2b
add esi, 2
cmp esi, 0x16
jb 0x43ec14
jmp 0x43ec2c
inc esi
test esi, esi
je 0x43ec4c
push esi
mov edx, str.NAME
mov ecx, ebx
call fcn.0043e930
mov edx, dword [esp + 0x20]
mov ecx, ebx
push esi
call fcn.0043e9c0
add esp, 8
push 0x14
mov edx, str.ANNO
mov ecx, ebx
call fcn.0043e930
push ebx
push 0x14
push 1
push 0x4df17c
call fcn.0048a20c
mov ecx, dword [esp + 0x34]
mov edx, str.BODY
mov esi, dword [esp + 0x38]
shl esi, cl
mov ecx, ebx
push esi
call fcn.0043e930
push ebx
call fcn.00489c23
push esi
mov edx, ebp
mov dword [esp + 0x44], eax
mov ecx, ebx
call fcn.0043e9c0
push ebx
call fcn.00489c23
push 0
push 4
push ebx
mov esi, eax
call fcn.00489f05
lea edx, [esi - 8]
mov ecx, ebx
call fcn.0043e980
push ebx
call fcn.00489118
add esp, 0x34
test byte [edi + 0x25], 3
pop esi
pop ebp
je 0x43ecdd
mov eax, dword [edi + 0x30]
add eax, dword [edi + 0x2c]
cmp dword [edi + 0x28], eax
jle 0x43ecdd
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push edi
call fcn.0043e7d0
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.00442210
add esp, 0x10
xor al, al
add esp, 0x20
ret