Function at 0x10001250
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
test edx, edx
je 0x10001450
push ebp
mov ebp, esp
push edi
push esi
mov esi, edx
push ebx
mov ebx, eax
sub esp, 0x40
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, sym._start_update_thread_once_12
mov dword [esp + 4], eax
mov dword [esp], section..bss
call dword [sym.imp.kernel32.dll_InitOnceExecuteOnce]
mov edx, dword [0x10007048]
sub esp, 0x10
test edx, edx
je 0x100012b0
mov eax, dword [0x10007044]
test eax, eax
je 0x100012b0
mov eax, dword [0x10003020]
test eax, eax
jne 0x10001320
lea esi, [esi]
lea edi, [edi]
cmp ebx, 3
ja 0x10001310
movsx eax, byte [0x10003018]
cmp eax, ebx
jbe 0x100012c8
mov byte [0x10003018], bl
mov eax, ebx
cmp ebx, eax
je 0x100012d5
test ebx, ebx
mov eax, 0x48f
jne 0x10001305
mov edx, dword [0x10007048]
mov eax, 0x48f
test edx, edx
je 0x10001305
mov eax, dword [0x10007034]
mov dword [esi], eax
mov eax, dword [0x10007038]
mov dword [esi + 4], eax
mov eax, dword [0x1000703c]
mov dword [esi + 8], eax
mov eax, dword [0x10007040]
mov dword [esi + 0xc], eax
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea esp, [ebp - 0xc]
mov eax, 0xa0
pop ebx
pop esi
pop edi
pop ebp
ret
mov al, 9
xor edx, edx
mov byte [0x10007100], al
mov eax, dword [0x1000704c]
mov ecx, 5
mov dword [esp + 0xc], edx
mov edi, 0x10007100
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [0x10007101], eax
mov eax, dword [0x10007140]
mov dword [esp + 0x14], eax
mov eax, 0x10007148
mov dword [esp + 0x10], eax
mov eax, dword [0x1000301c]
mov dword [esp], eax
call dword [sym.imp.wsock32.dll_sendto]
mov dword [0x10007144], eax
sub esp, 0x18
inc eax
je 0x100012b0
xor eax, eax
mov ecx, 0x10007140
mov dword [esp + 0xc], eax
mov eax, 0x40
mov edi, 0x10007148
mov dword [esp + 8], eax
mov eax, 0x10007100
mov dword [esp + 4], eax
mov eax, dword [0x1000301c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp], eax
call dword [sym.imp.wsock32.dll_recvfrom]
mov dword [0x10007144], eax
sub esp, 0x18
inc eax
je 0x100012b0
cmp byte [0x10007100], 9
jne 0x100012b0
cmp byte [0x10007101], 1
jne 0x100012b0
mov dword [ebp - 0x18], 0
movzx eax, byte [0x10007108]
mov byte [ebp - 0x21], 0
movsx edx, word [0x10007106]
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x22], al
movsx eax, word [0x10007109]
mov dword [ebp - 0x28], eax
movsx eax, word [0x1000710b]
mov dword [ebp - 0x2c], eax
movsx eax, word [0x1000710d]
mov dword [ebp - 0x30], eax
movsx eax, word [0x1000710f]
mov dword [ebp - 0x34], eax
mov eax, 1
lea esi, [esi]
lea ecx, [eax - 1]
mov edi, edx
sar edi, cl
and edi, 1
jne 0x10001538
cmp eax, 0xa
je 0x10001456
inc eax
jmp 0x10001430
mov eax, 0xa0
ret
cmp byte [ebp - 0x21], 0
je 0x10001463
mov eax, dword [ebp - 0x20]
mov word [ebp - 0x18], ax
movzx edx, dx
mov eax, edx
shr eax, 0xa
and al, 1
neg al
mov byte [ebp - 0x16], al
mov eax, edx
shr eax, 0xb
and al, 1
neg al
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x22]
cmp al, 7
ja case.default.0x10001486
jmp dword [eax*4 + 0x1000500c]
mov eax, dword [ebp - 0x18]
or eax, 4
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x28]
inc dword [0x10007034]
mov word [ebp - 0x14], ax
mov eax, dword [ebp - 0x2c]
neg eax
mov word [ebp - 0x12], ax
mov eax, dword [ebp - 0x30]
mov word [ebp - 0x10], ax
mov eax, dword [ebp - 0x34]
neg eax
mov word [ebp - 0xe], ax
mov eax, dword [ebp - 0x18]
mov dword [0x10007038], eax
mov eax, dword [ebp - 0x14]
mov dword [0x1000703c], eax
mov eax, dword [ebp - 0x10]
mov dword [0x10007040], eax
jmp 0x100012b0
mov eax, dword [ebp - 0x18]
or eax, 6
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
mov eax, dword [ebp - 0x18]
or eax, 2
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
mov eax, dword [ebp - 0x18]
or eax, 0xa
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
mov eax, dword [ebp - 0x18]
or eax, 8
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
mov eax, dword [ebp - 0x18]
or eax, 9
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
mov eax, dword [ebp - 0x18]
or eax, 1
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
mov eax, dword [ebp - 0x18]
or eax, 5
mov word [ebp - 0x18], ax
jmp case.default.0x10001486
cmp ecx, 9
ja case.0x10001541.0
jmp dword [ecx*4 + 0x1000502c]
cmp byte [ebp - 0x21], 0
mov eax, 0
cmovne eax, dword [ebp - 0x20]
or eax, 0x80
mov word [ebp - 0x18], ax
jmp 0x10001463
mov ecx, dword [ebp - 0x20]
or ecx, 0x40
movzx edi, cx
mov dword [ebp - 0x20], edi
nop
mov byte [ebp - 0x21], 1
inc eax
jmp 0x10001430
mov ecx, dword [ebp - 0x20]
or ecx, 0x10
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov ecx, dword [ebp - 0x20]
or ecx, 0x20
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov ecx, dword [ebp - 0x20]
or ecx, 0x200
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov ecx, dword [ebp - 0x20]
or ecx, 0x100
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov ecx, dword [ebp - 0x20]
or ecx, 0xffff8000
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov ecx, dword [ebp - 0x20]
or ecx, 0x4000
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov ecx, dword [ebp - 0x20]
or ecx, 0x2000
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001570
mov byte [ebp - 0x21], 1
mov ecx, dword [ebp - 0x20]
or ecx, 0x1000
movzx edi, cx
mov dword [ebp - 0x20], edi
jmp 0x10001440