Function at 0x4239a9
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, ecx
mov word [esi + 0xa], bx
cmp word [0x452014], bx
mov dword [ebp - 8], edi
mov dword [ebp - 4], ebx
jne 0x4239d9
mov eax, 0x201
jmp 0x423d71
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp eax, ebx
je 0x4239e7
mov ebx, eax
jmp 0x4239ea
push 1
pop ebx
add edi, 4
lea eax, [ebp - 0x148]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x423a14
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x148]
and eax, 0x17
cmp al, 4
je 0x423a4f
cmp dword [ebp + 0x10], 0
je 0x423d3d
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
jne 0x423a2b
push 1
pop eax
sub eax, ebx
cmp eax, dword [ebp + 0x10]
jae 0x423d28
push dword [0x452c3e]
mov ecx, dword [ebp - 8]
call fcn.00423e72
test ax, ax
jne 0x423d10
jmp 0x4239ed
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
mov dword [ebp + 0x10], eax
jne 0x423a63
mov dword [ebp + 0x10], 1
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
push eax
push 4
push 3
push eax
push eax
mov eax, dword [ebp - 8]
add eax, 4
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x423ae6
lea eax, [ebp + 8]
push 0
push eax
push 0x820
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x423b45
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 8]
cmp ecx, 0x10
jb 0x423b64
cmp dword [esi], 0x3043464c
jne 0x423b7a
mov al, byte [esi + 4]
test al, 0xf
je 0x423b84
movzx eax, al
push eax
push str.SCH:_Received_comms_message_is_not_from_Scheduler__flow0x_02X____waiting
push dword [ebp + 0x18]
call fcn.0041e63d
add esp, 0xc
jmp 0x423b10
call ebx
mov edi, eax
mov eax, dword [ebp - 8]
add eax, 4
push eax
push edi
push str.SCH:_Error__u_trying_to_open_comms_message___s_
push dword [ebp + 0x18]
call fcn.0041e63d
add esp, 0x10
cmp edi, 5
je 0x423b10
cmp edi, 0x20
jne 0x423d00
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
jne 0x423b1d
push 1
pop eax
sub eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 0x14]
ja 0x423cf1
push dword [0x452c3a]
mov ecx, dword [ebp - 8]
call fcn.00423e72
test ax, ax
jne 0x423d09
jmp 0x423a69
call ebx
push eax
push str.SCH:_Error__u_trying_to_read_comms_message
push dword [ebp + 0x18]
call fcn.0041e63d
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x423d00
push ecx
push str.SCH:_Received_comms_message_header_is_too_short__only__u_bytes_
push dword [ebp + 0x18]
call fcn.0041e63d
add esp, 0xc
jmp 0x423ce8
push str.SCH:_Received_comms_message_header_is_invalid
jmp 0x423cde
mov edi, dword [ebp - 8]
movzx eax, byte [esi + 4]
mov dx, word [edi + 0x260]
neg dx
sbb edx, edx
and edx, 0xffffffd0
add edx, 0x40
cmp eax, edx
je 0x423ba9
push eax
push str.SCH:_Received_comms_message_is_not_intended_for_us__flow0x_02X_
jmp 0x423b6a
cmp byte [esi + 5], 0
lea eax, [ecx - 0x10]
mov word [esi + 0xa], ax
je 0x423c4e
mov ebx, dword [ebp + 0x18]
cmp ebx, dword [edi + 0x284]
je 0x423bd2
push str.SCH:_Received_unsolicited_message
push ebx
call fcn.0041e63d
pop ecx
pop ecx
mov ecx, dword [edi + 0x284]
call fcn.0041eaa4
movzx eax, word [esi + 0xa]
push eax
movzx eax, word [esi + 0xe]
push eax
push str.SCH:_Received_unsolicited_message__u__length__u
push dword [edi + 0x284]
call fcn.0041e63d
add esp, 0x10
cmp word [0x453498], 0
je 0x423c18
movzx eax, word [esi + 0xa]
mov ecx, dword [edi + 0x284]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.0041e766
mov ecx, dword [edi + 0x284]
call fcn.0041eaaf
cmp word [ebp + 0xc], 0
jne 0x423c3e
push str.SCH:_Unsolicited_message_received_in_place_of_expected_reply
push ebx
call fcn.0041e63d
pop ecx
mov dword [ebp - 4], 0x203
pop ecx
push esi
mov ecx, 0x454178
call fcn.0040d52c
jmp 0x423d44
mov cx, word [esi + 0xe]
test cx, cx
je 0x423ca3
movzx edi, cx
movzx eax, ax
cmp edi, 0x100
mov dword [ebp - 4], edi
push eax
jae 0x423c90
movzx eax, byte [esi + 0xc]
push eax
push edi
push str.SCH:_Received_error_response__error__u__locus__u___length__u
push dword [ebp + 0x18]
call fcn.0041e63d
movzx eax, byte [esi + 0xc]
or eax, 0xffffff80
add esp, 0x14
shl eax, 0x18
or edi, eax
mov dword [ebp - 4], edi
jmp 0x423cb7
push edi
push str.SCH:_Received_error_response__error__u___length__u
push dword [ebp + 0x18]
call fcn.0041e63d
add esp, 0x10
jmp 0x423cb7
movzx eax, ax
push eax
push str.SCH:_Received_success_response__length__u
push dword [ebp + 0x18]
call fcn.0041e63d
add esp, 0xc
cmp word [0x453498], 0
je 0x423cd2
movzx eax, word [esi + 0xa]
mov ecx, dword [ebp + 0x18]
add esi, 0x10
push eax
push esi
call fcn.0041e766
cmp word [ebp + 0xc], 0
je 0x423d44
push str.SCH:_Reply_message_was_unexpected___ignored
push dword [ebp + 0x18]
call fcn.0041e63d
pop ecx
pop ecx
mov dword [ebp - 4], 0x202
jmp 0x423d4d
push str.SCH:_Timeout_trying_to_open_comms_message
push dword [ebp + 0x18]
call fcn.0041e63d
pop ecx
pop ecx
mov dword [ebp - 4], 0x200
jmp 0x423d4d
push str.SCH:_Abandoning_trying_to_open_comms_message
jmp 0x423d15
push str.SCH:_Abandoning_waiting_for_message
push dword [ebp + 0x18]
call fcn.0041e63d
pop ecx
mov dword [ebp - 4], 0x201
pop ecx
jmp 0x423d58
cmp dword [ebp + 0x10], 0
je 0x423d3d
push str.SCH:_No_message_received
push dword [ebp + 0x18]
call fcn.0041e63d
pop ecx
pop ecx
mov dword [ebp - 4], 0x201
cmp dword [ebp - 4], 0x201
je 0x423d58
push dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
call fcn.00423d78
call dword [sym.imp.WINMM.dll_timeGetTime]
test eax, eax
jne 0x423d65
push 1
pop eax
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x278], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0x14