Function at 0x404c30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov eax, 0x110c
mov ebp, esp
push edi
push esi
push ebx
call fcn.00416f84
mov ecx, 0xe
sub esp, eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x10ac], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [eax + 0xfc]
mov dword [ebp - 0x10c0], eax
lea eax, [ebp - 0x1092]
mov edi, eax
mov eax, dword [ebp + 8]
rep movsb byte es:[edi], byte [esi]
cmp byte [eax + 0x89], 0
jne 0x404cf5
movzx eax, word [ebp - 0x1086]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
push ecx
cmp ax, 0x800
jne 0x404cf5
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [eax + 0x1a]
cmp eax, dword [edi + 0xe8]
je 0x404cf5
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohl]
push edx
lea edx, [ebp - 0x818]
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], 0x602
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 3
call sym._traceEvent
jmp 0x405ace
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x1080]
mov ecx, 4
lea edx, [ebp - 0x1030]
mov word [ebp - 0x1082], 0
mov word [ebp - 0x1084], 0x302
mov eax, dword [eax]
mov dword [ebp - 0x10a4], eax
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 4]
mov word [ebp - 0x10a0], ax
mov eax, dword [ebp + 8]
lea esi, [eax + 0x64]
rep movsd dword es:[edi], dword [esi]
mov edi, edx
mov eax, ecx
mov ecx, 6
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xe0]
mov dword [ebp - 0x103c], eax
mov eax, dword [ebp + 8]
mov ax, word [eax + 0xe4]
mov word [ebp - 0x1038], ax
mov eax, dword [ebp - 0x10a4]
mov dword [ebp - 0x1036], eax
mov eax, dword [ebp - 0x10a0]
mov word [ebp - 0x1032], ax
mov eax, dword [ebp - 0x10c0]
mov word [ebp - 0x101c], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x84]
test ax, ax
je 0x404e7a
mov dword [ebp - 0x10bc], 0
dec ax
jne 0x404e01
mov eax, ebx
shr eax, 4
lea eax, [ebx + eax + 0x43]
mov dword [esp], eax
call sym._malloc
mov dword [esp + 0x10], 0x432060
mov dword [ebp - 0x10bc], eax
lea eax, [ebp - 0x818]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x10bc]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym._lzo1x_1_compress
test eax, eax
jne 0x404e01
cmp dword [ebp - 0x818], ebx
jae 0x404e01
mov word [ebp - 0x101a], 1
mov ax, word [ebp - 0x101a]
test ax, ax
je 0x404e63
movzx eax, al
mov dword [esp], eax
call sym._compression_str
mov edx, dword [ebp - 0x818]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], str.payload_compression___s_:_compressed__u_bytes_to__u_bytes_n
mov dword [esp + 8], 0x645
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov ebx, dword [ebp - 0x818]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10bc]
mov ecx, ebx
rep movsb byte es:[edi], byte [esi]
jmp 0x404e6c
cmp dword [ebp - 0x10bc], 0
je 0x404e7a
mov eax, dword [ebp - 0x10bc]
mov dword [esp], eax
call sym._free
lea eax, [ebp - 0x103c]
lea esi, [ebp - 0x1018]
mov dword [ebp - 0x10ac], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1084]
mov dword [esp + 8], eax
lea eax, [ebp - 0x10ac]
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._encode_PACKET
lea eax, [ebp - 0x1036]
mov edi, dword [ebp - 0x10ac]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov eax, 0x800
sub eax, edi
mov dword [esp + 8], eax
lea eax, [esi + edi]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
add eax, 0xf4
mov dword [esp], eax
mov eax, dword [ebp + 8]
call dword [eax + 0x110]
add eax, dword [ebp - 0x10ac]
mov ecx, dword [ebp - 0x10c0]
mov dword [esp + 0x14], ebx
mov edx, eax
mov dword [esp + 0x10], eax
sub edx, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], str.Encode__u_B_PACKET___u_B_data___u_B_overhead__transform__u
mov dword [esp + 8], 0x65a
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
mov dword [ebp - 0x10ac], eax
call sym._traceEvent
mov eax, dword [ebp + 8]
cmp byte [eax + 0x74], 2
jne 0x404f8f
mov eax, dword [ebp - 0x10ac]
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
mov eax, edi
movzx edi, al
mov dword [esp + 4], edi
call sym._packet_header_encrypt
mov eax, dword [ebp + 8]
inc dword [eax + 0x100]
mov eax, dword [ebp - 0x10ac]
mov dword [esp], 0
mov dword [ebp - 0x10d8], eax
call dword [sym.imp.msvcrt.dll_time]
mov dword [ebp - 0x10c0], eax
lea eax, [ebp - 0x10a4]
mov dword [esp], eax
call sym._is_multi_broadcast
test al, al
je 0x40500a
mov dword [esp + 0xc], str.Multicast_or_broadcast_destination_peer__using_supernode
mov dword [esp + 8], 0x597
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x1070]
mov ecx, 4
lea esi, [edi + 0x140]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x40598b
movzx eax, byte [ebp - 0x109f]
mov dword [esp + 0xc], str.Searching_destination_peer_for_MAC__02X:_02X:_02X:_02X:_02X:_02X
mov dword [esp + 8], 0x59c
mov dword [esp + 0x24], eax
movzx eax, byte [ebp - 0x10a0]
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp + 0x20], eax
movzx eax, byte [ebp - 0x10a1]
mov dword [esp], 4
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x10a2]
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0x10a3]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp - 0x10a4]
mov dword [esp + 0x10], eax
call sym._traceEvent
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x178]
test edx, edx
je 0x405230
movzx eax, byte [ebp - 0x109f]
movzx ecx, byte [ebp - 0x10a0]
movzx ebx, byte [ebp - 0x10a4]
mov edx, dword [edx + 0x40]
shl eax, 8
lea ecx, [eax + ecx - 0x61c88647]
movzx eax, byte [ebp - 0x10a1]
shl eax, 0x18
lea eax, [eax + ebx - 0x60b6453c]
movzx ebx, byte [ebp - 0x10a2]
shl ebx, 0x10
add eax, ebx
movzx ebx, byte [ebp - 0x10a3]
shl ebx, 8
add eax, ebx
mov ebx, 0xfeedbef5
sub eax, ecx
add ecx, 0x112410b
xor eax, 0x7f76d
mov esi, eax
sub ecx, eax
sub ebx, eax
shl esi, 8
xor esi, ecx
mov ecx, esi
sub ebx, esi
sub eax, esi
shr ecx, 0xd
xor ecx, ebx
mov ebx, ecx
sub eax, ecx
sub esi, ecx
shr ebx, 0xc
xor ebx, eax
mov eax, ebx
sub esi, ebx
sub ecx, ebx
shl eax, 0x10
xor eax, esi
mov esi, ecx
mov ecx, eax
sub esi, eax
sub ebx, eax
shr ecx, 5
xor ecx, esi
mov esi, ecx
sub ebx, ecx
shr esi, 3
xor ebx, esi
sub eax, ecx
mov edi, ebx
sub eax, ebx
sub ecx, ebx
shl edi, 0xa
xor eax, edi
sub ecx, eax
shr eax, 0xf
xor eax, ecx
mov edi, eax
mov eax, dword [edx + 4]
dec eax
and eax, edi
imul eax, eax, 0xc
add eax, dword [edx]
mov esi, dword [eax]
test esi, esi
je 0x405230
mov eax, dword [edx + 0x14]
mov ebx, eax
sub esi, eax
neg ebx
cmp edi, dword [esi + 0x5c]
jne 0x405180
cmp dword [esi + 0x58], 6
jne 0x405180
lea eax, [ebp - 0x10a4]
mov dword [esp + 8], 6
mov dword [esp + 4], eax
mov eax, dword [esi + 0x54]
mov dword [esp], eax
call sym._memcmp
test eax, eax
je 0x40518f
mov esi, dword [esi + 0x50]
test esi, esi
je 0x405230
add esi, ebx
jmp 0x405154
cmp dword [esi + 0x28], 0
jle 0x405230
mov eax, dword [esi + 0x24]
mov ebx, 2
mov ecx, dword [ebp - 0x10c0]
sub ecx, dword [esi + 0x2c]
cdq
idiv ebx
cmp ecx, eax
jl 0x405ab2
mov dword [esp + 0xc], str.Refreshing_idle_known_peer
lea edi, [esi + 0x40]
mov dword [esp + 8], 0x5a6
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
mov edx, dword [esi + 0x44]
mov eax, dword [ebp + 8]
test edx, edx
mov eax, dword [eax + 0x178]
jne 0x405a39
cmp dword [esi + 0x48], 0
jne 0x405a39
mov eax, dword [eax + 0x40]
mov eax, dword [eax]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x178]
mov eax, dword [eax + 0x40]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp + 8]
mov dword [eax + 0x178], 0
mov dword [esp], esi
call sym._free
mov eax, dword [ebp + 8]
mov ecx, 4
add eax, 0x140
mov dword [ebp - 0x10cc], eax
lea eax, [ebp - 0x1070]
mov esi, dword [ebp - 0x10cc]
mov edi, eax
movzx eax, byte [ebp - 0x109f]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc], str.P2P_Peer__MAC_02X:_02X:_02X:_02X:_02X:_02X__not_found__using_supernode
mov dword [esp + 0x24], eax
movzx eax, byte [ebp - 0x10a0]
mov dword [esp + 8], 0x5b3
mov dword [esp + 0x20], eax
movzx eax, byte [ebp - 0x10a1]
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x10a2]
mov dword [esp], 4
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0x10a3]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp - 0x10a4]
mov dword [esp + 0x10], eax
call sym._traceEvent
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x17c]
test ecx, ecx
je 0x4053ee
movzx eax, byte [ebp - 0x109f]
movzx edx, byte [ebp - 0x10a0]
movzx ebx, byte [ebp - 0x10a4]
shl eax, 8
lea edx, [eax + edx - 0x61c88647]
movzx eax, byte [ebp - 0x10a1]
shl eax, 0x18
lea eax, [eax + ebx - 0x60b6453c]
movzx ebx, byte [ebp - 0x10a2]
shl ebx, 0x10
add eax, ebx
movzx ebx, byte [ebp - 0x10a3]
shl ebx, 8
add eax, ebx
lea ebx, [edx + 0x112410b]
sub eax, edx
xor eax, 0x7f76d
mov edx, eax
sub ebx, eax
shl edx, 8
xor edx, ebx
mov ebx, 0xfeedbef5
sub ebx, eax
mov esi, edx
sub eax, edx
sub ebx, edx
shr esi, 0xd
xor esi, ebx
sub eax, esi
sub edx, esi
mov ebx, eax
mov eax, esi
shr eax, 0xc
xor eax, ebx
mov ebx, eax
sub edx, eax
sub esi, eax
shl ebx, 0x10
xor ebx, edx
mov edx, ebx
sub esi, ebx
sub eax, ebx
shr edx, 5
xor edx, esi
sub eax, edx
sub ebx, edx
mov esi, eax
mov eax, edx
shr eax, 3
xor eax, esi
mov esi, ebx
mov ebx, eax
sub esi, eax
sub edx, eax
shl ebx, 0xa
xor ebx, esi
sub edx, ebx
shr ebx, 0xf
xor ebx, edx
mov edx, dword [ecx + 0x40]
mov eax, dword [edx + 4]
dec eax
and eax, ebx
imul eax, eax, 0xc
add eax, dword [edx]
mov ecx, dword [eax]
test ecx, ecx
je 0x4053ee
mov eax, dword [edx + 0x14]
lea edi, [ebp - 0x10a4]
sub ecx, eax
mov esi, eax
mov dword [ebp - 0x10bc], ecx
neg esi
mov eax, dword [ebp - 0x10bc]
cmp ebx, dword [eax + 0x5c]
jne 0x4053d7
cmp dword [eax + 0x58], 6
jne 0x4053d7
mov dword [esp + 8], 6
mov dword [esp + 4], edi
mov eax, dword [eax + 0x54]
mov dword [esp], eax
call sym._memcmp
test eax, eax
je 0x40578d
mov eax, dword [ebp - 0x10bc]
mov eax, dword [eax + 0x50]
test eax, eax
je 0x4053ee
add eax, esi
mov dword [ebp - 0x10bc], eax
jmp 0x4053a7
mov dword [esp + 4], 0x60
mov dword [esp], 1
call sym._calloc
mov dword [ebp - 0x10bc], eax
mov eax, dword [ebp - 0x10a4]
mov edi, dword [ebp - 0x10bc]
mov dword [edi], eax
mov eax, dword [ebp - 0x10a0]
mov word [edi + 4], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x94]
mov dword [edi + 0x24], eax
mov eax, edi
mov edi, dword [ebp - 0x10c0]
mov dword [eax + 0x28], edi
call sym._initial_time_stamp
mov edi, dword [ebp - 0x10bc]
mov dword [edi + 0x38], eax
movzx eax, byte [edi + 5]
mov dword [edi + 0x3c], edx
movzx edx, byte [edi + 4]
shl eax, 8
movzx ecx, byte [edi]
lea edx, [eax + edx - 0x61c88647]
movzx eax, byte [edi + 3]
shl eax, 0x18
lea eax, [eax + ecx - 0x60b6453c]
movzx ecx, byte [edi + 2]
shl ecx, 0x10
add eax, ecx
movzx ecx, byte [edi + 1]
shl ecx, 8
add eax, ecx
mov ecx, 0xfeedbef5
sub eax, edx
add edx, 0x112410b
xor eax, 0x7f76d
mov ebx, eax
sub edx, eax
sub ecx, eax
shl ebx, 8
xor ebx, edx
mov edx, ebx
sub ecx, ebx
sub eax, ebx
shr edx, 0xd
xor edx, ecx
sub eax, edx
sub ebx, edx
mov ecx, eax
mov eax, edx
shr eax, 0xc
xor eax, ecx
mov ecx, eax
sub ebx, eax
sub edx, eax
shl ecx, 0x10
xor ecx, ebx
sub edx, ecx
sub eax, ecx
mov ebx, edx
mov edx, ecx
shr edx, 5
xor edx, ebx
sub eax, edx
mov ebx, eax
mov eax, edx
shr eax, 3
sub ecx, edx
xor eax, ebx
mov ebx, eax
sub ecx, eax
sub edx, eax
mov eax, edi
shl ebx, 0xa
xor ecx, ebx
sub edx, ecx
shr ecx, 0xf
xor ecx, edx
mov dword [edi + 0x5c], ecx
mov dword [eax + 0x54], edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10c4], ecx
mov esi, dword [eax + 0x17c]
mov dword [edi + 0x58], 6
test esi, esi
jne 0x4055ae
mov eax, dword [ebp - 0x10bc]
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0
mov dword [esp], 0x2c
call sym._malloc
mov ebx, eax
mov eax, dword [ebp - 0x10bc]
mov dword [eax + 0x40], ebx
test ebx, ebx
jne 0x40554a
mov dword [esp], 0xffffffff
call sym._exit
lea edx, [ebx + 0xc]
mov eax, esi
mov ecx, 8
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x10bc]
mov dword [ebx + 4], 0x20
mov dword [ebx + 8], 5
add eax, 0x40
mov dword [ebx + 0x14], 0x40
mov dword [ebx + 0x10], eax
mov dword [esp], 0x180
call sym._malloc
mov dword [ebx + 0x28], 0xa0111fe1
mov dword [ebx], eax
test eax, eax
je 0x40553e
mov edi, eax
mov ecx, 0x60
mov eax, esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x10bc]
mov dword [eax + 0x17c], edi
jmp 0x4055d8
mov eax, dword [esi + 0x40]
mov edi, dword [ebp - 0x10bc]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x40]
mov dword [edi + 0x48], 0
mov edx, dword [eax + 0x10]
mov ecx, edx
sub ecx, dword [eax + 0x14]
mov dword [edi + 0x44], ecx
mov dword [edx + 8], edi
lea edx, [edi + 0x40]
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x17c]
mov edx, dword [eax + 0x40]
mov eax, dword [edx + 4]
inc dword [edx + 0xc]
dec eax
and eax, dword [ebp - 0x10c4]
imul eax, eax, 0xc
add eax, dword [edx]
mov edi, dword [eax + 4]
mov ecx, dword [eax]
lea edx, [edi + 1]
mov edi, dword [ebp - 0x10bc]
mov dword [eax + 4], edx
lea ebx, [edi + 0x40]
mov dword [edi + 0x50], ecx
mov dword [edi + 0x4c], 0
test ecx, ecx
je 0x40561b
mov dword [ecx + 0xc], ebx
mov dword [eax], ebx
mov eax, dword [eax + 8]
inc eax
imul eax, eax, 0xa
cmp edx, eax
jb 0x40578d
mov eax, dword [ebp - 0x10bc]
mov ebx, dword [eax + 0x40]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x10c4], eax
test eax, eax
jne 0x40578d
imul esi, dword [ebx + 4], 0x18
mov dword [esp], esi
call sym._malloc
mov dword [ebp - 0x10c8], eax
test eax, eax
je 0x40553e
mov edi, dword [ebp - 0x10c8]
xor eax, eax
mov ecx, esi
rep stosb byte es:[edi], al
mov dword [ebx + 0x1c], 0
mov edi, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov edx, edi
mov dword [ebp - 0x10d0], edi
add edx, edi
lea edi, [edx - 1]
mov edx, eax
mov dword [ebp - 0x10dc], edi
mov edi, dword [ebx + 8]
and eax, dword [ebp - 0x10dc]
lea ecx, [edi + 1]
shr edx, cl
cmp eax, 1
mov eax, dword [ebx]
sbb edx, 0xffffffff
mov dword [ebp - 0x10d4], edx
mov dword [ebx + 0x18], edx
mov dword [ebp - 0x10e0], eax
mov edi, dword [ebp - 0x10c4]
cmp dword [ebp - 0x10d0], edi
je 0x405740
imul eax, dword [ebp - 0x10c4], 0xc
mov edi, dword [ebp - 0x10e0]
mov edx, dword [edi + eax]
test edx, edx
je 0x405735
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10e4], eax
mov eax, dword [ebp - 0x10dc]
and eax, dword [edx + 0x1c]
imul eax, eax, 0xc
add eax, dword [ebp - 0x10c8]
mov edi, dword [eax + 4]
lea ecx, [edi + 1]
mov dword [eax + 4], ecx
cmp dword [ebp - 0x10d4], ecx
jae 0x405718
mov esi, dword [eax + 8]
mov edi, dword [ebp - 0x10d4]
inc dword [ebx + 0x1c]
imul edi, esi
cmp ecx, edi
jbe 0x405718
inc esi
mov dword [eax + 8], esi
mov ecx, dword [eax]
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], ecx
test ecx, ecx
je 0x40572b
mov dword [ecx + 0xc], edx
mov dword [eax], edx
mov edx, dword [ebp - 0x10e4]
jmp 0x4056d1
inc dword [ebp - 0x10c4]
jmp 0x4056b3
mov eax, dword [ebp - 0x10e0]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp - 0x10bc]
mov edi, dword [ebp - 0x10c8]
mov eax, dword [eax + 0x40]
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 0x405778
mov dword [eax + 0x20], 0
jmp 0x40578d
mov edi, dword [eax + 0x20]
lea edx, [edi + 1]
mov dword [eax + 0x20], edx
cmp edx, 1
jbe 0x40578d
mov dword [eax + 0x24], 1
mov edi, dword [ebp - 0x10bc]
mov eax, dword [ebp - 0x10c0]
xor ebx, ebx
sub eax, dword [edi + 0x30]
mov edi, dword [ebp + 8]
cmp eax, dword [edi + 0x94]
jle 0x40591e
lea eax, [ebp - 0x10a4]
mov dword [esp], edi
lea edi, [ebp - 0x109e]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x10cc]
mov dword [esp + 4], eax
call sym._send_register
mov eax, ebx
mov ecx, 3
mov dword [ebp - 0x105c], 0xa02
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x1058]
mov ecx, 4
mov dword [ebp - 0x10a8], 0
lea ebx, [ebp - 0x10a8]
lea esi, [eax + 0x64]
add eax, 0xe0
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x109e]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], ebx
call sym._encode_mac
mov eax, dword [ebp - 0x10bc]
mov dword [esp + 4], ebx
mov dword [ebp - 0x10a8], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x1098]
mov dword [esp], eax
call sym._encode_mac
mov dword [esp + 0xc], esi
lea eax, [ebp - 0x105c]
lea esi, [ebp - 0x818]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [ebp - 0x10a8], 0
call sym._encode_QUERY_PEER
mov dword [esp + 0xc], str.send_QUERY_PEER_to_supernode
mov dword [esp + 8], 0x330
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 0x4058ea
mov eax, dword [ebp - 0x10a8]
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 - 0x10a8]
mov dword [esp + 4], eax
call sym._packet_header_encrypt
mov edi, dword [ebp - 0x10cc]
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x818]
xor ebx, ebx
mov ecx, dword [ebp - 0x10a8]
mov eax, dword [eax + 0x154]
mov dword [esp], edi
call sym._sendto_sock
mov eax, dword [ebp - 0x10bc]
mov edi, dword [ebp - 0x10c0]
mov dword [eax + 0x30], edi
lea eax, [ebp - 0x1070]
mov dword [esp + 4], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
call sym._sock_to_cstr
mov esi, eax
lea eax, [ebp - 0x10a4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x105c]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.find_peer_address___s_______s_
mov dword [esp + 8], 0x5ba
mov dword [esp + 4], str._n2n_lucktu_cnn2n_src_edge_utils.c
mov dword [esp], 4
call sym._traceEvent
test ebx, ebx
je 0x40598b
mov eax, dword [ebp + 8]
inc dword [eax + 0x190]
jmp 0x4059af
mov eax, dword [ebp + 8]
inc dword [eax + 0x198]
lea eax, [ebp - 0x10a4]
mov dword [esp], eax
call sym._is_multi_broadcast
test al, al
je 0x4059af
mov eax, dword [ebp + 8]
inc dword [eax + 0x1a0]
lea eax, [ebp - 0x10a4]
lea esi, [ebp - 0x1070]
mov dword [esp + 4], eax
lea eax, [ebp - 0x105c]
mov dword [esp], eax
call sym._macaddr_str
mov dword [esp + 4], esi
mov ebx, eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
call sym._sock_to_cstr
mov edi, dword [ebp - 0x10d8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], str.Tx_PACKET_to__s__dest_s____u_B_
mov dword [esp + 8], 0x5dc
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 [ebp - 0x10d8]
lea edx, [ebp - 0x1018]
mov eax, dword [eax + 0x154]
mov dword [esp], esi
call sym._sendto_sock
jmp 0x405ace
mov eax, dword [eax + 0x40]
cmp edi, dword [eax + 0x10]
jne 0x405a49
mov ecx, dword [eax + 0x14]
add ecx, edx
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 0x48]
test edx, edx
je 0x405a59
mov eax, dword [eax + 0x14]
mov dword [edx + eax + 8], ecx
jmp 0x405a62
mov eax, dword [ebp + 8]
mov dword [eax + 0x178], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x48]
mov eax, dword [eax + 0x178]
test ecx, ecx
mov eax, dword [eax + 0x40]
je 0x405a7c
mov ebx, dword [eax + 0x14]
mov dword [ecx + ebx + 4], edx
mov ecx, dword [eax + 4]
lea edx, [ecx - 1]
and edx, dword [esi + 0x5c]
mov ecx, dword [esi + 0x50]
imul edx, edx, 0xc
add edx, dword [eax]
dec dword [edx + 4]
cmp edi, dword [edx]
jne 0x405a96
mov dword [edx], ecx
mov edx, dword [esi + 0x4c]
test edx, edx
je 0x405aa0
mov dword [edx + 0x10], ecx
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x405aaa
mov dword [ecx + 0xc], edx
dec dword [eax + 0xc]
jmp 0x405228
lea eax, [ebp - 0x1070]
add esi, 0x10
mov ecx, 5
mov ebx, 1
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x40591e
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret