Function at 0x5b01b3
Capabilities:
Encode data using xor

Disassembly:
push 0
jmp 0x5b01ba
jg 0x5b01c9
push esi
pop esi
push eax
cbw
pop eax
jle 0x5b01c9
xchg edi, ebx
xchg edi, ebx
sar dword [ebp + 9], cl
jge 0x5b01d4
jno 0x5b01cd
je 0x5b01cf
jl 0x5b01d4
cmc
cmc
add edi, edi
xchg ebp, eax
invalid
call dword [ebp + 0x368e]
lea ebx, [ebp + 0xa]
push ebx
push eax
call dword [ebp + 0x3686]
call dword [ebp + 0x364e]
jno 0x5b01fa
push eax
push edx
cwd
pop edx
pop eax
cmc
cmc
jo 0x5b01fa
push ebx
pop ebx
xor dword [edx], ebp
push 0
jb 0x5b0209
jnp 0x5b0200
push eax
cbw
pop eax
jae 0x5b0209
mov esi, esi
xor dword [eax + 0x76], edx
or edi, dword [ecx]
push eax
jbe 0x5b0217
jns 0x5b020e
cmc
cmc
ja 0x5b0217
xchg esi, ebx
xchg esi, ebx
fsubr dword [edx]
push 0
js 0x5b0231
xchg ebx, ecx
xchg ebx, ecx
xchg dword [esp], ecx
xchg dword [esp], ecx
jns 0x5b0231
call 0x5b022c
xchg dword [esp], eax
pop eax
adc ebp, dword [edx]
push 0
jno 0x5b0242
xchg ecx, edx
xchg ecx, edx
ja 0x5b023b
jo 0x5b0242
not edi
not edi
add byte [ebp + 0xb], dh
jne 0x5b024f
xchg esi, eax
xchg esi, eax
pushfd
popfd
je 0x5b024f
not ebx
not ebx
or ch, byte [eax]
add byte [eax], al
add byte [eax + 0xf], bh
push 0
js 0x5b0265
not ebp
not ebp
push eax
push edx
cwd
pop edx
pop eax
jns 0x5b0265
push esi
pop esi
mov al, byte [0x68]
add byte [eax + 0x10], bh
push 0
js 0x5b027c
je 0x5b026e
push eax
push edx
cdq
pop edx
pop eax
jns 0x5b027c
xchg dword [esp], edi
xchg dword [esp], edi
adc eax, 0x2b16458b
inc ebp
push cs
mov eax, dword [ebp + 0x16]
sub eax, dword [ebp + 0xe]
sub eax, dword [esp + 4]
shr eax, 1
push eax
ja 0x5b0299
je 0x5b028d
push ebx
mov ebx, ecx
pop ebx
jbe 0x5b0299
push eax
push edx
cdq
pop edx
pop eax
fmul qword [ebx + 0x452b1245]
or ch, byte [ebx]
inc esp
and al, 4
mov eax, dword [ebp + 0x12]
sub eax, dword [ebp + 0xa]
sub eax, dword [esp + 4]
shr eax, 1
push eax
jo 0x5b02b6
js 0x5b02aa
push eax
push edx
cdq
pop edx
pop eax
jno 0x5b02b6
xchg ecx, ebp
xchg ecx, ebp
mov byte [eax + 0xe], ch
add al, byte [eax]
nop
push 0x9000020e
jbe 0x5b02cf
jbe 0x5b02bf
push eax
cbw
pop eax
ja 0x5b02cf
call 0x5b02ca
xchg dword [esp], edi
pop edi
sbb ecx, dword [ebp + 0xe742145]
lea eax, [ebp + 0x21]
je 0x5b02e2
push eax
push edx
cdq
pop edx
pop eax
not eax
not eax
jne 0x5b02e2
cmc
cmc
fist dword [eax + 0x7c]
adc dl, byte [eax - 0x68]
push eax
jl 0x5b02f7
push eax
cwde
pop eax
push eax
push edx
cwd
pop edx
pop eax
jge 0x5b02f7
xchg dword [esp], ebx
xchg dword [esp], ebx
xor eax, 0x7f1a458d
adc al, 0x87
sub al, 0x24
lea eax, [ebp + 0x1a]
jg 0x5b0310
xchg dword [esp], ebp
xchg dword [esp], ebp
call 0x5b0307
xchg dword [esp], esi
pop esi
jle 0x5b0310
jge 0x5b030f
sub byte [eax + 0x75], dl
adc bl, ch
add al, ch
add byte [eax], al
add byte [eax], al
push eax
jne 0x5b0323
jmp 0x5b0315
call 0x5b031a
xchg dword [esp], eax
pop eax
je 0x5b0323
jo 0x5b0322
or byte [edx], ch
push 0
jge 0x5b0333
pushfd
popfd
pushfd
popfd
jl 0x5b0333
push eax
push edx
cdq
pop edx
pop eax
cmp edi, edi
xchg ebp, eax
jbe 0x5b036d
call dword [ebp + 0x3676]
add byte [eax], al
jnp 0x5b034d
not ebp
not ebp
pushfd
popfd
jp 0x5b034d
call 0x5b0348
xchg dword [esp], esi
pop esi
adc dword [eax + 0x74], 0x9952500d
push eax
je 0x5b035d
push eax
push edx
cdq
pop edx
pop eax
push eax
cwde
pop eax
jne 0x5b035d
jg 0x5b035c
rcl byte [eax + 0x7b]
push cs
push eax
jnp 0x5b036e
cmc
cmc
xchg edx, esi
xchg edx, esi
jp 0x5b036e
push eax
push edx
cdq
pop edx
pop eax
and ch, byte [edx + 1]
push 1
jns 0x5b037e
jno 0x5b0374
push eax
cwde
pop eax
js 0x5b037e
xchg edi, ecx
xchg edi, ecx
invalid
push eax
jp 0x5b0391
je 0x5b0383
push eax
push edx
cdq
pop edx
pop eax
jnp 0x5b0391
push eax
push edx
cwd
pop edx
pop eax
mov edi, edi
xchg ebp, eax
jle 0x5b03cb
call dword [ebp + 0x367e]
add byte [eax], al
jle 0x5b03a4
cmc
cmc
push edx
mov edx, ebx
pop edx
jg 0x5b03a4
mov edi, edi
cmp bh, bh
xchg ebp, eax
xor byte [esi], 0
add byte [ebp - 0x3fccf583], cl
call dword [ebp + 0x3682]
lea edi, [ebp + 0xa]
xor eax, eax
mov ecx, 4
rep stosd dword es:[edi], eax
call fcn.005b011f
pop esp
insd dword es:[edi], dx
mov ecx, ss
wait
sub eax, 0x1ecdd15
call fcn.005b016e
pop ebx
je 0x5b03dc
push eax
push edx
cwd
pop edx
pop eax
push eax
cbw
pop eax
jne 0x5b03dc
push ebp
pop ebp
mov word [ecx + 0x36429d], cs
add byte [ebx + 0x366695], cl
add byte [edi + edi*8 + 0x35], ah
add byte [eax], al
add byte [eax], al
mov dword [ebp + 0x3642], ebx
mov edx, dword [ebp + 0x3666]
push dword fs:[0]
mov dword fs:[0], esp
push ecx
push esi
push eax
push ebp
jmp 0x5b03fd
push eax
push 0x87f1b389
pop eax
wait
fninit
add eax, 0xffffffdf
xor eax, eax
sub eax, 0x1f3c5b89
xor eax, 0xffffffd8
push ecx
push 0x976ebfc7
pop ecx
inc ecx
and eax, ecx
xor ecx, eax
push edx
cmp ecx, 0x8042a440
ja 0x4f5b959a
xor ecx, 0x300e86da
inc eax
btr eax, 0x1b
add eax, 0xffffffb9
dec eax
and eax, ecx
add ecx, eax
push ebx
not eax
mov ebx, 0x6f188586
push ebp
inc ecx
bts ecx, 0xf
push esi
inc ebx
sub eax, 0xa3a68911
push 0x5c88f540
pop esi
cmp esi, 0x5c88f540
jl 0xde6db150
sub esi, eax
mov ecx, 0x168da13c
sub ecx, 0x65
push edi
not eax
inc esi
rol esi, 1
mov edi, 0x5aa08528
or esi, 0xb8b17d74
not ecx
cmp eax, 0x93dd55aa
jo 0x5b04df
ror esi, 0x1a
xor esi, 0xfeb39a2a
dec edi
xor eax, 0xbe85ad3
btr ebx, 1
xor ebx, 0x9c2eb6d2
shl edi, 1
push esi
jmp 0x5b0551
scasd eax, dword es:[edi]
fisttp dword [edi]
mov esp, 0x69f383c1
shr ecx, 1
jmp 0x5b0547
or ecx, eax
sar ecx, 1
add ebx, ebx
pop ebx
pop ecx
pop eax
ret
push eax
xor eax, 0x6ac2d400
shl edi, 1
sub esi, 0x92ab2530
ror ecx, 0xa
xor edi, 0xc7733568
sub ecx, 0x4c
push ebx
cmp ecx, esi
jg 0xcc92fe9e
push eax
rol ebx, 1
add eax, 0xf02a567e
or ecx, esi
push esi
add ecx, 0xffffffeb
xor esi, 0xaa65381f
mov ebx, 0xe8627f91
xor ecx, 0xfafbde44
push edi
push eax
btr ebx, 1
xor eax, 0x8a3c2640
btr ebx, 7
push esi
btr ebx, 0x12
push ecx
add ebx, ebx
push eax
mov esi, eax
sub eax, 0x48fa7ecb
shld ebx, eax, 0xa
sub edi, 0xf97463bb
imul ebx, edi, 0xe6068c09
mov ebx, 0xe15c72c2
bswap ebx
bsr ecx, edi
not ebx
mov ecx, 0xc43994b5
add esi, 0xcc567ac2
add ecx, 0xffffffcc
bswap ebx
cmp esi, 0x5ac56098
jne 0x5b05bc
push eax
push 0x695cffb
pop ecx
bswap ecx
push edi
imul eax, esi
xor edi, 0xdec84849
mov ebx, 0x8f38dca
xor ebx, 0xa86f75a
add eax, 0x6a
push edi
rol ecx, 1
xor edi, 0xf7e4f7bc
or byte [ecx - 0x7908a50d], al
or al, byte [ebx - 0x2ea89540]
rol dword [ecx - 0x1b084309], 0xf7
rol eax, 0x12
xor esi, 0xda953804
push ebx
add eax, edi
push edi
push esi
bswap eax
shr ebx, 1
xor ebx, 0x6a
cmp ebx, 0x1b
js 0x5b0600
xchg esi, ebx
sub ebx, 0xffffff9a
mov ebx, esp
xor eax, esi
xor eax, 0x35f1649e
shrd ecx, esi, 0xc
imul esi, edi
or edi, 0x66591e20
add ecx, eax
bsr edi, ecx
add eax, ebx
call fcn.005b04ee
sub ebx, ebx
inc ebx
rol ebx, 1
bsr ebx, esi
add esi, 0x4d
sub ebx, esi
call fcn.005b04ac
bsr esi, ecx
call eax
sub esi, esi
inc esi
mov ebx, 0xa9b29081
sub esi, 0xa684e58e
mov eax, 0x19b3eaa
mov eax, ebx
mov edi, 0xf3ad24c9
imul edi, ebx, 0xed8e8fa7
xor ecx, ecx
dec ecx
imul ebx, ecx, 0xb0eae8be
add esp, 0x40
add byte [eax], al
push 0xdfcc245e
add eax, 0xffffffcc
pop esi
push esi
call fcn.005b04ee
pop eax
pop edi
inc esi
pop esi
imul eax, ecx, 0xb77f6bda
pop ebp
dec ebx
pop ebx
rol ecx, 9
pop edx
sar ecx, 1
pop ecx
cmp eax, 0x48809426
js 0xb1d831a1
pop eax
aas
stosd dword es:[edi], eax
enter 0xffffffffffff9aeb, 0x15
jle 0x5b0699
sbb byte [ecx - 1], bl
mov edi, 0xc3ae6dcb
leave
xor ebp, edx
mov cl, ah
invalid