Function at 0x47b520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1050
call fcn.005091e0
mov eax, dword [0x55ca98]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
movsd xmm1, qword [0x514cd8]
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 + 0x514]
add eax, dword [edi + 0x534]
mov dword [ebp - 0x1024], eax
xor eax, eax
mov dword [ebp - 0x1034], eax
mov eax, dword [edi + 0x4ac]
mov dword [ebp - 0x103c], 0
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x47b5b6
push 0x51e854
push eax
call fcn.00479650
movsd xmm1, qword [0x514cd8]
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 0x47b5f0
push ecx
call esi
xorps xmm0, xmm0
add esp, 4
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, qword [0x514590]
comisd xmm0, xmm1
movsd qword [ebp - 0x1044], xmm1
jb 0x47b64e
mov eax, dword [edi + 0x4ac]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x47b61b
push eax
call esi
add esp, 4
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, qword [0x514590]
movsd qword [ebp - 0x1044], xmm1
xorps xmm0, xmm0
comisd xmm0, xmm1
jb 0x47b64e
push str.30000
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fdiv qword [0x514590]
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.00478a50
mov eax, dword [edi + 0x4a8]
add esp, 4
cmp dword [eax + 0x14], 0
jne 0x47baba
push ebx
nop word [eax + eax]
cmp dword [edi + 0x51c], 0
jne 0x47bab9
mov ebx, dword [edi + 0x538]
sub ebx, dword [edi + 0x534]
cmp ebx, 2
jb 0x47b6e3
mov edx, dword [ebp - 0x1024]
movzx ecx, byte [edx + 1]
mov esi, ecx
shr ecx, 5
and esi, 0x7f
and ecx, 4
mov dword [ebp - 0x101c], esi
mov dword [ebp - 0x1038], ecx
cmp esi, 0x7e
jae 0x47b73d
cmp ebx, ecx
jb 0x47b73a
lea eax, [ecx + 2]
mov dword [ebp - 0x1030], 0
mov dword [ebp - 0x1020], eax
cmp ebx, eax
jae 0x47b7c9
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.0047aeb0
add esp, 0x18
cmp eax, 0xfffffffe
jle 0x47bab9
test eax, eax
jle 0x47ba27
add dword [edi + 0x538], eax
xor eax, eax
mov dword [ebp - 0x1034], eax
jmp 0x47ba85
cmp esi, 0x7e
jne 0x47b779
lea eax, [ecx + 4]
mov dword [ebp - 0x1020], eax
cmp ebx, eax
jb 0x47b779
movzx eax, byte [edx + 2]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x1024]
shld ecx, esi, 8
shl esi, 8
movzx eax, byte [eax + 3]
cdq
add esi, eax
mov dword [ebp - 0x101c], esi
adc ecx, edx
mov dword [ebp - 0x1030], ecx
jmp 0x47b7c9
lea eax, [ecx + 0xa]
mov dword [ebp - 0x1020], eax
cmp ebx, eax
jb 0x47b6e3
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 - 0x101c], esi
adc eax, edi
mov dword [ebp - 0x1030], eax
test eax, eax
ja 0x47bab9
jb 0x47b7c9
cmp esi, 0x7fff0000
ja 0x47bab9
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1028], ecx
cmp esi, 0x1000
jbe 0x47b7f7
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 0x47bab9
cmp dword [ebp - 0x1038], 0
mov edx, dword [ebp - 0x1020]
jbe 0x47b81f
mov edi, dword [ebp - 0x1024]
mov eax, edx
sub eax, dword [ebp - 0x1038]
mov eax, dword [eax + edi]
mov dword [ebp - 0x1048], eax
jmp 0x47b829
mov dword [ebp - 0x1048], 0
mov eax, dword [ebp - 0x1024]
mov dword [ebp - 0x1020], edx
mov al, byte [eax]
mov byte [ebp - 0x1016], al
xor eax, eax
add dword [ebp - 0x1020], esi
adc eax, dword [ebp - 0x1030]
test eax, eax
jb 0x47b8ea
ja 0x47b861
cmp dword [ebp - 0x1020], ebx
jbe 0x47b8ea
mov eax, dword [ebp - 0x1024]
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 0x47b8dc
jb 0x47b890
cmp ebx, esi
jae 0x47b8dc
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.0047aeb0
add esp, 0x18
cmp eax, 0xfffffffe
jle 0x47ba97
test eax, eax
lea ecx, [eax + ebx]
cmovle ecx, ebx
xor eax, eax
mov ebx, ecx
cmp eax, dword [ebp - 0x1030]
jb 0x47b890
ja 0x47b8dc
cmp ebx, esi
jb 0x47b890
mov eax, dword [edi + 0x534]
mov dword [edi + 0x538], eax
jmp 0x47b929
push dword [ebp - 0x101c]
mov eax, dword [ebp - 0x1024]
add esi, edx
add eax, edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x1024]
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 - 0x101c]
cmp dword [ebp - 0x1038], 0
mov ebx, dword [ebp - 0x1028]
jbe 0x47b954
xor ecx, ecx
test esi, esi
je 0x47b954
nop
mov eax, ecx
and eax, 3
mov al, byte [ebp + eax - 0x1048]
xor byte [ecx + ebx], al
inc ecx
cmp ecx, esi
jb 0x47b940
mov cl, byte [ebp - 0x1016]
mov al, cl
mov dword [ebp - 0x101c], 0
and al, 0xf
cmp dword [ebp - 0x103c], 0
mov byte [ebp - 0x1016], al
je 0x47b9e4
cmp al, 0xa
jne 0x47b98e
xor eax, eax
mov byte [ebp - 0x1015], 0xa
mov dword [ebp - 0x1034], eax
mov esi, eax
jmp 0x47b9b6
cmp al, 9
jne 0x47b9ea
push 0
push esi
push ebx
push 0xa
push edi
call fcn.00479b10
add esp, 0x14
test eax, eax
jle 0x47bab9
mov byte [ebp - 0x1015], 9
mov esi, dword [ebp - 0x101c]
lea eax, [ebp - 0x1014]
cmp ebx, eax
je 0x47b9ca
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
test esi, esi
jne 0x47bab9
cmp byte [ebp - 0x1015], 8
je 0x47bab9
jmp 0x47ba85
mov byte [ebp - 0x1016], al
mov edx, dword [ebp - 0x104c]
mov byte [ebp - 0x1015], al
test edx, edx
je 0x47b9b0
push dword [ebp - 0x1050]
mov byte [ebp - 0x1015], al
push esi
push ebx
movzx eax, cl
push eax
push edi
call edx
add esp, 0x14
test eax, eax
jne 0x47b9b0
lea esi, [eax + 1]
mov al, byte [ebp - 0x1016]
mov byte [ebp - 0x1015], al
jmp 0x47b9b6
mov eax, dword [edi + 0x4a8]
cmp dword [eax + 0x14], 0
jne 0x47ba85
cmp dword [edi + 0x51c], 0
jne 0x47ba85
mov ebx, dword [ebp - 0x1034]
cmp ebx, 5
jg 0x47bab9
cmp dword [ebp - 0x103c], 0
je 0x47ba85
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.00479c10
add esp, 0xc
push esi
cmp eax, 2
jne 0x47bab3
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
inc ebx
mov dword [ebp - 0x1034], ebx
mov eax, dword [edi + 0x4a8]
cmp dword [eax + 0x14], 0
je 0x47b680
jmp 0x47bab9
mov eax, dword [ebp - 0x1028]
lea ecx, [ebp - 0x1014]
cmp eax, ecx
je 0x47bab9
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x47bab9
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop ebx
push str.worker
call fcn.00478a50
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.005091c5
mov esp, ebp
pop ebp
ret