Function at 0x46aa30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1050
call fcn.004d3ef0
mov eax, dword [0x51df40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
movsd xmm1, qword [0x4e76e8]
push esi
mov dword [ebp - 0x104c], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x102c], edi
movsd qword [ebp - 0x1044], xmm1
mov eax, dword [edi + 0x534]
add eax, dword [edi + 0x514]
mov dword [ebp - 0x1020], eax
xor eax, eax
mov dword [ebp - 0x1038], eax
mov eax, dword [edi + 0x4ac]
mov dword [ebp - 0x103c], 0
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x46aac6
push 0x4e5c78
push eax
call fcn.00468be0
movsd xmm1, qword [0x4e76e8]
add esp, 8
neg eax
sbb edx, edx
inc edx
mov dword [ebp - 0x103c], edx
mov ecx, dword [edi + 0x4ac]
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [ecx + 0x38]
test ecx, ecx
je 0x46ab00
push ecx
call esi
xorps xmm0, xmm0
add esp, 4
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, qword [0x4df6c8]
comisd xmm0, xmm1
movsd qword [ebp - 0x1044], xmm1
jb 0x46ab5e
mov eax, dword [edi + 0x4ac]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x46ab2b
push eax
call esi
add esp, 4
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, qword [0x4df6c8]
movsd qword [ebp - 0x1044], xmm1
xorps xmm0, xmm0
comisd xmm0, xmm1
jb 0x46ab5e
push str.30000
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fdiv qword [0x4df6c8]
add esp, 4
fstp qword [ebp - 0x1044]
movsd xmm0, qword [ebp - 0x1044]
movsd qword [ebp - 0x1044], xmm0
push str.wsock
mov dword [edi + 0x528], 1
call fcn.00467fe0
mov eax, dword [edi + 0x4a8]
add esp, 4
cmp dword [eax + 0x14], 0
jne 0x46afa4
push ebx
nop word [eax + eax]
cmp dword [edi + 0x51c], 0
jne 0x46afa3
mov ebx, dword [edi + 0x538]
sub ebx, dword [edi + 0x534]
cmp ebx, 2
jb 0x46abf3
mov edx, dword [ebp - 0x1020]
movzx ecx, byte [edx + 1]
mov esi, ecx
shr ecx, 5
and esi, 0x7f
and ecx, 4
mov dword [ebp - 0x1034], esi
mov dword [ebp - 0x1024], ecx
cmp esi, 0x7e
jae 0x46ac4d
cmp ebx, ecx
jb 0x46ac4a
lea eax, [ecx + 2]
mov dword [ebp - 0x1030], 0
mov dword [ebp - 0x101c], eax
cmp ebx, eax
jae 0x46acd9
mov ecx, dword [edi + 0x538]
sub esp, 8
mov eax, dword [edi + 0x530]
movsd xmm0, qword [ebp - 0x1044]
sub eax, ecx
movsd qword [esp], xmm0
push eax
mov eax, dword [edi + 0x514]
add eax, ecx
push eax
push edi
push 0
call fcn.0046a3c0
add esp, 0x18
cmp eax, 0xfffffffe
jle 0x46afa3
test eax, eax
jle 0x46af11
add dword [edi + 0x538], eax
xor eax, eax
mov dword [ebp - 0x1038], eax
jmp 0x46af6f
cmp esi, 0x7e
jne 0x46ac89
lea eax, [ecx + 4]
mov dword [ebp - 0x101c], eax
cmp ebx, eax
jb 0x46ac89
movzx eax, byte [edx + 2]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x1020]
shld ecx, esi, 8
shl esi, 8
movzx eax, byte [eax + 3]
cdq
add esi, eax
mov dword [ebp - 0x1034], esi
adc ecx, edx
mov dword [ebp - 0x1030], ecx
jmp 0x46acd9
lea eax, [ecx + 0xa]
mov dword [ebp - 0x101c], eax
cmp ebx, eax
jb 0x46abf3
push dword [edx + 2]
mov esi, dword [edx + 6]
call dword [sym.imp.WS2_32.dll_ntohl]
push esi
mov edi, eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, eax
xor eax, eax
add esi, eax
mov dword [ebp - 0x1034], esi
adc eax, edi
mov dword [ebp - 0x1030], eax
test eax, eax
ja 0x46afa3
jb 0x46acd9
cmp esi, 0x7fff0000
ja 0x46afa3
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1028], ecx
cmp esi, 0x1000
jbe 0x46ad07
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1028], ecx
test ecx, ecx
je 0x46afa3
cmp dword [ebp - 0x1024], 0
mov edx, dword [ebp - 0x101c]
jbe 0x46ad2f
mov edi, dword [ebp - 0x1020]
mov eax, edx
sub eax, dword [ebp - 0x1024]
mov eax, dword [eax + edi]
mov dword [ebp - 0x1048], eax
jmp 0x46ad39
mov dword [ebp - 0x1048], 0
mov eax, dword [ebp - 0x1020]
mov dword [ebp - 0x101c], edx
mov al, byte [eax]
mov byte [ebp - 0x1015], al
xor eax, eax
add dword [ebp - 0x101c], esi
adc eax, dword [ebp - 0x1030]
test eax, eax
jb 0x46adfa
ja 0x46ad71
cmp dword [ebp - 0x101c], ebx
jbe 0x46adfa
mov eax, dword [ebp - 0x1020]
sub ebx, edx
push ebx
add eax, edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov edi, dword [ebp - 0x102c]
xor eax, eax
add esp, 0xc
cmp eax, dword [ebp - 0x1030]
ja 0x46adec
jb 0x46ada0
cmp ebx, esi
jae 0x46adec
nop dword [eax]
movsd xmm0, qword [ebp - 0x1044]
sub esp, 8
mov eax, esi
sub eax, ebx
movsd qword [esp], xmm0
push eax
mov eax, dword [ebp - 0x1028]
add eax, ebx
push eax
push edi
push 0
call fcn.0046a3c0
add esp, 0x18
cmp eax, 0xfffffffe
jle 0x46af81
test eax, eax
lea ecx, [eax + ebx]
cmovle ecx, ebx
xor eax, eax
mov ebx, ecx
cmp eax, dword [ebp - 0x1030]
jb 0x46ada0
ja 0x46adec
cmp ebx, esi
jb 0x46ada0
mov eax, dword [edi + 0x534]
mov dword [edi + 0x538], eax
jmp 0x46ae39
push dword [ebp - 0x1034]
mov eax, dword [ebp - 0x1020]
add esi, edx
add eax, edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x1020]
sub ebx, esi
push ebx
lea eax, [esi + ecx]
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edi, dword [ebp - 0x102c]
add esp, 0x18
sub dword [edi + 0x538], esi
mov esi, dword [ebp - 0x1034]
cmp dword [ebp - 0x1024], 0
mov ebx, dword [ebp - 0x1028]
jbe 0x46ae64
xor ecx, ecx
test esi, esi
je 0x46ae64
nop
mov eax, ecx
and eax, 3
mov al, byte [ebp + eax - 0x1048]
xor byte [ecx + ebx], al
inc ecx
cmp ecx, esi
jb 0x46ae50
cmp dword [ebp - 0x103c], 0
mov cl, byte [ebp - 0x1015]
mov dword [ebp - 0x1024], 0
je 0x46aeac
mov al, cl
and al, 0xf
cmp al, 0xa
jne 0x46ae8f
xor eax, eax
mov dword [ebp - 0x1038], eax
jmp 0x46aede
cmp al, 9
jne 0x46aeac
push 0
push esi
push ebx
push 0xa
push edi
call fcn.004690a0
add esp, 0x14
test eax, eax
jle 0x46afa3
jmp 0x46aede
mov edx, dword [ebp - 0x104c]
test edx, edx
je 0x46aede
push dword [ebp - 0x1050]
movzx eax, cl
push esi
push ebx
push eax
push edi
call edx
mov ecx, dword [ebp - 0x1024]
add esp, 0x14
test eax, eax
mov eax, 1
cmove ecx, eax
mov dword [ebp - 0x1024], ecx
lea eax, [ebp - 0x1014]
cmp ebx, eax
je 0x46aef2
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp dword [ebp - 0x1024], 0
jne 0x46afa3
mov al, byte [ebp - 0x1015]
and al, 0xf
cmp al, 8
je 0x46afa3
jmp 0x46af6f
mov eax, dword [edi + 0x4a8]
cmp dword [eax + 0x14], 0
jne 0x46af6f
cmp dword [edi + 0x51c], 0
jne 0x46af6f
mov ebx, dword [ebp - 0x1038]
cmp ebx, 5
jg 0x46afa3
cmp dword [ebp - 0x103c], 0
je 0x46af6f
lea esi, [edi + 0x554]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 2
lea eax, [ebp - 0x14]
mov word [ebp - 0x14], 0x89
push eax
push edi
call fcn.004691a0
add esp, 0xc
push esi
cmp eax, 2
jne 0x46af9d
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
inc ebx
mov dword [ebp - 0x1038], ebx
mov eax, dword [edi + 0x4a8]
cmp dword [eax + 0x14], 0
je 0x46ab90
jmp 0x46afa3
mov eax, dword [ebp - 0x1028]
lea ecx, [ebp - 0x1014]
cmp eax, ecx
je 0x46afa3
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x46afa3
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop ebx
push str.worker
call fcn.00467fe0
mov eax, dword [ebp - 0x102c]
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
mov dword [eax + 0x528], 0
pop esi
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret