Function at 0x10003930
Capabilities:
Encode data using xor
Receive data
Receive data on socket
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
push ebx
mov eax, 0x80000
mov dword [ebp - 8], ebx
mov edx, dword [esi + 0x8000c]
sub eax, edx
push eax
lea eax, [esi + 0xc]
add eax, edx
push eax
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x10003a91
mov edi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call edi
cmp eax, 0x2733
je 0x10003b8e
call edi
push 0x100
push ebx
push 0x1013c168
mov edi, eax
call fcn.1000e330
movaps xmm1, xmmword [0x1002c660]
add esp, 0xc
movaps xmm2, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_feeeeeeeeeeeeeeee]
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
movups xmm0, xmmword [ecx + 0x10028108]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [ecx + 0x1013c168], xmm0
movups xmm0, xmmword [ecx + 0x10028118]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [ecx + 0x1013c178], xmm0
movups xmm0, xmmword [ecx + 0x10028128]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [ecx + 0x1013c188], xmm0
movups xmm0, xmmword [ecx + 0x10028138]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [ecx + 0x1013c198], xmm0
add ecx, 0x40
cmp ecx, 0x100
jb 0x100039b0
push edi
push 0x1013c168
push 0
push 0x10130ac0
call fcn.100083d0
add esp, 0x10
cmp dword [esi + 0x100034], ebx
je 0x10003a56
push 0
mov dword [0x1013adfc], 0xffffffff
push dword [esi + 0x100034]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [esi + 0x100034]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x100034], ebx
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x10003a6c
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esi + 4], 0xffffffff
mov eax, dword [esi + 8]
test eax, eax
je 0x10003d45
push eax
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
mov dword [esi + 8], ebx
xor al, al
mov byte [esi + 0x100038], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add ecx, dword [esi + 0x8000c]
mov dword [esi + 0x8000c], ecx
cmp ecx, 4
jl 0x10003b8e
lea eax, [ebx + esi]
mov al, byte [eax + 0xc]
cmp al, 0xc1
jne 0x10003ac2
movzx edi, byte [ebx + esi + 0xd]
mov dl, al
mov al, byte [ebx + esi + 0xf]
add ebx, 0x10
add ebx, esi
jmp 0x10003ae2
cmp al, 0xc2
jne 0x10003c42
movzx edi, byte [ebx + esi + 0xd]
mov dl, al
movzx eax, byte [ebx + esi + 0xe]
add ebx, 0x10
shl edi, 8
or edi, eax
add ebx, esi
mov al, byte [ebx]
mov byte [ebp - 1], al
mov byte [ebp - 2], dl
cmp edi, 4
jb 0x10003b97
cmp edi, ecx
jg 0x10003b65
mov eax, dword [ebp - 8]
cmp dl, 0xc1
jne 0x10003b10
lea ebx, [eax + 0xf]
lea ecx, [eax + 0xf]
add ebx, esi
mov al, byte [eax + esi + 0xe]
lea edx, [edi - 3]
add ecx, esi
jmp 0x10003b19
mov al, byte [eax + esi + 0xf]
lea edx, [edi - 4]
mov ecx, ebx
mov byte [ebp - 0xc], al
push dword [ebp - 0xc]
call fcn.1000b8f0
mov eax, dword [ebp - 8]
add esp, 4
add eax, 0xc
add eax, esi
push edi
push eax
movzx eax, byte [ebx]
push eax
mov eax, dword [esi + 0x100014]
call eax
mov ebx, dword [ebp - 8]
add esp, 0xc
sub dword [esi + 0x8000c], edi
add ebx, edi
mov ecx, dword [esi + 0x8000c]
mov dword [ebp - 8], ebx
test ecx, ecx
jg 0x10003aa6
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 8]
test edx, edx
jle 0x10003b8e
test ecx, ecx
jle 0x10003b8e
mov eax, 0x80000
sub eax, edx
cmp ecx, eax
jg 0x10003b8e
lea eax, [edx + 0xc]
push ecx
add eax, esi
push eax
lea eax, [esi + 0xc]
push eax
call fcn.1000ddb0
add esp, 0xc
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x100
push 0
push 0x1013c168
call fcn.1000e330
movaps xmm1, xmmword [0x1002c660]
add esp, 0xc
movaps xmm2, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_feeeeeeeeeeeeeeee]
xor eax, eax
nop dword [eax + eax]
movups xmm0, xmmword [eax + 0x10028308]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c168], xmm0
movups xmm0, xmmword [eax + 0x10028318]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c178], xmm0
movups xmm0, xmmword [eax + 0x10028328]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c188], xmm0
movups xmm0, xmmword [eax + 0x10028338]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c198], xmm0
add eax, 0x40
cmp eax, 0x100
jb 0x10003bc0
movzx eax, byte [ebp - 1]
push eax
movzx eax, byte [ebp - 2]
push edi
push eax
push 0x1013c168
push 0
push 0x10130ac0
call fcn.100083d0
add esp, 0x18
jmp 0x10003ce3
push 0x100
push 0
push 0x1013c168
movzx edi, al
call fcn.1000e330
movaps xmm1, xmmword [0x1002c660]
add esp, 0xc
movaps xmm2, xmmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_feeeeeeeeeeeeeeee]
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [eax + 0x10028208]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c168], xmm0
movups xmm0, xmmword [eax + 0x10028218]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c178], xmm0
movups xmm0, xmmword [eax + 0x10028228]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c188], xmm0
movups xmm0, xmmword [eax + 0x10028238]
psubb xmm0, xmm1
xorps xmm0, xmm2
movups xmmword [eax + 0x1013c198], xmm0
add eax, 0x40
cmp eax, 0x100
jb 0x10003c70
push edi
push 0x1013c168
push 0
push 0x10130ac0
call fcn.100083d0
add esp, 0x10
cmp dword [esi + 0x100034], 0
je 0x10003d1a
push 0
mov dword [0x1013adfc], 0xffffffff
push dword [esi + 0x100034]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [esi + 0x100034]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x100034], 0
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x10003d30
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esi + 4], 0xffffffff
mov eax, dword [esi + 8]
test eax, eax
je 0x10003d45
push eax
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
mov dword [esi + 8], 0
pop edi
mov byte [esi + 0x100038], 0
xor al, al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret