Function at 0x40dc10
Capabilities:
Encode data using xor
Receive data
Receive data on socket
Send data
Send data on socket
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43ba50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x70
push esi
push edi
push ecx
lea eax, [ebp - 0x12]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x13]
mov word [ebp - 0x13], 0x3b
push eax
lea ecx, [ebp - 0x68]
mov byte [ebp - 0x11], 0
call fcn.00401a20
mov byte [ebp - 4], 1
mov eax, 0x4a29b4
cmp dword [0x4a29c8], 0x10
push dword [0x4a29c4]
cmovae eax, dword [0x4a29b4]
push eax
push ecx
lea ecx, [ebp - 0x68]
call fcn.00401970
mov dword [ebp - 0x40], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x3c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x50], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x40], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x40dcfb
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40dcf1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40dcf1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00439eff
add esp, 8
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
lea eax, [ebx + 8]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x38]
call fcn.00408b70
add esp, 4
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x40dd5d
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40dd53
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40dd53
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00439eff
add esp, 8
cmp dword [ebp - 0x24], 0x10
lea ecx, [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
jb 0x40dd87
mov ecx, dword [ebp - 0x38]
lea edi, [ecx + eax]
add eax, ecx
mov esi, edi
jmp 0x40dd91
lea esi, [ecx + eax]
lea ecx, [ebp - 0x38]
mov edi, esi
add eax, ecx
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0040e4d0
add esp, 8
lea ecx, [ebp - 0x38]
cmp dword [ebp - 0x24], 0x10
mov eax, dword [eax]
mov edx, eax
jb 0x40ddb8
mov ecx, dword [ebp - 0x38]
sub edx, ecx
jmp 0x40ddbf
sub edx, ecx
mov edi, esi
lea ecx, [ebp - 0x38]
mov esi, dword [ebp - 0x28]
sub edi, eax
mov eax, esi
sub eax, edx
cmp eax, edi
cmovb edi, eax
add ecx, edx
sub esi, edi
mov eax, esi
sub eax, edx
inc eax
push eax
lea eax, [ecx + edi]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
sub esp, 0xc
mov dword [ebp - 0x28], esi
lea eax, [ebx + 8]
mov ecx, esp
push eax
call fcn.0040e3e0
call fcn.00408410
add esp, 0x18
cmp eax, 2
jne 0x40de07
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
cmp dword [ebp - 0x24], 0x10
lea edi, [ebp - 0x38]
push 0x201
cmovae edi, dword [ebp - 0x38]
call fcn.00439f0d
mov esi, eax
add esp, 4
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40de26
push 0
sub eax, edx
push eax
push edi
push dword [0x4a44a4]
mov edi, dword [sym.imp.WS2_32.dll_send]
call edi
push 0
push 0x200
push esi
push dword [0x4a44a4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40de5d
mov byte [esi + eax], 0
mov word [ebp - 0x17], 0x31
lea eax, [ebp - 0x17]
mov byte [ebp - 0x15], 0
nop word [eax + eax]
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x40de90
test cl, cl
je 0x40de8c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x40de90
add esi, 2
add eax, 2
test cl, cl
jne 0x40de70
xor eax, eax
jmp 0x40de95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40e314
mov dword [ebp - 0x1d], 0x464855
xor ecx, ecx
mov byte [ebp - 0x19], 1
nop word [eax + eax]
lea eax, [ecx + 0x20]
xor byte [ebp + ecx - 0x1d], al
inc ecx
cmp ecx, 3
jb 0x40deb0
push 0x201
mov byte [ebp - 0x19], 0
call fcn.00439f0d
lea ecx, [ebp - 0x1d]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ded6
push 0
sub ecx, edx
lea eax, [ebp - 0x1d]
push ecx
push eax
push dword [0x4a44a4]
call edi
push 0
push 0x200
push esi
push dword [0x4a44a4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40df0a
mov byte [esi + eax], 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov dword [0x4a4470], eax
mov dword [ebp - 0x20], 0x4a525945
xor ecx, ecx
mov dword [ebp - 0x1c], 0x1004056
nop dword [eax]
lea eax, [ecx + 0x20]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 6
jb 0x40df30
push 0x201
mov byte [ebp - 0x19], 0
call fcn.00439f0d
lea ecx, [ebp - 0x20]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40df56
push 0
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
push dword [0x4a44a4]
call edi
push 0
push 0x200
push esi
push dword [0x4a44a4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40df8a
mov byte [eax + esi], 0
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40df90
sub ecx, edx
push ecx
push esi
mov ecx, 0x4a48d0
call fcn.00407530
mov dword [ebp - 0x20], 0x57435741
xor ecx, ecx
mov dword [ebp - 0x1c], 0x1005745
lea eax, [ecx + 0x20]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 6
jb 0x40dfb5
push 0x201
mov byte [ebp - 0x19], 0
call fcn.00439f0d
lea ecx, [ebp - 0x20]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40dfe0
push 0
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
push dword [0x4a44a4]
call edi
push 0
push 0x200
push esi
push dword [0x4a44a4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40e014
mov byte [eax + esi], 0
mov ecx, esi
mov dword [ebp - 0x58], 0
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
movups xmmword [ebp - 0x68], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e030
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x68]
call fcn.00407c30
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x80]
call fcn.0040dac0
mov esi, eax
cmp esi, 0x4a2984
je 0x40e0e6
mov edx, dword [0x4a2998]
cmp edx, 8
jb 0x40e0a6
mov ecx, dword [0x4a2984]
lea edx, [edx*2 + 2]
cmp edx, 0x1000
jb 0x40e09c
mov edi, dword [ecx - 4]
add edx, 0x23
sub ecx, edi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x40e15a
mov ecx, edi
mov edi, dword [sym.imp.WS2_32.dll_send]
push edx
push ecx
call fcn.00439eff
add esp, 8
mov dword [0x4a2994], 0
xor eax, eax
mov dword [0x4a2998], 7
mov word [0x4a2984], ax
movups xmm0, xmmword [esi]
movups xmmword [0x4a2984], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x4a2994], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x6c]
cmp ecx, 8
jb 0x40e11c
mov edx, dword [ebp - 0x80]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40e112
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e15a
push ecx
push edx
call fcn.00439eff
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 7
mov word [ebp - 0x80], ax
cmp ecx, 0x10
jb 0x40e16a
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e160
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40e160
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00439eff
add esp, 8
mov dword [ebp - 0x1f], 0x4f4b5442
xor ecx, ecx
mov word [ebp - 0x1b], 0x40
mov byte [ebp - 0x19], 1
nop dword [eax]
lea eax, [ecx + 0x20]
xor byte [ebp + ecx - 0x1f], al
inc ecx
cmp ecx, 5
jb 0x40e180
push 0x201
mov byte [ebp - 0x19], 0
call fcn.00439f0d
lea ecx, [ebp - 0x1f]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e1a6
push 0
sub ecx, edx
lea eax, [ebp - 0x1f]
push ecx
push eax
push dword [0x4a44a4]
call edi
push 0
push 0x200
push esi
push dword [0x4a44a4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40e1da
mov byte [eax + esi], 0
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e1e0
sub ecx, edx
push ecx
push esi
mov ecx, 0x4a4918
call fcn.00407530
mov dword [ebp - 0x20], 0x57435553
xor ecx, ecx
mov dword [ebp - 0x1c], 0x1005651
lea eax, [ecx + 0x20]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 6
jb 0x40e205
push 0x201
mov byte [ebp - 0x19], 0
call fcn.00439f0d
lea ecx, [ebp - 0x20]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e230
push 0
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
push dword [0x4a44a4]
call edi
push 0
push 0x200
push esi
push dword [0x4a44a4]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40e264
mov byte [esi + eax], 0
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40e270
sub ecx, edx
push ecx
push esi
mov ecx, 0x4a48e8
call fcn.00407530
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x10
jb 0x40e2b9
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e2af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e37c
push ecx
push edx
call fcn.00439eff
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0x10
jb 0x40e2ff
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e2f5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e37c
push ecx
push edx
call fcn.00439eff
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x10
jb 0x40e344
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e33a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e37c
push ecx
push edx
call fcn.00439eff
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
cmp ecx, 0x10
jb 0x40e38c
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40e382
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40e382
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00439eff
add esp, 8
mov ecx, dword [ebp - 0xc]
xor al, al
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret