Function at 0x4a26c0
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 0x4a2997
push 0xdf
push str..crypto_randmd_rand.c
push 0x12
push 9
call fcn.0046fd40
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 0x4a292a
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 0x4a2784
inc edx
lea esi, [ebp + edx]
mov ebp, dword [esp + 0x20]
test ebp, ebp
mov dword [0x5397e4], esi
je 0x4a297c
sub esp, 0xc
lea ebp, [esp + 0x3c]
push ebp
call fcn.00478e40
mov dword [esp + 0x34], 0
add esp, 0x10
mov edx, dword [esp + 0x84]
cmp dword [esp + 0x24], edx
jge 0x4a28c2
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x24]
cmp edi, 0x14
jle 0x4a27e5
mov edi, 0x14
push esi
push 0
sub esp, 8
call fcn.0047a3a0
pop edx
pop ecx
push eax
push ebp
call fcn.00478e90
add esp, 0xc
push 0x14
lea ecx, [esp + 0x48]
push ecx
push ebp
lea esi, [ebx + edi - 0x3ff]
call fcn.00479030
add esp, 0x10
test esi, esi
jle 0x4a2953
mov edx, edi
sub edx, esi
push eax
push edx
lea eax, [ebx + 0x539810]
push eax
push ebp
call fcn.00479030
add esp, 0xc
push esi
push 0x539810
push ebp
call fcn.00479030
add esp, 0xc
push edi
mov esi, dword [esp + 0x88]
push esi
push ebp
call fcn.00479030
add esp, 0xc
push 8
mov edx, dword [esp + 0x24]
push edx
push ebp
call fcn.00479030
add esp, 0xc
push 0
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.00479050
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 0x4a28ac
nop
lea esi, [esi]
mov edx, ebx
mov al, byte [esp + ecx + 0x40]
inc ebx
xor byte [edx + 0x539810], al
cmp ebx, 0x3fe
jle 0x4a28a7
xor ebx, ebx
inc ecx
cmp ecx, edi
jl 0x4a2890
add dword [esp + 0x24], 0x14
mov edi, dword [esp + 0x84]
cmp dword [esp + 0x24], edi
jl 0x4a27d0
sub esp, 0xc
push ebp
call fcn.00479110
add esp, 0x10
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x4a2961
xor edx, edx
lea esi, [esi]
mov cl, byte [esp + edx + 0x40]
xor byte [edx + 0x539c30], cl
inc edx
cmp edx, 0x13
jle 0x4a28e0
fld qword [0x539790]
fld dword [0x524ea0]
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x4a29ec
fadd qword [esp + 0x88]
fstp qword [0x539790]
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4a29fa
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x5397d0]
cmp eax, 0x3fe
mov dword [0x5397f0], ecx
jg 0x4a2755
cmp ecx, eax
jle 0x4a2755
mov dword [0x5397d0], ecx
jmp 0x4a2755
push eax
push edi
lea esi, [ebx + 0x539810]
push esi
jmp 0x4a2837
push 0x12a
push str..crypto_randmd_rand.c
push 0x12
push 9
call fcn.0046fd40
add esp, 0x10
jmp 0x4a28da
push 0xff
push str..crypto_randmd_rand.c
push 0x12
push 0xa
call fcn.0046fd40
add esp, 0x10
jmp 0x4a279a
push 0xd8
push str..crypto_randmd_rand.c
push 0x13
push 5
call fcn.0046fd40
call fcn.0046f9d0
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.0046fd40
add esp, 0x10
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x4a26f2
jmp 0x4a26dc
fstp st(0)
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x4a2922
push 0x135
push str..crypto_randmd_rand.c
push 0x12
push 0xa
call fcn.0046fd40
add esp, 0x10
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret