Function at 0x409c10
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
mov ebx, dword [esp + 0x60]
mov ebp, dword [ebx + 0x344]
add ebp, dword [ebx + 0x2c]
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call edi
sub esp, 4
mov esi, eax
test eax, 0x8000000
je 0x409c42
or dword [ebx + 0x7c], 2
test esi, 0x20000
jne 0x409c88
test esi, esi
js 0x409d90
test esi, 0x44000000
je 0x409c76
mov edx, esi
and edx, 0x4000000
test esi, 0x40000000
jne 0x409e68
test edx, edx
jne 0x409dbf
add esp, 0x4c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [ebp + 4]
mov esi, dword [ebx + 0x344]
add esi, dword [ebx + 0x2c]
mov dword [esp], eax
call edi
mov dword [ebx + 0x378], eax
mov eax, dword [ebp + 8]
sub esp, 4
mov dword [esp], eax
call edi
mov dword [ebx + 0x37c], eax
mov eax, dword [esi + 0x14]
sub esp, 4
mov dword [esp], eax
call edi
mov dword [ebx + 0x368], eax
mov eax, dword [esi + 0x18]
sub esp, 4
mov dword [esp], eax
call edi
mov dword [ebx + 0x36c], eax
mov eax, dword [ebp]
sub esp, 4
mov dword [esp], eax
call edi
mov esi, eax
mov eax, dword [ebx + 0x368]
sub esp, 4
test eax, eax
jle 0x409cf3
or dword [ebx + 0x7c], 0x200
cmp esi, 1
jne 0x409e30
lea eax, [esp + 0x38]
mov dword [esp], 0
mov dword [esp + 4], eax
call sym._clock_gettime
mov eax, dword [ebx + 0x7c]
mov esi, dword [esp + 0x38]
test ah, 2
jne 0x409d70
mov edi, dword [ebx + 0x378]
mov ecx, esi
sub ecx, edi
mov edx, ecx
neg edx
cmovs edx, ecx
cmp edx, 0x259
jle 0x409d70
mov dword [esp], 1
call dword [0x459154]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x258
mov dword [esp + 4], str.WARN:_ignore___trip_times_because_client_didnt_provide_valid_start_timestamp_within__d_seconds_of_now__now_ld_send_ld__n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov eax, dword [ebx + 0x7c]
and ah, 0xdf
jmp 0x409d73
or ah, 0x20
mov dword [ebx + 0x7c], eax
mov eax, 1
or dword [ebx + 0x78], 0x2000000
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call edi
mov edx, esi
sub esp, 4
and edx, 0x4000000
test eax, eax
js 0x409f88
test edx, edx
je 0x409fa8
test esi, 0x40000000
jne 0x409e60
movzx eax, word [ebp + 0x30]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_htons]
sub esp, 4
test ah, 8
je 0x409ddb
or dword [ebx + 0x7c], 0xc0000
test ah, 4
je 0x409c76
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebx + 0x38]
mov dword [ebx + 0x84], 2
or eax, 0x40000
mov dword [ebx + 0x7c], eax
test edx, edx
je 0x409e13
mov eax, dword [edx + 0x18]
or dword [eax + 0x10], 0x40000
mov dword [eax], 2
mov eax, dword [ebx + 0x7c]
or eax, 0x200000
and dword [ebx + 0x78], 0xffffdfff
mov dword [ebx + 0x7c], eax
jmp 0x409c76
mov dword [esp], 2
call dword [0x459154]
mov dword [esp + 8], esi
mov dword [esp + 4], str.WARN:_first_received_packet__id_d__was_not_first_sent_packet__report_start_time_will_be_off_n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x409cfc
mov edx, 0x4000000
lea esi, [esi]
movzx eax, word [ebp + 0x30]
mov dword [esp + 0x2c], edx
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, eax
movzx eax, word [ebp + 0x3e]
sub esp, 4
mov dword [esp + 0x28], ecx
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
sub esp, 4
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0x34]
mov dword [esp], eax
call edi
mov dword [ebx + 0x394], eax
mov eax, dword [ebp + 0x38]
sub esp, 4
mov dword [esp], eax
call edi
sub esp, 4
and esi, 0x20000000
mov dword [ebx + 0x398], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
je 0x409efc
test cl, 1
je 0x409ed3
or dword [ebx + 0x7c], 8
mov eax, dword [ebx + 0x78]
mov esi, eax
and eax, 0xfffffff7
or esi, 8
test cl, 2
cmovne eax, esi
mov dword [ebx + 0x78], eax
test cl, 4
je 0x409ef3
or dword [ebx + 0x7c], 0x100
test cl, 8
jne 0x409fd0
test ch, 0x10
jne 0x40a000
and ecx, 0x10
je 0x409c6e
mov eax, dword [ebp + 0x70]
mov dword [esp + 0x28], edx
mov dword [esp], eax
call edi
mov dword [ebx + 0x378], eax
mov eax, dword [ebp + 0x74]
sub esp, 4
mov dword [esp], eax
call edi
sub esp, 4
mov dword [ebx + 0x37c], eax
lea eax, [esp + 0x38]
mov dword [esp], 0
mov dword [esp + 4], eax
call sym._clock_gettime
mov eax, dword [ebx + 0x7c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
test ah, 2
jne 0x409f71
sub ecx, dword [ebx + 0x378]
mov esi, ecx
neg esi
cmovns ecx, esi
cmp ecx, 0x259
jg 0x40a0a9
or ah, 0x20
or dword [ebx + 0x78], 0x2000000
mov dword [ebx + 0x7c], eax
jmp 0x409c6e
or dword [ebx + 0x80], 0x800000
shr eax, 0x14
and eax, 0x7ff
mov dword [ebx + 0x5c], eax
jmp 0x409c62
mov eax, esi
and eax, 0x40000000
test esi, 1
je 0x409fe0
mov dword [ebx + 0x8c], 1
test eax, eax
je 0x409c76
jmp 0x409e68
or dword [ebx + 0x7c], 0x200000
jmp 0x409efc
mov dword [ebx + 0x8c], 2
test eax, eax
je 0x409c76
jmp 0x409e68
mov eax, dword [ebp + 0x70]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
mov dword [esp], eax
call edi
mov dword [ebx + 0x368], eax
mov eax, dword [ebp + 0x74]
sub esp, 4
mov dword [esp], eax
call edi
sub esp, 4
mov dword [ebx + 0x36c], eax
lea eax, [esp + 0x38]
mov dword [esp], 0
mov dword [esp + 4], eax
call sym._clock_gettime
mov eax, dword [esp + 0x38]
sub eax, dword [ebx + 0x368]
mov esi, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
neg esi
cmovns eax, esi
cmp eax, 0xe11
jg 0x40a070
or dword [ebx + 0x7c], 0x200
jmp 0x409f05
mov dword [esp], 1
call dword [0x459154]
mov dword [esp + 8], 0xe10
mov dword [esp + 4], str.WARN:_ignore___txstart_time_because_client_didnt_provide_valid_start_timestamp_within__d_seconds_of_now_n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
and dword [ebx + 0x7c], 0xfffffdff
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x409f05
mov dword [esp + 0x28], edx
mov dword [esp], 1
call dword [0x459154]
mov dword [esp + 8], 0x258
mov dword [esp + 4], 0x45a728
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
and dword [ebx + 0x7c], 0xffffdfff
mov edx, dword [esp + 0x28]
jmp 0x409c6e