Function at 0x10014305
Capabilities:
Query or enumerate registry key
Query or enumerate registry value
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2848
call fcn.1001c1e0
mov eax, dword [0x1006a098]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
and dword [ebp - 0x280c], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push eax
push ecx
push str.KEY:__s_s_n
push 0xffffffffffffffff
mov dword [ebp - 0x2824], eax
lea eax, [ebp - 0x2804]
push 0x2800
push eax
mov dword [ebp - 0x281c], edi
mov dword [ebp - 0x2844], ecx
call fcn.1001a28e
lea ecx, [ebp - 0x2804]
add esp, 0x18
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10014367
mov ebx, dword [ebp + 0x14]
lea eax, [ebp - 0x2804]
mov esi, dword [sym.imp.WS2_32.dll_send]
sub ecx, edx
push 0
push ecx
push eax
push ebx
call esi
xor ecx, ecx
lea eax, [ebp - 0x282c]
push ecx
push ecx
push eax
lea eax, [ebp - 0x2838]
push eax
push ecx
push ecx
lea eax, [ebp - 0x2830]
push eax
lea eax, [ebp - 0x2848]
push eax
push ecx
push ecx
push ecx
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x100143bd
xor eax, eax
jmp 0x10014781
mov eax, dword [ebp - 0x2830]
inc eax
push eax
call fcn.10018966
mov ecx, dword [ebp - 0x2838]
inc ecx
mov dword [ebp - 0x2818], eax
push ecx
call fcn.10018966
mov ecx, dword [ebp - 0x282c]
inc ecx
mov dword [ebp - 0x2810], eax
push ecx
call fcn.10018966
mov edi, dword [ebp - 0x280c]
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x2808], ecx
mov eax, dword [ebp - 0x2838]
inc eax
mov dword [ebp - 0x283c], eax
mov eax, dword [ebp - 0x282c]
inc eax
mov dword [ebp - 0x2814], eax
lea eax, [ebp - 0x2814]
push eax
push ecx
lea eax, [ebp - 0x2840]
push eax
push 0
lea eax, [ebp - 0x283c]
push eax
push dword [ebp - 0x2810]
push edi
push dword [ebp - 0x281c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, 0x103
je 0x100146f7
test eax, eax
jne 0x100146f7
mov eax, dword [ebp - 0x2840]
inc edi
mov dword [ebp - 0x280c], edi
test eax, eax
je 0x1001448e
cmp eax, 2
jbe 0x10014672
cmp eax, 3
je 0x10014597
cmp eax, 4
je 0x1001454d
cmp eax, 7
je 0x10014672
push dword [ebp - 0x2810]
lea eax, [ebp - 0x2804]
push str._tOTHER:__s_t0x
push 0xffffffffffffffff
push 0x2800
push eax
call fcn.1001a28e
lea ecx, [ebp - 0x2804]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100144b8
push 0
sub ecx, edx
lea eax, [ebp - 0x2804]
push ecx
push eax
push ebx
call esi
xor edi, edi
cmp dword [ebp - 0x2814], edi
jbe 0x10014530
mov eax, dword [ebp - 0x2808]
movsx eax, byte [edi + eax]
push eax
push 0x1004b47c
push 0xffffffffffffffff
lea eax, [ebp - 0x2804]
push 0x2800
push eax
call fcn.1001a28e
add esp, 0x14
lea eax, [ebp - 0x2804]
push 0
push 2
push eax
push ebx
call esi
mov ecx, dword [ebp - 0x2814]
lea eax, [ecx - 1]
cmp edi, eax
jae 0x1001452b
push 0
push 1
push 0x1005ad1c
push ebx
call esi
mov ecx, dword [ebp - 0x2814]
inc edi
cmp edi, ecx
jb 0x100144d8
push 0
push 1
push 0x1004cc7c
push ebx
call esi
mov edi, dword [ebp - 0x280c]
mov ecx, dword [ebp - 0x2808]
jmp 0x10014401
mov eax, dword [ebp - 0x2808]
push dword [eax]
lea eax, [ebp - 0x2804]
push dword [ebp - 0x2810]
push str._tDWORD:__s_t0x_016x_n
push 0xffffffffffffffff
push 0x2800
push eax
call fcn.1001a28e
lea ecx, [ebp - 0x2804]
add esp, 0x18
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001457f
push 0
sub ecx, edx
lea eax, [ebp - 0x2804]
push ecx
push eax
push ebx
call esi
jmp 0x10014542
push dword [ebp - 0x2810]
lea eax, [ebp - 0x2804]
push str._tBINARY:__s_t
push 0xffffffffffffffff
push 0x2800
push eax
call fcn.1001a28e
lea ecx, [ebp - 0x2804]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100145c1
push 0
sub ecx, edx
lea eax, [ebp - 0x2804]
push ecx
push eax
push ebx
call esi
mov ecx, dword [ebp - 0x2814]
test ecx, ecx
jne 0x100145e9
mov byte [ebp - 0x2804], cl
jmp 0x10014645
and dword [ebp - 0x2820], 0
lea eax, [ebp - 0x2804]
mov edi, 0x27ff
test ecx, ecx
je 0x1001463f
mov ebx, dword [ebp - 0x2820]
mov esi, eax
test edi, edi
jle 0x10014636
mov eax, dword [ebp - 0x2808]
movzx eax, byte [ebx + eax]
push eax
push str._02x
push 0xffffffffffffffff
push edi
push esi
call fcn.1001a28e
add esp, 0x14
sub edi, 3
add esi, 3
inc ebx
cmp ebx, dword [ebp - 0x2814]
jb 0x10014607
mov esi, dword [sym.imp.WS2_32.dll_send]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x280c]
lea ecx, [ebp - 0x2804]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001464e
push 0
sub ecx, edx
lea eax, [ebp - 0x2804]
push ecx
push eax
push ebx
call esi
push 0
push 1
push 0x1004cc7c
jmp 0x10014592
push dword [ebp - 0x2810]
lea eax, [ebp - 0x2804]
push str._tSTRING:__s_t
push 0xffffffffffffffff
push 0x2800
push eax
call fcn.1001a28e
lea ecx, [ebp - 0x2804]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001469c
push 0
sub ecx, edx
lea eax, [ebp - 0x2804]
push ecx
push eax
push ebx
call esi
mov eax, dword [ebp - 0x2808]
mov edi, eax
cmp byte [eax], 0
je 0x10014530
movsx eax, byte [edi]
push 0
push 1
sub eax, 7
je 0x100146e4
dec eax
je 0x100146e4
dec eax
je 0x100146e4
dec eax
je 0x100146e4
dec eax
je 0x100146e4
dec eax
je 0x100146e4
dec eax
je 0x100146e4
push edi
jmp 0x100146e9
push 0x1005ad1c
push ebx
call esi
inc edi
cmp byte [edi], 0
jne 0x100146c3
jmp 0x10014530
xor esi, esi
mov edi, dword [ebp - 0x2818]
mov eax, dword [ebp - 0x2830]
push 0
push 0
push 0
inc eax
push 0
mov dword [ebp - 0x2828], eax
lea eax, [ebp - 0x2828]
push eax
push edi
push esi
push dword [ebp - 0x281c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
cmp eax, 0x103
je 0x1001475f
test eax, eax
jne 0x1001475f
lea eax, [ebp - 0x2834]
inc esi
push eax
push 0x20019
push 0
push edi
push dword [ebp - 0x281c]
mov dword [ebp - 0x2820], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10014792
cmp eax, 5
je 0x100146ff
push edi
call fcn.100189dc
push dword [ebp - 0x2810]
call fcn.100189dc
push dword [ebp - 0x2808]
call fcn.100189dc
xor eax, eax
add esp, 0xc
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001890f
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x2824]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001479b
sub ecx, edx
mov edx, edi
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100147a9
sub edx, esi
lea edi, [ecx + 3]
add edi, edx
push edi
call fcn.10018966
mov edx, dword [ebp - 0x2824]
mov esi, eax
pop ecx
lea eax, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x100147c9
push dword [ebp - 0x2818]
sub edx, eax
je 0x100147f3
push dword [ebp - 0x2824]
push 0x1004c74c
push 0xffffffffffffffff
push edi
push esi
call fcn.1001a28e
add esp, 0x18
jmp 0x10014804
push 0x1004c754
push 0xffffffffffffffff
push edi
push esi
call fcn.1001a28e
add esp, 0x14
push ebx
push esi
push dword [ebp - 0x2844]
push dword [ebp - 0x2834]
call fcn.10014305
push esi
call fcn.100189dc
add esp, 0x14
push dword [ebp - 0x2834]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp - 0x2820]
jmp 0x100146f9