Function at 0x10069380
Capabilities:
Convert ip address from string
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e09b8
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
mov eax, dword [0x1010f16c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x68], ecx
mov edi, dword [ebp + 0x10]
xor eax, eax
mov esi, dword [ebp + 0xc]
xorps xmm0, xmm0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x74], edi
movups xmmword [ebp - 0x60], xmm0
mov word [ebp - 0x50], 0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 4], eax
mov ecx, str._Interface_
mov byte [ebp - 0x61], al
mov eax, dword [ebp + 8]
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp + 8]
jne 0x10069415
cmp byte [ebp - 0x62], 0
je 0x10069411
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp + 8]
jne 0x10069415
add eax, 2
add ecx, 2
cmp byte [ebp - 0x62], 0
jne 0x100693e5
xor eax, eax
jmp 0x1006941a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a05c
test esi, esi
jne 0x10069432
mov byte [ebp - 0x61], 1
mov al, byte [ebp - 0x61]
jmp 0x1006989f
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x1006944f
mov eax, dword [ecx]
push edi
push esi
mov eax, dword [eax + 0xc]
call eax
test al, al
jne 0x1006a1b5
mov ecx, str.PrivateKey
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069476
test dl, dl
je 0x10069472
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069476
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069456
xor eax, eax
jmp 0x1006947b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100694b1
lea edx, [ebp - 0x30]
mov ecx, edi
call fcn.100563c0
test al, al
jne 0x10069495
mov byte [ebp - 0x61], al
jmp 0x1006989f
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
mov byte [eax + 0x50], 1
add ecx, 0x20
lea eax, [ebp - 0x30]
push eax
call fcn.1006c740
mov al, 1
jmp 0x1006989c
mov ecx, str.ListenPort
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100694d8
test dl, dl
je 0x100694d4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100694d8
add eax, 2
add ecx, 2
test dl, dl
jne 0x100694b8
xor eax, eax
jmp 0x100694dd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006951c
mov eax, dword [ebp - 0x68]
push edi
mov esi, dword [eax]
call fcn.100b2554
movzx ecx, word [esi + 0xc]
add esp, 4
cmp ecx, eax
je 0x1006a1b5
cmp byte [esi + 0x17], 0
movzx edi, ax
mov word [esi + 0xc], di
je 0x1006a1b5
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov edx, dword [eax]
movzx eax, word [esi + 0xe]
push eax
mov eax, edi
jmp 0x10069583
mov ecx, str.ListenPortTCP
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069543
test dl, dl
je 0x1006953f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069543
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069523
xor eax, eax
jmp 0x10069548
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100695a2
mov eax, dword [ebp - 0x68]
push edi
mov esi, dword [eax]
call fcn.100b2554
movzx ecx, word [esi + 0xe]
add esp, 4
cmp ecx, eax
je 0x1006a1b5
cmp byte [esi + 0x17], 0
movzx edi, ax
mov word [esi + 0xe], di
je 0x1006a1b5
mov ecx, dword [esi + 8]
push edi
mov eax, dword [ecx]
mov edx, dword [eax]
movzx eax, word [esi + 0xc]
push eax
call edx
test al, al
jne 0x1006a1b5
push 0x100f7804
call fcn.100561a0
add esp, 4
mov al, 1
jmp 0x1006989c
mov ecx, str.Address
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100695d0
test dl, dl
je 0x100695cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100695d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100695b0
xor eax, eax
jmp 0x100695d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069657
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10056300
mov edi, dword [ebp - 0x7c]
add esp, 4
mov ecx, dword [ebp - 0x80]
xor esi, esi
sub edi, ecx
mov dword [ebp - 0x70], ecx
sar edi, 2
test edi, edi
je 0x1006a1b5
nop
mov ecx, dword [ecx + esi*4]
lea edx, [ebp - 0x60]
call fcn.10053890
test al, al
je 0x1006989a
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov edx, dword [eax + 0x2334]
lea ecx, [eax + 0x2330]
cmp dword [ecx + 8], edx
je 0x1006963e
movups xmm0, xmmword [ebp - 0x60]
movups xmmword [edx], xmm0
mov ax, word [ebp - 0x50]
mov word [edx + 0x10], ax
add dword [ecx + 4], 0x12
jmp 0x10069648
lea eax, [ebp - 0x60]
push eax
push edx
call fcn.1002d4d0
mov ecx, dword [ebp - 0x70]
inc esi
cmp esi, edi
jb 0x10069600
mov al, 1
jmp 0x1006989c
mov ecx, 0x100f7d90
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069680
test dl, dl
je 0x1006967c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069680
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069660
xor eax, eax
jmp 0x10069685
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100696b8
mov eax, dword [ebp - 0x68]
push edi
mov esi, dword [eax]
call fcn.100b2554
add esp, 4
cmp eax, 0x240
jl 0x1006a1b5
cmp eax, 0x2710
jg 0x1006a1b5
mov word [esi + 0x10], ax
mov al, 1
jmp 0x1006989c
mov ecx, str.Table
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100696e0
test dl, dl
je 0x100696dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100696e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100696c0
xor eax, eax
jmp 0x100696e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069771
mov ecx, 0x100f7d1c
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069714
test dl, dl
je 0x10069710
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069714
add eax, 2
add ecx, 2
test dl, dl
jne 0x100696f4
xor eax, eax
jmp 0x10069719
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006972e
mov eax, dword [ebp - 0x68]
xor cl, cl
mov eax, dword [eax]
mov byte [eax + 0x14], cl
mov al, 1
jmp 0x1006989c
mov eax, str.auto
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x10069753
test cl, cl
je 0x1006974f
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x10069753
add edi, 2
add eax, 2
test cl, cl
jne 0x10069733
xor eax, eax
jmp 0x10069758
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006989a
mov eax, dword [ebp - 0x68]
mov cl, 1
mov eax, dword [eax]
mov byte [eax + 0x14], cl
mov al, cl
jmp 0x1006989c
mov ecx, 0x100f7da4
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069798
test dl, dl
je 0x10069794
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069798
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069778
xor eax, eax
jmp 0x1006979d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100698e0
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10056300
mov eax, dword [ebp - 0x7c]
add esp, 4
mov ecx, dword [ebp - 0x80]
xor esi, esi
sub eax, ecx
mov dword [ebp - 0x70], ecx
sar eax, 2
mov dword [ebp - 0x74], eax
test eax, eax
je 0x1006a1b5
nop
mov eax, dword [ebp - 0x68]
xorps xmm0, xmm0
mov edi, dword [ecx + esi*4]
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x34], 0
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x44]
push eax
push edi
push 0x17
movq qword [ebp - 0x3c], xmm0
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x1006980c
mov eax, 0x17
mov word [ebp - 0x4c], ax
jmp 0x10069840
lea eax, [ebp - 0x48]
push eax
push edi
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x10069829
mov eax, 2
mov word [ebp - 0x4c], ax
jmp 0x10069840
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x1006989a
lea ecx, [ebp - 0x4c]
push ecx
push edi
mov ecx, eax
call fcn.10053cc0
test al, al
je 0x1006988c
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
add ecx, 0x233c
mov edx, dword [ecx + 4]
cmp dword [ecx + 8], edx
je 0x10069870
movups xmm0, xmmword [ebp - 0x4c]
movups xmmword [edx], xmm0
movq xmm0, qword [ebp - 0x3c]
movq qword [edx + 0x10], xmm0
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x18], eax
add dword [ecx + 4], 0x1c
jmp 0x1006987a
lea eax, [ebp - 0x4c]
push eax
push edx
call fcn.10060030
inc esi
cmp esi, dword [ebp - 0x74]
jae 0x1006a1b5
mov ecx, dword [ebp - 0x70]
jmp 0x100697d0
push edi
push str.Unable_to_resolve__s
call fcn.10056110
add esp, 8
xor al, al
mov byte [ebp - 0x61], al
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x70]
test edx, edx
je 0x1006a6d4
mov ecx, dword [ebp - 0x78]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1006a6b2
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006a6f1
jmp 0x1006a6b2
mov ecx, str.BlockDNS
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069907
test dl, dl
je 0x10069903
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069907
add eax, 2
add ecx, 2
test dl, dl
jne 0x100698e7
xor eax, eax
jmp 0x1006990c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069934
lea edx, [ebp - 0x62]
mov ecx, edi
call fcn.100692d0
test al, al
je 0x1006989a
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
mov al, byte [ebp - 0x62]
mov byte [ecx + 0x12], al
mov al, 1
jmp 0x1006989c
mov ecx, str.BlockInternet
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069960
test dl, dl
je 0x1006995c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069960
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069940
xor eax, eax
jmp 0x10069965
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069ba2
lea eax, [ebp - 0x80]
mov byte [ebp - 0x61], 0xff
push eax
mov ecx, edi
call fcn.10056300
mov eax, dword [ebp - 0x7c]
add esp, 4
mov ecx, dword [ebp - 0x80]
xor edi, edi
sub eax, ecx
mov dword [ebp - 0x70], ecx
sar eax, 2
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x10069b90
nop word [eax + eax]
mov esi, dword [ecx + edi*4]
mov ecx, str.route
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100699d0
test dl, dl
je 0x100699cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100699d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100699b0
xor eax, eax
jmp 0x100699d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x100699ef
mov dl, byte [ebp - 0x61]
xor ecx, ecx
test dl, dl
movzx eax, dl
cmovns ecx, eax
mov al, cl
or al, 1
jmp 0x10069b80
mov ecx, str.firewall
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069a16
test dl, dl
je 0x10069a12
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069a16
add eax, 2
add ecx, 2
test dl, dl
jne 0x100699f6
xor eax, eax
jmp 0x10069a1b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10069b6f
mov ecx, 0x100f7d10
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069a50
test dl, dl
je 0x10069a4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069a50
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069a30
xor eax, eax
jmp 0x10069a55
sbb eax, eax
or eax, 1
test eax, eax
je 0x10069b6f
mov ecx, 0x100f7d1c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069a84
test dl, dl
je 0x10069a80
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069a84
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069a64
xor eax, eax
jmp 0x10069a89
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069a95
mov byte [ebp - 0x61], al
jmp 0x10069b83
mov ecx, str.default
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069ac0
test dl, dl
je 0x10069abc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069ac0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069aa0
xor eax, eax
jmp 0x10069ac5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069ad2
mov byte [ebp - 0x61], 0xff
jmp 0x10069b83
mov ecx, str.persist
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069b00
test dl, dl
je 0x10069afc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069b00
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069ae0
xor eax, eax
jmp 0x10069b05
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069b1c
mov dl, byte [ebp - 0x61]
xor ecx, ecx
test dl, dl
movzx eax, dl
cmovns ecx, eax
mov al, cl
or al, 0x10
jmp 0x10069b80
mov ecx, str.allow_local
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069b43
test dl, dl
je 0x10069b3f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069b43
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069b23
xor eax, eax
jmp 0x10069b48
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069b5f
mov dl, byte [ebp - 0x61]
xor ecx, ecx
test dl, dl
movzx eax, dl
cmovns ecx, eax
mov al, cl
or al, 0x20
jmp 0x10069b80
push esi
push str.Unknown_mode_in_BlockInternet:__s
call fcn.10056110
add esp, 8
jmp 0x10069b83
mov dl, byte [ebp - 0x61]
xor ecx, ecx
test dl, dl
movzx eax, dl
cmovns ecx, eax
mov al, cl
or al, 2
mov byte [ebp - 0x61], al
mov ecx, dword [ebp - 0x70]
inc edi
cmp edi, dword [ebp - 0x6c]
jb 0x100699a0
mov eax, dword [ebp - 0x68]
mov cl, byte [ebp - 0x61]
mov eax, dword [eax]
mov byte [eax + 0x13], cl
mov al, 1
jmp 0x1006989c
mov ecx, str.ObfuscateKey
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069bd0
test dl, dl
je 0x10069bcc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069bd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069bb0
xor eax, eax
jmp 0x10069bd5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069c45
mov ecx, dword [ebp - 0x6c]
mov esi, ecx
mov eax, dword [ebp - 0x68]
lea edx, [esi + 1]
mov edi, dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10069be6
sub esi, edx
test ecx, ecx
setne al
mov byte [edi + 0x1a8], al
test ecx, ecx
je 0x1006a1b5
push 0x20
push str._DB_3
mov edx, 0x20
lea ecx, [ebp - 0xfc]
call fcn.10060570
mov edx, dword [ebp - 0x6c]
lea ecx, [ebp - 0xfc]
push esi
call fcn.10061d60
push 0x20
lea edx, [edi + 0x1b0]
lea ecx, [ebp - 0xfc]
call fcn.10061e10
add esp, 0x10
mov al, 1
jmp 0x1006989c
mov ecx, str.ObfuscateTCP
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069c70
test dl, dl
je 0x10069c6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069c70
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069c50
xor eax, eax
jmp 0x10069c75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069d5c
lea edx, [ebp - 0x62]
mov ecx, edi
lea esi, [eax + 1]
call fcn.100692d0
test al, al
je 0x10069ca4
mov eax, dword [ebp - 0x68]
movzx esi, byte [ebp - 0x62]
mov eax, dword [eax]
mov dword [eax + 0x1ac], esi
mov al, 1
jmp 0x1006989c
mov ecx, str.tls_firefox
mov eax, edi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069cd0
test dl, dl
je 0x10069ccc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069cd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069cb0
xor eax, eax
jmp 0x10069cd5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069cf0
mov eax, dword [ebp - 0x68]
mov esi, 2
mov eax, dword [eax]
mov dword [eax + 0x1ac], esi
mov al, 1
jmp 0x1006989c
mov ecx, str.tls_chrome
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069d17
test dl, dl
je 0x10069d13
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069d17
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069cf7
xor eax, eax
jmp 0x10069d1c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069d37
mov eax, dword [ebp - 0x68]
mov esi, 3
mov eax, dword [eax]
mov dword [eax + 0x1ac], esi
mov al, 1
jmp 0x1006989c
cmp byte [edi], 0
je 0x10069d4a
push edi
push str.Unknown_mode_in_ObfuscateTCP:__s
call fcn.10056110
add esp, 8
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [eax + 0x1ac], esi
mov al, 1
jmp 0x1006989c
mov ecx, str.PostUp
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069d83
test dl, dl
je 0x10069d7f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069d83
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069d63
xor eax, eax
jmp 0x10069d88
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069dee
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov ecx, dword [esi + 0x2358]
cmp dword [esi + 0x235c], ecx
je 0x10069dd7
mov edx, edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea eax, [edx + 1]
mov dword [ebp - 0x6c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x10069db8
sub edx, dword [ebp - 0x6c]
push edx
push edi
call fcn.100057f0
add dword [esi + 0x2358], 0x18
mov al, 1
jmp 0x1006989c
lea eax, [ebp - 0x74]
push eax
push ecx
lea ecx, [esi + 0x2354]
call fcn.1006ba80
mov al, 1
jmp 0x1006989c
mov ecx, str.PostDown
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069e15
test dl, dl
je 0x10069e11
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069e15
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069df5
xor eax, eax
jmp 0x10069e1a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069e86
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov ecx, dword [esi + 0x2370]
cmp dword [esi + 0x2374], ecx
je 0x10069e6f
mov edx, edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea eax, [edx + 1]
mov dword [ebp - 0x6c], eax
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x10069e50
sub edx, dword [ebp - 0x6c]
push edx
push edi
call fcn.100057f0
add dword [esi + 0x2370], 0x18
mov al, 1
jmp 0x1006989c
lea eax, [ebp - 0x74]
push eax
push ecx
lea ecx, [esi + 0x236c]
call fcn.1006ba80
mov al, 1
jmp 0x1006989c
mov ecx, str.PreUp
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069eb0
test dl, dl
je 0x10069eac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069eb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069e90
xor eax, eax
jmp 0x10069eb5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069f1b
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov ecx, dword [esi + 0x234c]
cmp dword [esi + 0x2350], ecx
je 0x10069f04
mov edx, edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea eax, [edx + 1]
mov dword [ebp - 0x6c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x10069ee5
sub edx, dword [ebp - 0x6c]
push edx
push edi
call fcn.100057f0
add dword [esi + 0x234c], 0x18
mov al, 1
jmp 0x1006989c
lea eax, [ebp - 0x74]
push eax
push ecx
lea ecx, [esi + 0x2348]
call fcn.1006ba80
mov al, 1
jmp 0x1006989c
mov ecx, str.PreDown
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10069f42
test dl, dl
je 0x10069f3e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10069f42
add eax, 2
add ecx, 2
test dl, dl
jne 0x10069f22
xor eax, eax
jmp 0x10069f47
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10069fad
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov ecx, dword [esi + 0x2364]
cmp dword [esi + 0x2368], ecx
je 0x10069f96
mov edx, edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea eax, [edx + 1]
mov dword [ebp - 0x6c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x10069f77
sub edx, dword [ebp - 0x6c]
push edx
push edi
call fcn.100057f0
add dword [esi + 0x2364], 0x18
mov al, 1
jmp 0x1006989c
lea eax, [ebp - 0x74]
push eax
push ecx
lea ecx, [esi + 0x2360]
call fcn.1006ba80
mov al, 1
jmp 0x1006989c
mov eax, str.ExcludedIPs
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10069fd2
test cl, cl
je 0x10069fce
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10069fd2
add esi, 2
add eax, 2
test cl, cl
jne 0x10069fb2
xor eax, eax
jmp 0x10069fd7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006989a
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10056300
mov edi, dword [ebp - 0x7c]
add esp, 4
mov ecx, dword [ebp - 0x80]
xor esi, esi
sub edi, ecx
mov dword [ebp - 0x70], ecx
sar edi, 2
test edi, edi
je 0x1006a1b5
mov ecx, dword [ecx + esi*4]
lea edx, [ebp - 0x60]
call fcn.10053890
test al, al
je 0x1006989a
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov edx, dword [eax + 0x2394]
lea ecx, [eax + 0x2390]
cmp dword [ecx + 8], edx
je 0x1006a043
movups xmm0, xmmword [ebp - 0x60]
movups xmmword [edx], xmm0
mov ax, word [ebp - 0x50]
mov word [edx + 0x10], ax
add dword [ecx + 4], 0x12
jmp 0x1006a04d
lea eax, [ebp - 0x60]
push eax
push edx
call fcn.1002d4d0
mov ecx, dword [ebp - 0x70]
inc esi
cmp esi, edi
jb 0x1006a005
mov al, 1
jmp 0x1006989c
mov eax, str._Peer_
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x1006a081
test cl, cl
je 0x1006a07d
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x1006a081
add edx, 2
add eax, 2
test cl, cl
jne 0x1006a061
xor eax, eax
jmp 0x1006a086
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006989a
test esi, esi
jne 0x1006a0e4
mov edi, dword [ebp - 0x68]
cmp byte [edi + 0x50], al
jne 0x1006a0ac
push str.Missing__Interface_.PrivateKey.
call fcn.10056110
add esp, 4
jmp 0x1006989a
mov ecx, dword [edi + 0x48]
lea esi, [edi + 8]
test ecx, ecx
je 0x1006a0c3
push esi
call fcn.1006ce70
mov dword [edi + 0x48], 0
mov ecx, dword [edi]
add ecx, 0x20
call fcn.1006c7d0
push 0x40
push 0
push esi
mov dword [edi + 0x48], eax
call fcn.100a8dc0
add esp, 0xc
mov al, 1
jmp 0x1006989c
mov edx, dword [ebp - 0x68]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x1006a104
mov eax, dword [ecx]
push edi
push esi
push dword [edx + 0x48]
mov eax, dword [eax + 0x10]
call eax
test al, al
jne 0x1006a1b5
mov ecx, str.PublicKey
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a130
test dl, dl
je 0x1006a12c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a130
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a110
xor eax, eax
jmp 0x1006a135
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a14f
mov eax, dword [ebp - 0x68]
mov ecx, edi
lea edx, [eax + 8]
call fcn.100563c0
test al, al
jne 0x1006a1b5
jmp 0x1006989a
mov ecx, str.PresharedKey
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a176
test dl, dl
je 0x1006a172
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a176
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a156
xor eax, eax
jmp 0x1006a17b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a1d4
mov eax, dword [ebp - 0x68]
mov ecx, edi
lea esi, [eax + 0x28]
mov edx, esi
call fcn.100563c0
test al, al
je 0x1006989a
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x48]
test esi, esi
je 0x1006a1bc
movups xmm0, xmmword [esi]
movups xmmword [eax + 0x180], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [eax + 0x190], xmm0
mov al, 1
jmp 0x1006989c
xorps xmm0, xmm0
movups xmmword [eax + 0x180], xmm0
movups xmmword [eax + 0x190], xmm0
mov al, 1
jmp 0x1006989c
mov ecx, str.AllowedIPs
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a200
test dl, dl
je 0x1006a1fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a200
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a1e0
xor eax, eax
jmp 0x1006a205
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a269
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10056300
mov edi, dword [ebp - 0x7c]
add esp, 4
mov ecx, dword [ebp - 0x80]
xor esi, esi
sub edi, ecx
mov dword [ebp - 0x70], ecx
sar edi, 2
test edi, edi
je 0x1006a1b5
nop dword [eax + eax]
mov ecx, dword [ecx + esi*4]
lea edx, [ebp - 0x60]
call fcn.10053890
test al, al
je 0x1006989a
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x48]
call fcn.1006e930
test al, al
je 0x1006989a
mov ecx, dword [ebp - 0x70]
inc esi
cmp esi, edi
jb 0x1006a230
mov al, 1
jmp 0x1006989c
mov ecx, str.Endpoint
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a290
test dl, dl
je 0x1006a28c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a290
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a270
xor eax, eax
jmp 0x1006a295
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a32f
push 6
mov eax, 1
push str.tcp:__
push edi
mov dword [ebp - 0x6c], eax
call fcn.100b9770
add esp, 0xc
test eax, eax
jne 0x1006a2c4
mov eax, 2
add edi, 6
mov dword [ebp - 0x6c], eax
mov esi, dword [ebp - 0x68]
lea edx, [ebp - 0x4c]
push ecx
mov ecx, edi
push dword [esi + 0x4c]
call fcn.100540a0
add esp, 8
test al, al
je 0x1006989a
mov ecx, dword [esi + 0x48]
mov eax, dword [ebp - 0x6c]
mov byte [ecx + 0x3b], al
mov byte [ecx + 0x3c], al
movups xmm0, xmmword [ebp - 0x4c]
movups xmmword [ecx + 0x68], xmm0
movq xmm0, qword [ebp - 0x3c]
movq qword [ecx + 0x78], xmm0
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x80], eax
movups xmm0, xmmword [ebp - 0x4c]
movups xmmword [ecx + 0x84], xmm0
movq xmm0, qword [ebp - 0x3c]
movq qword [ecx + 0x94], xmm0
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x9c], eax
mov al, 1
jmp 0x1006989c
mov ecx, str.PersistentKeepalive
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a356
test dl, dl
je 0x1006a352
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a356
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a336
xor eax, eax
jmp 0x1006a35b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a38c
mov eax, dword [ebp - 0x68]
push edi
mov esi, dword [eax + 0x48]
call fcn.100b2554
add esp, 4
cmp eax, 0xffff
ja 0x1006989a
imul eax, eax, 0x3e8
mov dword [esi + 0x238], eax
mov al, 1
jmp 0x1006989c
mov ecx, str.AllowMulticast
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a3b3
test dl, dl
je 0x1006a3af
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a3b3
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a393
xor eax, eax
jmp 0x1006a3b8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a3e1
lea edx, [ebp - 0x62]
mov ecx, edi
call fcn.100692d0
test al, al
je 0x1006989a
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x48]
mov al, byte [ebp - 0x62]
mov byte [ecx + 0x37], al
mov al, 1
jmp 0x1006989c
mov ecx, str.Features
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a408
test dl, dl
je 0x1006a404
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a408
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a3e8
xor eax, eax
jmp 0x1006a40d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a4c7
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10056300
mov eax, dword [ebp - 0x7c]
add esp, 4
mov ecx, dword [ebp - 0x80]
xor edi, edi
sub eax, ecx
mov dword [ebp - 0x70], ecx
sar eax, 2
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1006a1b5
nop
mov edx, dword [ecx + edi*4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1006a448
sub ecx, esi
mov esi, 2
je 0x1006a471
mov al, byte [edx + ecx - 1]
cmp al, 0x3f
jne 0x1006a467
mov esi, 1
jmp 0x1006a470
cmp al, 0x21
jne 0x1006a471
mov esi, 3
dec ecx
cmp ecx, 0xa
jne 0x1006989a
cmp dword [edx], 0x72627968
jne 0x1006989a
cmp dword [edx + 4], 0x745f6469
jne 0x1006989a
movzx eax, word [edx + 8]
cmp ax, 0x7063
jne 0x1006989a
mov eax, dword [ebp - 0x68]
lea edx, [esi + 0x60]
inc edi
mov ecx, dword [eax + 0x48]
mov al, dl
shr edx, 4
and al, 3
mov byte [edx + ecx + 0x3d], al
cmp edi, dword [ebp - 0x6c]
jae 0x1006a1b5
mov ecx, dword [ebp - 0x70]
jmp 0x1006a440
mov ecx, str.Ciphers
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1006a4f0
test dl, dl
je 0x1006a4ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1006a4f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x1006a4d0
xor eax, eax
jmp 0x1006a4f5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1006a52f
mov byte [ebp - 0x61], 1
mov eax, str.Ciphers_
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1006a522
test cl, cl
je 0x1006a51e
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1006a522
add esi, 2
add eax, 2
test cl, cl
jne 0x1006a502
xor eax, eax
jmp 0x1006a527
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006989a
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.10056300
mov eax, dword [ebp - 0x68]
add esp, 4
mov cl, byte [ebp - 0x61]
xor esi, esi
mov edi, dword [ebp - 0x7c]
mov eax, dword [eax + 0x48]
mov byte [eax + 0xc0], cl
mov ecx, dword [ebp - 0x80]
sub edi, ecx
sar edi, 2
mov dword [ebp - 0x70], ecx
test edi, edi
je 0x1006a1b5
mov edx, dword [ecx + esi*4]
mov ecx, str.chacha20_poly1305
mov dword [ebp - 0x74], edx
mov eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp - 0x74]
jne 0x1006a5a1
cmp byte [ebp - 0x62], 0
je 0x1006a59d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp - 0x74]
jne 0x1006a5a1
add eax, 2
add ecx, 2
cmp byte [ebp - 0x62], 0
jne 0x1006a571
xor eax, eax
jmp 0x1006a5a6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a5b1
xor ecx, ecx
jmp 0x1006a673
mov ecx, str.aes128_gcm
mov eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp - 0x74]
jne 0x1006a5e8
cmp byte [ebp - 0x62], 0
je 0x1006a5e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp - 0x74]
jne 0x1006a5e8
add eax, 2
add ecx, 2
cmp byte [ebp - 0x62], 0
jne 0x1006a5b8
xor eax, eax
jmp 0x1006a5ed
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a5f9
lea ecx, [eax + 1]
jmp 0x1006a673
mov ecx, str.aes256_gcm
mov eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp - 0x74]
jne 0x1006a630
cmp byte [ebp - 0x62], 0
je 0x1006a62c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp - 0x62], dl
mov edx, dword [ebp - 0x74]
jne 0x1006a630
add eax, 2
add ecx, 2
cmp byte [ebp - 0x62], 0
jne 0x1006a600
xor eax, eax
jmp 0x1006a635
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006a63e
lea ecx, [eax + 2]
jmp 0x1006a673
mov eax, str.none
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x1006a663
test cl, cl
je 0x1006a65f
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x1006a663
add edx, 2
add eax, 2
test cl, cl
jne 0x1006a643
xor eax, eax
jmp 0x1006a668
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1006989a
lea ecx, [eax + 3]
mov eax, dword [ebp - 0x68]
mov edx, dword [eax + 0x48]
mov al, byte [edx + 0xc1]
cmp al, 4
je 0x1006989a
cmp ecx, 1
je 0x1006a6a1
cmp ecx, 2
je 0x1006a6a1
movzx eax, al
mov byte [eax + edx + 0xc2], cl
inc byte [edx + 0xc1]
inc esi
cmp esi, edi
jae 0x1006a1b5
mov ecx, dword [ebp - 0x70]
jmp 0x1006a564
push ecx
push edx
call fcn.1009091b
mov al, byte [ebp - 0x61]
add esp, 8
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100908e7
mov esp, ebp
pop ebp
ret 0xc
call fcn.100abcda
int3