Function at 0x405d42
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov eax, 0x11cc
mov ebp, esp
push edi
push esi
push ebx
call fcn.00416f84
sub esp, eax
lea eax, [ebp - 0x116c]
lea esi, [ebp - 0x1018]
mov dword [ebp - 0x1168], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x1160]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1164], 0
mov dword [ebp - 0x116c], 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x800
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_recvfrom]
sub esp, 0x18
mov ebx, eax
test eax, eax
jns 0x405e3b
mov edi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call edi
cmp eax, 0x2746
je 0x407907
mov edx, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x117c], edx
call edx
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov edx, dword [ebp - 0x117c]
mov esi, eax
call edx
mov dword [esp + 0x18], esi
mov eax, dword [eax]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.recvfrom___failed__d_errno__d___s_
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0x6cb
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 0
call sym._traceEvent
call edi
mov dword [esp + 0xc], str.WSAGetLastError__:__u
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x6cd
jmp 0x4063c3
movzx eax, word [ebp - 0x115e]
mov byte [ebp - 0x113c], 2
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [ebp - 0x113a], ax
mov eax, dword [ebp - 0x115c]
push edx
mov dword [ebp - 0x1138], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x170]
lea eax, [ebp - 0x113c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str._Rx_N2N_UDP___d__from__s
mov dword [esp + 8], 0x6e0
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x405f4d
mov word [ebp - 0x818], 0
lea eax, [ebp - 0x818]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1168]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
add eax, 0x64
mov dword [esp + 8], eax
movzx eax, bx
mov dword [esp + 4], eax
call sym._packet_header_decrypt
test eax, eax
jne 0x405f23
mov dword [esp + 0xc], str.readFromIPSocket_failed_to_decrypt_header.
mov dword [esp + 8], 0x6e8
jmp 0x4070ea
mov dword [esp + 4], ebx
mov dword [esp], esi
call sym._pearson_hash_16
cmp ax, word [ebp - 0x818]
je 0x405f4d
mov dword [esp + 0xc], str.readFromIPSocket_dropped_packet_due_to_checksum_error.
mov dword [esp + 8], 0x6f1
jmp 0x4070ea
lea eax, [ebp - 0x1170]
mov dword [ebp - 0x1174], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1174]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1150]
mov dword [esp], eax
mov dword [ebp - 0x1170], 0
call sym._decode_common
test eax, eax
jns 0x405fbc
cmp edi, dword [ebp + 0xc]
jne 0x405fa7
mov dword [esp + 0xc], str.dropped_packet_arriving_via_multicast_due_to_error_while_decoding_N2N_UDP
mov dword [esp + 8], 0x6fe
jmp 0x4070ea
mov dword [esp + 0xc], str.failed_to_decode_common_section_in_N2N_UDP
mov dword [esp + 8], 0x700
jmp 0x40730a
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov dword [esp + 8], 0x10
mov dl, byte [ebp - 0x114f]
mov dword [ebp - 0x1180], eax
mov al, byte [ebp - 0x114e]
mov byte [ebp - 0x1184], dl
and eax, 0x20
mov byte [ebp - 0x117c], al
mov eax, dword [ebp + 8]
add eax, 0x64
mov dword [esp + 4], eax
lea eax, [ebp - 0x114c]
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x4072f1
movzx edx, byte [ebp - 0x1184]
lea eax, [edx - 1]
cmp al, 8
ja case.0x406027.1
movzx eax, al
jmp dword [eax*4 + 0x4292b0]
lea eax, [ebp - 0x1170]
lea edi, [ebp - 0x10c4]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1174]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1150]
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._decode_PACKET
mov eax, dword [ebp + 8]
movzx esi, byte [ebp - 0x117c]
cmp byte [eax + 0x74], 2
jne 0x4060b4
mov eax, dword [ebp - 0x1168]
mov edx, dword [ebp - 0x1164]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], edx
mov dword [esp], eax
call sym._find_peer_time_stamp_and_verify
test eax, eax
jne 0x4060b4
mov dword [esp + 0xc], str.readFromIPSocket_dropped_PACKET_due_to_time_stamp_error.
mov dword [esp + 8], 0x715
jmp 0x4070ea
cmp byte [ebp - 0x117c], 0
jne 0x40614b
mov dword [esp + 0xc], str.Got_P2P_packet
lea edi, [ebp - 0x113c]
mov dword [esp + 8], 0x720
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
lea eax, [ebp - 0x1098]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._P2P__Rx_data_from__s___u_B_
mov dword [esp + 8], 0x721
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
lea eax, [ebp - 0x10c4]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
add eax, 0x17c
mov dword [esp], eax
call sym._find_and_remove_peer
mov dword [ebp - 0x1180], edi
jmp 0x4061c7
lea edi, [ebp - 0x10b8]
mov eax, edi
call sym._is_valid_peer_sock
mov edx, eax
lea eax, [ebp - 0x113c]
test edx, edx
mov dword [esp + 4], eax
cmove edi, eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
mov dword [ebp - 0x1180], edi
call sym._sock_to_cstr
mov edi, eax
mov eax, dword [ebp - 0x1180]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1058]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._PsP__Rx_data_from__s__Via_s____u_B_
mov dword [esp + 8], 0x72a
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov eax, dword [ebp - 0x1180]
mov dword [esp + 4], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x10c4]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._check_peer_registration_needed
mov esi, dword [ebp - 0x1170]
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov dword [esp + 0xc], str.handle_PACKET_size__u_transform__u
mov edi, eax
movzx eax, word [ebp - 0x10a4]
sub ebx, esi
mov dword [esp + 8], 0x402
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
cmp byte [ebp - 0x117c], 0
je 0x406271
lea eax, [ebp - 0x10be]
mov dword [esp], eax
call sym._is_multi_broadcast
test al, al
je 0x406260
mov eax, dword [ebp + 8]
inc dword [eax + 0x1a4]
mov eax, dword [ebp + 8]
inc dword [eax + 0x19c]
mov dword [eax + 0x188], edi
jmp 0x406280
mov eax, dword [ebp + 8]
inc dword [eax + 0x194]
mov dword [eax + 0x184], edi
mov eax, dword [ebp + 8]
mov dx, word [ebp - 0x10a2]
movzx edi, word [ebp - 0x10a4]
cmp edi, dword [eax + 0x80]
mov dword [ebp - 0x117c], edx
lea eax, [ebp - 0x10c4]
jne 0x4065ec
mov dword [esp + 0x14], eax
lea eax, [ebp + esi - 0x1018]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x818]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], ebx
add eax, 0xf4
mov dword [esp + 8], 0x800
mov dword [esp], eax
mov eax, dword [ebp + 8]
call dword [eax + 0x114]
mov edx, dword [ebp - 0x117c]
mov ebx, eax
mov eax, dword [ebp + 8]
inc dword [eax + 0x104]
test dl, dl
je 0x4063dc
cmp dl, 1
jne 0x4063a4
mov dword [esp], 0x800
lea edi, [ebp - 0x818]
call sym._malloc
mov dword [esp + 4], ebx
mov edx, eax
lea eax, [ebp - 0x1108]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x818]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [ebp - 0x117c], edx
call sym._lzo1x_decompress
mov dword [esp], 1
call sym._compression_str
mov ecx, dword [ebp - 0x1108]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], str.payload_decompression___s_:_deflated__u_bytes_to__u_bytes
mov dword [esp + 8], 0x446
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov edx, dword [ebp - 0x117c]
mov ebx, dword [ebp - 0x1108]
mov esi, edx
mov ecx, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], edx
call sym._free
jmp 0x4063dc
movzx edx, dl
mov dword [esp], edx
call sym._compression_str
mov dword [esp + 0xc], str.payload_decompression_failed:_received_packet_indicating_unsupported__s_compression.
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x440
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 0
call sym._traceEvent
jmp 0x407907
cmp ebx, 0xd
jbe 0x406406
lea eax, [ebp - 0x10e8]
mov ecx, 0xe
lea esi, [ebp - 0x818]
mov edi, eax
mov eax, 1
rep movsb byte es:[edi], byte [esi]
cmp word [ebp - 0x10e8], 0x3333
je 0x40641b
mov edx, ebx
lea eax, [ebp - 0x818]
call sym._is_ethMulticast
test eax, eax
setne al
movzx eax, al
mov ecx, dword [ebp + 8]
mov edx, eax
cmp byte [ecx + 0x8a], 0
je 0x406442
test eax, eax
je 0x406442
mov dword [esp + 0xc], str.Dropping_RX_multicast
mov dword [esp + 8], 0x450
jmp 0x40732b
mov eax, dword [ebp + 8]
or dl, byte [eax + 0x89]
jne 0x406535
movzx eax, word [ebp - 0x80c]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
push edi
cmp ax, 0x800
jne 0x406535
cmp ebx, 0x21
jbe 0x406535
lea eax, [ebp - 0x818]
mov dword [esp + 8], 6
mov dword [esp + 4], 0x429764
mov dword [esp], eax
call sym._memcmp
mov edx, eax
mov eax, dword [ebp - 0x7fa]
test edx, edx
jne 0x4064ed
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohl]
lea edx, [ebp - 0x10e8]
push esi
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._intoa
mov dword [esp + 0xc], str.Broadcast_packet___s_
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x45a
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
jmp 0x406535
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0xe8]
je 0x406535
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohl]
lea edx, [ebp - 0x10e8]
push ecx
mov dword [esp + 8], 0x20
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._intoa
mov dword [esp + 0xc], str.Discarding_routed_packet___s_
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x45e
jmp 0x4072b5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x124]
test eax, eax
je 0x4065a1
lea ecx, [ebp - 0x818]
mov edi, dword [ebp - 0x1180]
lea edx, [ebp - 0x1128]
mov word [ebp - 0x1128], bx
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 4], edi
mov dword [esp], ecx
call eax
dec eax
jne 0x40659a
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.DROP_packet__u
mov dword [esp + 8], 0x46b
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
jmp 0x4063d2
movzx ebx, word [ebp - 0x1128]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.sending_to_TAP__u
mov dword [esp + 8], 0x473
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
lea eax, [ebp - 0x818]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
add eax, 0xac
mov dword [esp], eax
call sym._tuntap_write
jmp 0x407907
mov dword [esp + 4], eax
lea eax, [ebp - 0x10e8]
mov dword [esp], eax
call sym._macaddr_str
mov esi, eax
mov eax, dword [ebp - 0x1180]
mov dword [esp + 4], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp], edi
mov ebx, eax
call sym._transop_str
mov ecx, eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x80]
mov dword [esp], edx
mov dword [ebp - 0x117c], edx
call sym._transop_str
mov edx, dword [ebp - 0x117c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.invalid_transop_ID:_expected__s__u___got__s__u__from__s___s_
mov dword [esp + 8], 0x47d
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 0
call sym._traceEvent
jmp 0x407907
lea eax, [ebp - 0x1170]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1174]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1150]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10c4]
mov dword [esp], eax
call sym._decode_REGISTER
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x40670e
mov eax, dword [ebp - 0x1168]
mov edx, dword [ebp - 0x1164]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10c0]
mov dword [esp + 8], eax
movzx eax, byte [ebp - 0x117c]
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._find_peer_time_stamp_and_verify
test eax, eax
jne 0x40670e
mov dword [esp + 0xc], str.readFromIPSocket_dropped_REGISTER_due_to_time_stamp_error.
mov dword [esp + 8], 0x73d
jmp 0x4070ea
lea ebx, [ebp - 0x10b4]
lea edi, [ebp - 0x113c]
mov eax, ebx
call sym._is_valid_peer_sock
mov dword [esp + 8], 6
test eax, eax
mov dword [esp + 4], 0x42975c
cmove ebx, edi
mov dword [ebp - 0x1180], ebx
lea ebx, [ebp - 0x10ba]
mov dword [esp], ebx
call sym._memcmp
mov dword [esp + 8], 6
mov edx, eax
mov eax, dword [ebp + 8]
add eax, 0xe0
mov dword [esp + 4], eax
test edx, edx
jne 0x40678b
lea eax, [ebp - 0x10c0]
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x4067ac
mov dword [esp + 0xc], str.Skipping_REGISTER_from_self
mov dword [esp + 8], 0x748
jmp 0x4070ea
mov dword [esp], ebx
call sym._memcmp
test eax, eax
je 0x4067ac
mov dword [esp + 0xc], str.Skipping_REGISTER_for_other_peer
mov dword [esp + 8], 0x74d
jmp 0x4070ea
cmp byte [ebp - 0x117c], 0
jne 0x4069db
mov dword [esp + 0xc], str.Got_P2P_register
mov dword [esp + 8], 0x757
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
lea eax, [ebp - 0x113c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 0xc], str._P2P__Rx_REGISTER_from__s
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x758
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
lea eax, [ebp - 0x10c0]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
add eax, 0x17c
mov dword [esp], eax
call sym._find_and_remove_peer
mov eax, dword [ebp + 8]
cmp byte [eax + 0x8c], 0
jne 0x40686c
mov dword [esp + 0xc], str.Skipping_register_ACK_as_P2P_is_disabled
mov dword [esp + 8], 0x37b
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
jmp 0x406a75
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x1104]
mov word [ebp - 0x1106], 0
mov ecx, 4
mov word [ebp - 0x1108], 0x402
lea edx, [ebp - 0x1108]
lea ebx, [ebp - 0x10e8]
mov dword [ebp - 0x1128], 0
lea esi, [eax + 0x64]
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x10d8]
mov edi, esi
lea esi, [ebp - 0x818]
mov eax, ecx
mov ecx, 5
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x10c4]
mov dword [ebp - 0x10e8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xe0]
mov dword [ebp - 0x10e4], eax
mov eax, dword [ebp + 8]
mov ax, word [eax + 0xe4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov word [ebp - 0x10e0], ax
mov eax, dword [ebp - 0x10c0]
mov dword [esp], esi
mov dword [ebp - 0x10de], eax
mov eax, dword [ebp - 0x10bc]
mov word [ebp - 0x10da], ax
lea eax, [ebp - 0x1128]
mov dword [esp + 4], eax
call sym._encode_REGISTER_ACK
mov eax, dword [ebp - 0x1180]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1058]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 0xc], str.send_REGISTER_ACK__s
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x38e
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x4069b3
mov eax, dword [ebp - 0x1128]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._pearson_hash_16
movzx ebx, ax
call sym._time_stamp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], edx
mov eax, dword [eax + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
mov dword [esp], esi
mov dword [esp + 8], eax
movzx eax, byte [ebp - 0x1128]
mov dword [esp + 4], eax
call sym._packet_header_encrypt
mov ecx, dword [ebp - 0x1180]
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x818]
mov eax, dword [eax + 0x154]
mov dword [esp], ecx
mov ecx, dword [ebp - 0x1128]
call sym._sendto_sock
jmp 0x406a75
mov eax, dword [ebp - 0x1180]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1058]
mov dword [esp], eax
call sym._sock_to_cstr
mov edi, eax
lea eax, [ebp - 0x113c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._sock_to_cstr
mov esi, eax
lea eax, [ebp - 0x10ba]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1108]
mov dword [esp], eax
call sym._macaddr_str
mov ebx, eax
lea eax, [ebp - 0x10c0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1128]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._PsP__Rx_REGISTER_src_s_dst_s_from_sn_s__edge:_s_
mov dword [esp + 8], 0x75f
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
mov eax, dword [ebp - 0x1180]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x10a0]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10c0]
mov dword [esp + 8], eax
movzx eax, byte [ebp - 0x117c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._check_peer_registration_needed
jmp 0x407907
lea eax, [ebp - 0x1170]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1174]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1150]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10c4]
mov dword [esp], eax
call sym._decode_REGISTER_ACK
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x406b37
mov eax, dword [ebp - 0x1168]
mov edx, dword [ebp - 0x1164]
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10c0]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], edx
mov dword [esp], eax
call sym._find_peer_time_stamp_and_verify
test eax, eax
jne 0x406b37
mov dword [esp + 0xc], str.readFromIPSocket_dropped_REGISTER_ACK_due_to_time_stamp_error.
mov dword [esp + 8], 0x770
jmp 0x4070ea
lea ebx, [ebp - 0x10b4]
mov eax, ebx
call sym._is_valid_peer_sock
mov edx, eax
lea eax, [ebp - 0x113c]
test edx, edx
cmovne eax, ebx
mov dword [esp + 4], eax
lea eax, [ebp - 0x1058]
mov dword [esp], eax
call sym._sock_to_cstr
mov edi, eax
lea eax, [ebp - 0x113c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._sock_to_cstr
mov esi, eax
lea eax, [ebp - 0x10ba]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1108]
mov dword [esp], eax
call sym._macaddr_str
mov ebx, eax
lea eax, [ebp - 0x10c0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1128]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], str.Rx_REGISTER_ACK_src_s_dst_s_from_peer__s___s_
mov dword [esp + 8], 0x778
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x17c]
test ecx, ecx
je 0x406d2e
movzx eax, byte [ebp - 0x10bb]
movzx edx, byte [ebp - 0x10bc]
mov esi, 0xfeedbef5
mov edi, dword [ecx + 0x40]
shl eax, 8
lea ebx, [eax + edx - 0x61c88647]
movzx eax, byte [ebp - 0x10bd]
movzx edx, byte [ebp - 0x10c0]
mov ecx, dword [edi]
shl eax, 0x18
lea eax, [eax + edx - 0x60b6453c]
movzx edx, byte [ebp - 0x10be]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebp - 0x10bf]
shl edx, 8
add eax, edx
sub eax, ebx
add ebx, 0x112410b
xor eax, 0x7f76d
mov edx, eax
sub ebx, eax
sub esi, eax
shl edx, 8
xor edx, ebx
mov ebx, edx
sub esi, edx
sub eax, edx
shr ebx, 0xd
xor ebx, esi
sub eax, ebx
sub edx, ebx
mov esi, eax
mov eax, ebx
shr eax, 0xc
xor eax, esi
mov esi, edx
mov edx, eax
sub esi, eax
sub ebx, eax
shl edx, 0x10
xor edx, esi
mov esi, ebx
mov ebx, edx
sub esi, edx
sub eax, edx
shr ebx, 5
xor ebx, esi
mov esi, ebx
sub eax, ebx
shr esi, 3
xor eax, esi
sub edx, ebx
mov esi, eax
sub edx, eax
sub ebx, eax
mov eax, dword [edi + 4]
shl esi, 0xa
xor edx, esi
dec eax
sub ebx, edx
shr edx, 0xf
xor edx, ebx
and eax, edx
imul eax, eax, 0xc
mov eax, dword [ecx + eax]
test eax, eax
je 0x406d2e
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x117c], esi
sub eax, dword [ebp - 0x117c]
neg esi
mov ebx, eax
mov eax, dword [ebx + 0x5c]
mov dword [ebp - 0x1184], eax
cmp edx, eax
jne 0x406d22
cmp dword [ebx + 0x58], 6
jne 0x406d22
lea eax, [ebp - 0x10c0]
mov dword [esp + 8], 6
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x54]
mov dword [ebp - 0x118c], ecx
mov dword [esp], eax
mov dword [ebp - 0x1188], edx
call sym._memcmp
mov edx, dword [ebp - 0x1188]
mov ecx, dword [ebp - 0x118c]
test eax, eax
je 0x407344
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x406d2e
lea ebx, [eax + esi]
jmp 0x406cd2
mov dword [esp + 0xc], str.Failed_to_find_sender_in_pending_peers.
mov dword [esp + 8], 0x261
jmp 0x4070ea
lea ebx, [ebp - 0x818]
xor eax, eax
mov ecx, 0x10
cmp dword [0x42600c], 0
mov edi, ebx
rep stosd dword es:[edi], eax
je 0x406d8b
mov dword [esp + 0xc], str._OK__Edge_Peer__________Super_Node
mov dword [esp + 8], 0x78d
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 2
call sym._traceEvent
mov dword [0x42600c], 0
mov eax, dword [ebp + 8]
cmp byte [eax + 0xa5], 0
je 0x407061
lea eax, [ebp - 0x1170]
mov dword [esp], ebx
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1174]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1150]
mov dword [esp + 4], eax
call sym._decode_REGISTER_SUPER_ACK
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x406e0e
add eax, 0x138
mov edx, dword [ebp - 0x1164]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1168]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._time_stamp_verify_and_update
test eax, eax
jne 0x406e0e
mov dword [esp + 0xc], str.readFromIPSocket_dropped_REGISTER_SUPER_ACK_due_to_time_stamp_error.
mov dword [esp + 8], 0x798
jmp 0x4070ea
lea ebx, [ebp - 0x802]
lea edi, [ebp - 0x113c]
mov eax, ebx
call sym._is_valid_peer_sock
mov esi, dword [ebp + 8]
mov edx, eax
lea eax, [ebp - 0x113c]
test edx, edx
mov edx, dword [esi + 0xa8]
lea esi, [ebp - 0x814]
cmovne eax, ebx
lea ebx, [ebp - 0x1098]
mov dword [ebp - 0x1188], edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x1058]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [ebp - 0x117c], eax
call sym._sock_to_cstr
mov dword [esp + 4], esi
mov dword [ebp - 0x1184], eax
lea eax, [ebp - 0x1128]
mov dword [esp], eax
call sym._macaddr_str
mov ecx, dword [ebp - 0x117c]
mov edx, dword [ebp - 0x1188]
mov dword [esp + 0xc], str.Rx_REGISTER_SUPER_ACK_myMAC_s___s___external__s_._Attempts__u
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp - 0x1184]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 8], 0x7a0
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
mov eax, dword [ebp + 8]
mov dword [esp + 8], 6
mov dword [esp], esi
add eax, 0xe0
mov dword [esp + 4], eax
call sym._memcmp
test eax, eax
je 0x406f00
mov dword [esp + 0xc], str.readFromIPSocket_dropped_REGISTER_SUPER_ACK_due_to_wrong_addressing.
mov dword [esp + 8], 0x7a7
jmp 0x40732b
mov eax, dword [ebp + 8]
mov dword [esp + 8], 4
add eax, 0x118
mov dword [esp + 4], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x40704c
cmp byte [ebp - 0x7ee], 0
je 0x406f6d
lea eax, [ebp - 0x7ec]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._sock_to_cstr
mov dword [esp + 0xc], str.Rx_REGISTER_SUPER_ACK_backup_supernode_at__s
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x7af
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 2
call sym._traceEvent
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x1180]
cmp byte [eax + 0x88], 0
mov dword [eax + 0x188], esi
mov byte [eax + 0xa5], 0
mov dword [eax + 0xa8], 3
jne 0x407020
mov eax, dword [ebp - 0x80c]
test eax, eax
je 0x407020
cmp byte [ebp - 0x808], 0
je 0x407020
mov dword [esp], eax
mov esi, dword [sym.imp.WS2_32.dll_htonl]
call esi
push ebx
mov ebx, dword [sym.imp.WS2_32.dll_inet_ntoa]
mov dword [esp], eax
call ebx
push edx
test eax, eax
je 0x406fe5
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0x10
add eax, 0x1f8
mov dword [esp], eax
call sym._strncpy
movzx eax, byte [ebp - 0x808]
mov dword [esp], eax
call sym._bitlen2mask
mov dword [esp], eax
call esi
push edx
mov dword [esp], eax
call ebx
push ecx
test eax, eax
je 0x407020
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0x10
add eax, 0x208
mov dword [esp], eax
call sym._strncpy
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x120]
test eax, eax
je 0x407907
mov dword [esp + 8], edi
mov edi, dword [ebp - 0x1180]
mov dword [esp + 4], edi
mov edi, dword [ebp + 8]
mov dword [esp], edi
call eax
jmp 0x407907
mov dword [esp + 0xc], str.Rx_REGISTER_SUPER_ACK_with_wrong_or_old_cookie.
mov dword [esp + 8], 0x7ce
jmp 0x40732b
mov dword [esp + 0xc], str.Rx_REGISTER_SUPER_ACK_with_no_outstanding_REGISTER_SUPER.
mov dword [esp + 8], 0x7d3
jmp 0x40732b
lea eax, [ebp - 0x1170]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1174]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1150]
mov dword [esp + 4], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
call sym._decode_PEER_INFO
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x4070fe
add eax, 0x138
mov edx, dword [ebp - 0x1164]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1168]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._time_stamp_verify_and_update
test eax, eax
jne 0x4070fe
mov dword [esp + 0xc], str.readFromIPSocket_dropped_PEER_INFO_due_to_time_stamp_error.
mov dword [esp + 8], 0x7de
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
jmp 0x40733a
lea esi, [ebp - 0x810]
mov eax, esi
call sym._is_valid_peer_sock
test eax, eax
jne 0x40716c
lea eax, [ebp - 0x816]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1128]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 4], esi
mov ebx, eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._sock_to_cstr
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Skip_invalid_PEER_INFO__s___s_
mov dword [esp + 8], 0x7e4
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
jmp 0x407907
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x17c]
test ecx, ecx
je 0x407289
movzx eax, byte [ebp - 0x811]
movzx edx, byte [ebp - 0x812]
mov esi, 0xfeedbef5
movzx ebx, byte [ebp - 0x816]
shl eax, 8
lea edx, [eax + edx - 0x61c88647]
movzx eax, byte [ebp - 0x813]
shl eax, 0x18
lea eax, [eax + ebx - 0x60b6453c]
movzx ebx, byte [ebp - 0x814]
shl ebx, 0x10
add eax, ebx
movzx ebx, byte [ebp - 0x815]
shl ebx, 8
add eax, ebx
lea ebx, [edx + 0x112410b]
sub eax, edx
xor eax, 0x7f76d
mov edx, eax
sub ebx, eax
sub esi, eax
shl edx, 8
xor edx, ebx
mov ebx, edx
sub esi, edx
sub eax, edx
shr ebx, 0xd
xor ebx, esi
sub eax, ebx
sub edx, ebx
mov esi, eax
mov eax, ebx
shr eax, 0xc
xor eax, esi
mov esi, eax
sub edx, eax
sub ebx, eax
shl esi, 0x10
xor esi, edx
mov edx, esi
sub ebx, esi
sub eax, esi
shr edx, 5
xor edx, ebx
sub eax, edx
sub esi, edx
mov ebx, eax
mov eax, edx
shr eax, 3
xor eax, ebx
sub esi, eax
sub edx, eax
mov ebx, esi
mov esi, eax
shl esi, 0xa
xor esi, ebx
sub edx, esi
shr esi, 0xf
xor esi, edx
mov edx, dword [ecx + 0x40]
mov eax, dword [edx + 4]
dec eax
and eax, esi
imul eax, eax, 0xc
add eax, dword [edx]
mov ebx, dword [eax]
test ebx, ebx
je 0x407289
mov eax, dword [edx + 0x14]
mov edi, eax
sub ebx, eax
neg edi
cmp dword [ebx + 0x5c], esi
jne 0x40727e
cmp dword [ebx + 0x58], 6
jne 0x40727e
lea eax, [ebp - 0x816]
mov dword [esp + 8], 6
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x54]
mov dword [esp], eax
call sym._memcmp
test eax, eax
je 0x407883
mov ebx, dword [ebx + 0x50]
test ebx, ebx
je 0x407289
add ebx, edi
jmp 0x40724e
lea eax, [ebp - 0x816]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1128]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 0xc], str.Rx_PEER_INFO_unknown_peer__s
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x7f2
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
jmp 0x4063d2
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Unable_to_handle_packet_type__d:_ignored
mov dword [esp + 8], 0x7fa
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 1
jmp 0x4063d2
cmp byte [ebp - 0x117c], 0
je 0x40731b
mov dword [esp + 0xc], str.Received_packet_with_unknown_community
mov dword [esp + 8], 0x7fe
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 1
jmp 0x40733a
mov dword [esp + 0xc], str.Ignoring_packet_with_unknown_community
mov dword [esp + 8], 0x800
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
jmp 0x407907
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x48]
lea esi, [ebx + 0x40]
test eax, eax
jne 0x407380
test edx, edx
jne 0x407380
mov dword [esp], ecx
call sym._free
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x17c]
mov eax, dword [eax + 0x40]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp + 8]
mov dword [eax + 0x17c], 0
jmp 0x4073f5
cmp esi, dword [edi + 0x10]
jne 0x407390
mov ecx, dword [ebp - 0x117c]
add ecx, eax
mov dword [edi + 0x10], ecx
test eax, eax
je 0x4073a0
mov edi, dword [ebp - 0x117c]
mov dword [eax + edi + 8], edx
jmp 0x4073a9
mov edi, dword [ebp + 8]
mov dword [edi + 0x17c], edx
mov edi, dword [ebp + 8]
mov ecx, dword [ebx + 0x48]
mov edx, dword [edi + 0x17c]
test ecx, ecx
mov edx, dword [edx + 0x40]
je 0x4073c3
mov edi, dword [edx + 0x14]
mov dword [ecx + edi + 4], eax
mov eax, dword [edx + 4]
mov ecx, dword [ebx + 0x50]
dec eax
and eax, dword [ebp - 0x1184]
imul eax, eax, 0xc
add eax, dword [edx]
dec dword [eax + 4]
cmp esi, dword [eax]
jne 0x4073de
mov dword [eax], ecx
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x4073e8
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x4073f2
mov dword [ecx + 0xc], eax
dec dword [edx + 0xc]
movzx eax, byte [ebx + 5]
movzx edx, byte [ebx + 4]
mov dword [ebx + 0x54], ebx
mov dword [ebx + 0x58], 6
shl eax, 8
lea ecx, [eax + edx - 0x61c88647]
movzx eax, byte [ebx + 3]
movzx edx, byte [ebx]
shl eax, 0x18
lea eax, [eax + edx - 0x60b6453c]
movzx edx, byte [ebx + 2]
shl edx, 0x10
add eax, edx
movzx edx, byte [ebx + 1]
shl edx, 8
add eax, edx
sub eax, ecx
add ecx, 0x112410b
xor eax, 0x7f76d
mov edx, eax
sub ecx, eax
shl edx, 8
xor edx, ecx
mov ecx, 0xfeedbef5
sub ecx, eax
sub eax, edx
mov edi, ecx
mov ecx, edx
sub edi, edx
shr ecx, 0xd
xor ecx, edi
mov edi, ecx
sub eax, ecx
sub edx, ecx
shr edi, 0xc
xor eax, edi
mov edi, eax
sub edx, eax
sub ecx, eax
shl edi, 0x10
xor edx, edi
mov edi, edx
sub ecx, edx
sub eax, edx
shr edi, 5
xor ecx, edi
mov edi, ecx
sub eax, ecx
shr edi, 3
xor eax, edi
sub edx, ecx
mov edi, eax
sub edx, eax
sub ecx, eax
mov eax, dword [ebp + 8]
shl edi, 0xa
xor edx, edi
mov eax, dword [eax + 0x178]
sub ecx, edx
shr edx, 0xf
xor edx, ecx
mov dword [ebp - 0x117c], eax
mov dword [ebp - 0x1184], edx
mov dword [ebx + 0x5c], edx
test eax, eax
jne 0x407546
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x44], 0
mov dword [esp], 0x2c
call sym._malloc
mov dword [ebx + 0x40], eax
test eax, eax
jne 0x4074e9
mov dword [esp], 0xffffffff
call sym._exit
mov edi, eax
mov eax, dword [ebp - 0x117c]
mov ecx, 0xb
rep stosd dword es:[edi], eax
mov edi, dword [ebx + 0x40]
mov dword [edi + 0x10], esi
mov dword [edi + 4], 0x20
mov dword [edi + 8], 5
mov dword [edi + 0x14], 0x40
mov dword [esp], 0x180
call sym._malloc
mov dword [edi + 0x28], 0xa0111fe1
mov dword [edi], eax
test eax, eax
je 0x4074dd
mov edi, eax
mov eax, dword [ebp - 0x117c]
mov ecx, 0x60
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x178], ebx
jmp 0x407573
mov eax, dword [ebp - 0x117c]
mov eax, dword [eax + 0x40]
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x117c]
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 0x10]
mov ecx, edx
sub ecx, dword [eax + 0x14]
mov dword [ebx + 0x44], ecx
mov dword [edx + 8], ebx
mov dword [eax + 0x10], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x178]
mov edx, dword [eax + 0x40]
mov eax, dword [edx + 4]
inc dword [edx + 0xc]
dec eax
and eax, dword [ebp - 0x1184]
imul eax, eax, 0xc
add eax, dword [edx]
mov ecx, dword [eax + 4]
lea edx, [ecx + 1]
mov ecx, dword [eax]
mov dword [eax + 4], edx
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x4c], 0
test ecx, ecx
je 0x4075ad
mov dword [ecx + 0xc], esi
mov dword [eax], esi
mov eax, dword [eax + 8]
inc eax
imul eax, eax, 0xa
cmp edx, eax
jb 0x407731
mov eax, dword [ebx + 0x40]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x117c], ecx
test ecx, ecx
jne 0x407731
imul ecx, dword [eax + 4], 0x18
mov dword [esp], ecx
mov dword [ebp - 0x1188], ecx
call sym._malloc
mov dword [ebp - 0x1184], eax
test eax, eax
je 0x4074dd
mov ecx, dword [ebp - 0x1188]
mov edi, dword [ebp - 0x1184]
xor eax, eax
rep stosb byte es:[edi], al
mov edi, dword [ebx + 0x40]
mov dword [edi + 0x1c], 0
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x1188], eax
add eax, eax
dec eax
mov dword [ebp - 0x1190], eax
mov eax, dword [edi + 8]
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x1190]
and eax, dword [edi + 0xc]
shr edx, cl
cmp eax, 1
mov eax, dword [edi]
sbb edx, 0xffffffff
mov dword [ebp - 0x118c], edx
mov dword [edi + 0x18], edx
mov dword [ebp - 0x1198], eax
mov ecx, dword [ebp - 0x117c]
cmp dword [ebp - 0x1188], ecx
je 0x4076ea
imul eax, dword [ebp - 0x117c], 0xc
mov ecx, dword [ebp - 0x1198]
mov edx, dword [ecx + eax]
test edx, edx
je 0x4076df
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x119c], eax
mov eax, dword [ebp - 0x1190]
and eax, dword [edx + 0x1c]
imul eax, eax, 0xc
add eax, dword [ebp - 0x1184]
mov ecx, dword [eax + 4]
lea esi, [ecx + 1]
mov dword [eax + 4], esi
cmp dword [ebp - 0x118c], esi
jae 0x4076c2
mov ecx, dword [eax + 8]
inc dword [edi + 0x1c]
mov dword [ebp - 0x1194], ecx
mov ecx, dword [ebp - 0x118c]
imul ecx, dword [ebp - 0x1194]
cmp esi, ecx
jbe 0x4076c2
mov ecx, dword [ebp - 0x1194]
inc ecx
mov dword [eax + 8], ecx
mov ecx, dword [eax]
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], ecx
test ecx, ecx
je 0x4076d5
mov dword [ecx + 0xc], edx
mov dword [eax], edx
mov edx, dword [ebp - 0x119c]
jmp 0x40766b
inc dword [ebp - 0x117c]
jmp 0x407649
mov eax, dword [ebp - 0x1198]
mov dword [esp], eax
call sym._free
mov eax, dword [ebx + 0x40]
mov edi, dword [ebp - 0x1184]
mov edx, dword [eax + 0xc]
inc dword [eax + 8]
mov dword [eax], edi
shl dword [eax + 4], 1
shr edx, 1
cmp dword [eax + 0x1c], edx
ja 0x40771c
mov dword [eax + 0x20], 0
jmp 0x407731
mov edi, dword [eax + 0x20]
lea edx, [edi + 1]
mov dword [eax + 0x20], edx
cmp edx, 1
jbe 0x407731
mov dword [eax + 0x24], 1
mov eax, dword [ebp - 0x1180]
lea edi, [ebx + 0x10]
lea esi, [ebp - 0x113c]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x818]
lea esi, [ebp - 0x10e8]
mov dword [ebx + 0x2c], eax
lea eax, [ebp - 0x113c]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._sock_to_cstr
mov dword [esp], esi
mov dword [ebp - 0x117c], eax
lea eax, [ebp - 0x10c0]
mov dword [esp + 4], eax
call sym._macaddr_str
mov edx, dword [ebp - 0x117c]
mov dword [esp + 0xc], str.P2P_connection_established:__s___s_
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 8], 0x251
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
lea eax, [ebx + 0x10]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._sock_to_cstr
mov dword [esp + 4], ebx
mov dword [esp], esi
mov edi, eax
call sym._macaddr_str
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._new_peer__s_____s
mov dword [esp + 8], 0x255
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x17c]
xor eax, eax
test edx, edx
je 0x407810
mov eax, dword [edx + 0x40]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Pending_peers_list_size_u
mov dword [esp + 8], 0x259
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x178]
xor eax, eax
test edx, edx
je 0x40784d
mov eax, dword [edx + 0x40]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Known_peers_list_size_u
mov dword [esp + 8], 0x25c
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov eax, dword [ebp - 0x1180]
mov dword [ebx + 0x28], eax
jmp 0x407907
lea edi, [ebx + 0x10]
lea esi, [ebp - 0x810]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x810]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._sock_to_cstr
mov esi, eax
lea eax, [ebp - 0x816]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1128]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Rx_PEER_INFO_for__s:_is_at__s
mov dword [esp + 8], 0x7ed
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
mov eax, dword [ebp + 8]
mov dword [esp + 8], ebx
add ebx, 0x10
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._send_register
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret