Function at 0x423602
Capabilities:
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x828
push ebx
xor ebx, ebx
cmp word [0x452014], bx
push esi
mov esi, ecx
mov dword [ebp - 4], 0x200
jne 0x423628
xor eax, eax
jmp 0x423942
push edi
mov edi, dword [ebp + 0x1c]
mov ecx, edi
call fcn.0041eaa4
movzx eax, word [ebp + 8]
push dword [ebp + 0x10]
push eax
push str.SCH:_Send_message__u__length__u
push edi
call fcn.0041e63d
add esp, 0x10
cmp word [0x453498], bx
je 0x42365f
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
call fcn.0041e766
mov ecx, edi
call fcn.0041eaaf
cmp word [esi + 0x260], bx
sete al
dec eax
and al, 0xfd
add eax, 4
inc word [esi + 0x28e]
cmp dword [ebp + 0x10], ebx
mov byte [esi + 0x28c], al
mov ax, word [ebp + 8]
mov word [esi + 0x296], ax
je 0x4236a8
push dword [ebp + 0x10]
lea eax, [esi + 0x298]
push dword [ebp + 0xc]
push eax
call fcn.0042b2e0
add esp, 0xc
add dword [ebp + 0x10], 0x10
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp eax, ebx
mov dword [ebp + 0xc], eax
jne 0x4236c0
mov dword [ebp + 0xc], 1
cmp word [esi + 0x274], bx
jne 0x423998
cmp word [esi + 0x264], bx
je 0x4236ee
cmp word [ebp + 8], 0x1e
jne 0x423998
cmp word [esi + 0x260], bx
je 0x423998
cmp word [esi + 0x260], bx
jne 0x423701
push dword [ebp + 0x1c]
mov ecx, esi
call fcn.00423fac
push ebx
push 4
push 1
push ebx
lea edi, [esi + 4]
push ebx
push 0xc0000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4237d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push edi
mov edi, dword [ebp + 0x1c]
push ebx
push str.SCH:_Error__u_trying_to_create_comms_message___s_
push edi
call fcn.0041e63d
mov eax, ebx
add esp, 0x10
dec eax
dec eax
je 0x423762
sub eax, 3
je 0x423758
sub eax, 0x1b
je 0x423785
sub eax, 0x30
jne 0x42393e
jmp 0x423762
cmp word [0x452e30], 0
je 0x423785
cmp word [esi + 0x260], 0
je 0x423785
push edi
lea eax, [ebp - 0x828]
push dword [0x452c2a]
mov ecx, esi
push 0
push 1
push eax
call fcn.004239a9
xor ebx, ebx
cmp dword [ebp + 0x18], ebx
je 0x42393e
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp eax, ebx
jne 0x42379d
push 1
pop eax
sub eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x18]
ja 0x42398c
push dword [0x452c3a]
mov ecx, esi
call fcn.00423e72
test ax, ax
jne 0x423984
cmp word [esi + 0x274], bx
jne 0x423998
xor ebx, ebx
jmp 0x4236cd
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 8]
push 0
push eax
lea eax, [esi + 0x288]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x423960
cmp dword [ebp - 8], edi
jne 0x423960
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
mov dword [ebp + 8], eax
jne 0x423817
mov dword [ebp + 8], 1
mov eax, dword [ebp + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea edi, [esi + 4]
push 2
mov dword [esi + 0x278], eax
push edi
call ebx
test eax, eax
jne 0x42388e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
push eax
push str.SCH:_Error__u_setting_attribute_of_comms_message___s_
mov dword [ebp + 0x10], eax
push dword [ebp + 0x1c]
call fcn.0041e63d
add esp, 0x10
cmp dword [ebp + 0x10], 5
jne 0x42390a
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
jne 0x423864
push 1
pop eax
sub eax, dword [ebp + 8]
cmp eax, dword [0x452c06]
ja 0x423948
push dword [0x452c3a]
mov ecx, esi
call fcn.00423e72
test ax, ax
jne 0x423959
push 2
push edi
jmp 0x42382c
mov edi, dword [ebp + 0x14]
xor ebx, ebx
cmp edi, ebx
jne 0x4238ab
push str.SCH:_Sent_successfully__no_reply
push dword [ebp + 0x1c]
call fcn.0041e63d
pop ecx
mov dword [ebp - 4], ebx
pop ecx
jmp 0x42391a
push dword [ebp + 0x1c]
mov ecx, esi
push dword [0x452c0e]
push dword [0x452c0a]
push ebx
push edi
call fcn.004239a9
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x4238dc
cmp eax, 0x203
jne 0x423901
cmp word [0x45459e], bx
jne 0x42393e
jmp 0x4238ab
mov ax, word [edi + 6]
cmp ax, word [esi + 0x28e]
je 0x423914
push str.SCH:_Reply_message_ID_is_incorrect
push dword [ebp + 0x1c]
call fcn.0041e63d
pop ecx
mov dword [ebp - 4], 0x202
pop ecx
jmp 0x42393e
cmp dword [ebp - 4], 0x201
jne 0x423914
push dword [ebp + 0x1c]
mov ecx, esi
call fcn.00423d78
cmp dword [ebp - 4], 0
jne 0x42393e
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
jne 0x423927
push 1
pop eax
mov dword [esi + 0x27c], eax
mov dword [esi + 0x278], eax
mov eax, dword [0x452c32]
mov dword [esi + 0x280], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0x18
push str.SCH:_Timeout_trying_to_set_message_attributes
push dword [ebp + 0x1c]
call fcn.0041e63d
pop ecx
pop ecx
jmp 0x42390a
push str.SCH:_Abandoning_trying_to_set_message_attributes
jmp 0x42399d
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SCH:_Error__u_writing_to_comms_file___s_
push dword [ebp + 0x1c]
call fcn.0041e63d
add esp, 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x42390a
push str.SCH:_Abandoning_trying_to_create_comms_message
push edi
jmp 0x4239a0
cmp dword [ebp + 0x18], ebx
je 0x42393e
push str.SCH:_Timeout_trying_to_create_comms_message
jmp 0x423989
push str.SCH:_Skip_sending_message
push dword [ebp + 0x1c]
call fcn.0041e63d
pop ecx
pop ecx
jmp 0x42393e