Function at 0x599a00
Capabilities:
Encode data using xor

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
sub esp, 0xa0
cmp byte [ebx + 0xc], 0
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xc], edi
je 0x599d37
nop dword [eax]
call sub.KERNEL32.dll_GetCurrentProcessorNumber
mov dword [ebp - 0x2c], eax
xor esi, esi
nop word [eax + eax]
lea ecx, [esi + eax]
add edi, 0x50280
and ecx, 0xf
imul ecx, ecx, 0x51200
add ecx, edi
call fcn.0059b030
mov edi, eax
test edi, edi
jne 0x599a6d
mov eax, dword [ebp - 0x2c]
inc esi
mov edi, dword [ebp - 0xc]
cmp esi, 0x10
jb 0x599a40
jmp 0x599a30
push dword [ebx + 8]
mov ecx, edi
call fcn.0059c000
mov eax, edi
xorps xmm0, xmm0
mov edi, dword [ebx + 0x10]
cdq
movq qword [ebp - 0x48], xmm0
and edx, 0xffff
mov dword [ebp - 0x48], eax
add edi, 0x100
mov dword [ebp - 0x44], edx
movq xmm0, qword [ebp - 0x48]
movq qword [ebp - 0x48], xmm0
mov dword [ebp - 0xc], edi
xorps xmm0, xmm0
movq qword [ebp - 0x40], xmm0
movq xmm0, qword [edi]
movq qword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
nop
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
movq xmm0, qword [ebp - 0x78]
movq qword [ebp - 0x40], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [ebp - 0x38], xmm0
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 0x9c], eax
movq xmm0, qword [ecx]
movq qword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
nop
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x80], eax
movq xmm0, qword [ebp - 0x80]
movq qword [ebp - 0x38], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movq xmm0, qword [edi]
mov esi, dword [ebp - 0x2c]
movq qword [ebp - 8], xmm0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
nop
xor ecx, dword [ebp - 0x30]
mov eax, edx
xor eax, esi
and eax, 0xffff
or ecx, eax
jne 0x599aa4
xor edx, esi
xor eax, eax
and edx, 0xffff0000
or eax, edx
jne 0x599aa4
movq xmm0, qword [ebp - 0x38]
movq qword [ebp - 8], xmm0
cmp dword [ebp - 8], eax
je 0x599c0b
xorps xmm0, xmm0
movq qword [ebp - 0x60], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
nop
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
movq xmm0, qword [ebp - 0x88]
movq qword [ebp - 0x60], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x58], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
nop
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ecx
movq xmm0, qword [ebp - 0x90]
movq qword [ebp - 0x58], xmm0
mov eax, dword [ebp - 0x52]
mov edi, dword [ebp - 0x58]
inc eax
mov ecx, dword [ebp - 0x54]
mov edx, ecx
mov word [ebp - 0x5a], ax
mov eax, edi
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x5c]
push ebx
mov ebx, esi
lock cmpxchg8b qword [edi]
mov esi, ebx
pop ebx
cmp eax, dword [ebp - 0x2c]
jne 0x599bfd
cmp edx, dword [ebp - 4]
je 0x599aa4
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x599aa4
movq xmm0, qword [ebp - 0x40]
movq qword [ebp - 0xa0], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x68], xmm0
movq xmm0, qword [ebp - 0x48]
movq qword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
nop
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
movq xmm0, qword [ebp - 0x98]
movq qword [ebp - 0x68], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x28], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [ebp - 8], xmm0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
nop
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
movq xmm0, qword [ebp - 0x18]
movq qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x22]
mov edi, dword [ebp - 0x28]
inc eax
mov ecx, dword [ebp - 0x24]
mov edx, ecx
mov word [ebp - 0x62], ax
mov eax, edi
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x64]
push ebx
mov ebx, esi
lock cmpxchg8b qword [edi]
mov esi, ebx
pop ebx
cmp eax, dword [ebp - 4]
jne 0x599cab
cmp edx, dword [ebp - 0x2c]
je 0x599cb9
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp 0x599aa4
xorps xmm0, xmm0
movq qword [ebp - 0x70], xmm0
movq xmm0, qword [ebp - 0x48]
movq qword [ebp - 0x18], xmm0
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
nop
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
movq xmm0, qword [ebp - 0x18]
movq qword [ebp - 0x70], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x28], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [ebp - 0x18], xmm0
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
nop
mov esi, dword [ebp - 0x70]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
movq xmm0, qword [ebp - 0x18]
movq qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x22]
mov edx, dword [ebp - 0x24]
inc eax
mov word [ebp - 0x6a], ax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x6c]
push ebx
mov ebx, esi
lock cmpxchg8b qword [edi]
mov esi, ebx
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
mov ecx, dword [ebx + 0x10]
push dword [ebx + 8]
lea ecx, [ecx + 0x180]
call fcn.0059b190
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc