Function at 0x59d400
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 0x59d734
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 0x59d46d
mov eax, dword [ebp - 0x2c]
inc esi
mov edi, dword [ebp - 0xc]
cmp esi, 0x10
jb 0x59d440
jmp 0x59d430
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, 0x10
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 0x59d4a1
xor edx, esi
xor eax, eax
and edx, 0xffff0000
or eax, edx
jne 0x59d4a1
movq xmm0, qword [ebp - 0x38]
movq qword [ebp - 8], xmm0
cmp dword [ebp - 8], eax
je 0x59d608
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 0x59d5fa
cmp edx, dword [ebp - 4]
je 0x59d4a1
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x59d4a1
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 0x59d6a8
cmp edx, dword [ebp - 0x2c]
je 0x59d6b6
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp 0x59d4a1
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 + 0x18]
call fcn.0059b190
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc