Function at 0x4a24a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [0x5397c0]
test eax, eax
mov dword [esp + 0x20], 0
jne 0x4a2777
push 0xdf
push str..crypto_randmd_rand.c
push 0x12
push 9
call fcn.0046fb20
add esp, 0x10
mov ebp, dword [0x5397e0]
mov dword [esp + 0x28], ebp
lea eax, [esp + 0x28]
mov ebp, dword [0x5397e4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebp
mov esi, 0x539c30
cld
mov ecx, 5
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [0x5397f0]
mov esi, dword [esp + 0x84]
lea ecx, [ebx + esi]
cmp ecx, 0x3fe
jle 0x4a270a
mov eax, ecx
mov edi, 0x3ff
cdq
idiv edi
mov dword [0x5397f0], edx
mov dword [0x5397d0], 0x3ff
mov eax, 0x66666667
imul dword [esp + 0x84]
mov edi, dword [esp + 0x84]
sar edx, 3
sar edi, 0x1f
sub edx, edi
lea eax, [edx + edx*4]
shl eax, 2
mov ecx, dword [esp + 0x84]
sub ecx, eax
test ecx, ecx
jle 0x4a2564
inc edx
lea esi, [ebp + edx]
mov ebp, dword [esp + 0x20]
test ebp, ebp
mov dword [0x5397e4], esi
je 0x4a275c
sub esp, 0xc
lea ebp, [esp + 0x3c]
push ebp
call fcn.00478c20
mov dword [esp + 0x34], 0
add esp, 0x10
mov edx, dword [esp + 0x84]
cmp dword [esp + 0x24], edx
jge 0x4a26a2
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x24]
cmp edi, 0x14
jle 0x4a25c5
mov edi, 0x14
push esi
push 0
sub esp, 8
call fcn.0047a180
pop edx
pop ecx
push eax
push ebp
call fcn.00478c70
add esp, 0xc
push 0x14
lea ecx, [esp + 0x48]
push ecx
push ebp
lea esi, [ebx + edi - 0x3ff]
call fcn.00478e10
add esp, 0x10
test esi, esi
jle 0x4a2733
mov edx, edi
sub edx, esi
push eax
push edx
lea eax, [ebx + 0x539810]
push eax
push ebp
call fcn.00478e10
add esp, 0xc
push esi
push 0x539810
push ebp
call fcn.00478e10
add esp, 0xc
push edi
mov esi, dword [esp + 0x88]
push esi
push ebp
call fcn.00478e10
add esp, 0xc
push 8
mov edx, dword [esp + 0x24]
push edx
push ebp
call fcn.00478e10
add esp, 0xc
push 0
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.00478e30
lea ecx, [esp + 0x38]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
inc dword [esp + 0x3c]
add dword [esp + 0x90], edi
add esp, 0x10
cmp ecx, edi
jge 0x4a268c
nop
lea esi, [esi]
mov edx, ebx
mov al, byte [esp + ecx + 0x40]
inc ebx
xor byte [edx + 0x539810], al
cmp ebx, 0x3fe
jle 0x4a2687
xor ebx, ebx
inc ecx
cmp ecx, edi
jl 0x4a2670
add dword [esp + 0x24], 0x14
mov edi, dword [esp + 0x84]
cmp dword [esp + 0x24], edi
jl 0x4a25b0
sub esp, 0xc
push ebp
call fcn.00478ef0
add esp, 0x10
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x4a2741
xor edx, edx
lea esi, [esi]
mov cl, byte [esp + edx + 0x40]
xor byte [edx + 0x539c30], cl
inc edx
cmp edx, 0x13
jle 0x4a26c0
fld qword [0x539790]
fld dword [0x524e60]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x4a27cc
fadd qword [esp + 0x88]
fstp qword [0x539790]
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4a27da
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x5397d0]
cmp eax, 0x3fe
mov dword [0x5397f0], ecx
jg 0x4a2535
cmp ecx, eax
jle 0x4a2535
mov dword [0x5397d0], ecx
jmp 0x4a2535
push eax
push edi
lea esi, [ebx + 0x539810]
push esi
jmp 0x4a2617
push 0x12a
push str..crypto_randmd_rand.c
push 0x12
push 9
call fcn.0046fb20
add esp, 0x10
jmp 0x4a26ba
push 0xff
push str..crypto_randmd_rand.c
push 0x12
push 0xa
call fcn.0046fb20
add esp, 0x10
jmp 0x4a257a
push 0xd8
push str..crypto_randmd_rand.c
push 0x13
push 5
call fcn.0046fb20
call fcn.0046f7b0
add esp, 0x10
cmp eax, dword [0x5397b0]
sete dl
and edx, 0xff
mov dword [esp + 0x20], edx
push 0xda
push str..crypto_randmd_rand.c
push 0x13
push 6
call fcn.0046fb20
add esp, 0x10
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x4a24d2
jmp 0x4a24bc
fstp st(0)
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x4a2702
push 0x135
push str..crypto_randmd_rand.c
push 0x12
push 0xa
call fcn.0046fb20
add esp, 0x10
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret