Function at 0x532ce0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8c
fld qword [ebp + 0x10]
fstp qword [ebp - 0x68]
mov edx, dword [0x6f8c60]
test edx, edx
jne 0x532ff6
mov dword [esp + 0xc], 0xe1
mov dword [esp + 8], str.crypto_rand_md_rand.c
mov dword [esp + 4], 0x12
mov dword [esp], 9
call fcn.004f4964
mov dword [ebp - 0x60], 0
mov ebx, dword [0x6f8c78]
mov eax, dword [0x6f8c7c]
mov dword [ebp - 0x20], eax
mov eax, dword [0x6f8c80]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x7c], edx
mov esi, 0x6f8c84
mov ecx, 5
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xc]
add eax, ebx
mov dword [0x6f8c78], eax
cmp eax, 0x3fe
jle 0x532f80
mov cx, 0x3ff
cdq
idiv ecx
mov dword [0x6f8c78], edx
mov dword [0x6f8c98], 0x3ff
mov edx, 0x66666667
mov eax, dword [ebp + 0xc]
imul edx
sar edx, 3
mov eax, dword [ebp + 0xc]
sar eax, 0x1f
sub edx, eax
mov ecx, dword [ebp - 0x5c]
lea ecx, [edx + ecx]
lea eax, [edx + edx*4]
shl eax, 2
mov edx, dword [ebp + 0xc]
sub edx, eax
test edx, edx
setg al
movzx eax, al
lea eax, [ecx + eax]
mov dword [0x6f8c80], eax
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x532fcd
lea esi, [ebp - 0x54]
mov dword [esp], esi
call fcn.004fdac0
mov edi, dword [ebp + 0xc]
test edi, edi
jle 0x532f03
mov dword [ebp - 0x5c], 0
nop
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp - 0x5c]
cmp edi, 0x14
jle 0x532df4
mov edi, 0x14
call fcn.004f0d80
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004fdb10
mov dword [esp + 8], 0x14
lea eax, [ebp - 0x3c]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004fddac
lea edx, [ebx + edi - 0x3ff]
test edx, edx
jle 0x532ee8
mov eax, edi
sub eax, edx
mov dword [esp + 8], eax
lea eax, [ebx + 0x6f8ca0]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [ebp - 0x6c], edx
call fcn.004fddac
mov edx, dword [ebp - 0x6c]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x6f8ca0
mov dword [esp], esi
call fcn.004fddac
mov dword [esp + 8], edi
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.004fddac
mov dword [esp + 8], 8
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004fddac
mov dword [esp + 8], 0
lea edx, [ebp - 0x3c]
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.004fddbc
inc dword [ebp - 0x1c]
test edi, edi
jle 0x532ed4
xor eax, eax
lea esi, [esi]
mov dl, byte [ebx + 0x6f8ca0]
xor dl, byte [ebp + eax - 0x3c]
mov byte [ebx + 0x6f8ca0], dl
inc ebx
cmp ebx, 0x3fe
jle 0x532ecf
xor ebx, ebx
inc eax
cmp eax, edi
jne 0x532eb4
add dword [ebp - 0x5c], 0x14
mov eax, dword [ebp - 0x5c]
cmp dword [ebp + 0xc], eax
jle 0x532f03
add dword [ebp + 8], edi
jmp 0x532de4
mov dword [esp + 8], edi
lea eax, [ebx + 0x6f8ca0]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004fddac
jmp 0x532e67
mov dword [esp], esi
call fcn.004fde48
mov ebx, dword [ebp - 0x60]
test ebx, ebx
je 0x532fa4
xor eax, eax
mov dl, byte [ebp + eax - 0x3c]
xor byte [eax + 0x6f8c84], dl
inc eax
cmp eax, 0x14
jne 0x532f18
fld qword [0x6f8c70]
fld dword [0x6b9e28]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x532f48
fadd qword [ebp - 0x68]
fstp qword [0x6f8c70]
jmp 0x532f4a
fstp st(0)
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x532f75
mov dword [esp + 0xc], 0x13f
mov dword [esp + 8], str.crypto_rand_md_rand.c
mov dword [esp + 4], 0x12
mov dword [esp], 0xa
call fcn.004f4964
add esp, 0x8c
pop ebx
pop esi
pop edi
leave
ret
mov edx, dword [0x6f8c98]
cmp edx, 0x3fe
jg 0x532d84
cmp eax, edx
jle 0x532d84
mov dword [0x6f8c98], eax
jmp 0x532d84
mov dword [esp + 0xc], 0x134
mov dword [esp + 8], str.crypto_rand_md_rand.c
mov dword [esp + 4], 0x12
mov dword [esp], 9
call fcn.004f4964
jmp 0x532f16
mov dword [esp + 0xc], 0x101
mov dword [esp + 8], str.crypto_rand_md_rand.c
mov dword [esp + 4], 0x12
mov dword [esp], 0xa
call fcn.004f4964
jmp 0x532dc5
lea ebx, [ebp - 0x28]
mov dword [esp], ebx
call fcn.004f456c
mov dword [esp + 0xc], 0xda
mov dword [esp + 8], str.crypto_rand_md_rand.c
mov dword [esp + 4], 0x13
mov dword [esp], 5
call fcn.004f4964
mov dword [esp + 4], ebx
mov dword [esp], 0x6f8c64
call fcn.004f45bc
mov ebx, eax
mov dword [esp + 0xc], 0xdc
mov dword [esp + 8], str.crypto_rand_md_rand.c
mov dword [esp + 4], 0x13
mov dword [esp], 6
call fcn.004f4964
test ebx, ebx
jne 0x532d00
mov dword [ebp - 0x60], 1
jmp 0x532d2b