Function at 0x57419a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x20], ecx
inc edx
mov ecx, dword [ebp + 0xc]
push ebx
push esi
xor ebx, ebx
mov dword [esp + 0x38], edx
mov esi, dword [ecx + 8]
and dword [esp + 0x10], ebx
and dword [esp + 0x34], ebx
push edi
mov dword [esp + 0x10], esi
xor edi, edi
or esi, 0xffffffff
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], esi
cmp eax, 0x15
je 0x5b2a59
cmp eax, 0x1d
ja 0x574209
movzx eax, byte [eax + 0x405ac0]
jmp dword [eax*4 + 0x405a8c]
mov eax, dword [esp + 0x10]
lea edx, [ebx + 6]
cmp eax, edx
ja 0x5b2b44
lea edx, [ebx + 5]
cmp eax, edx
ja 0x5b2b5c
lea edx, [ebx + 4]
cmp eax, edx
jbe 0x574240
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
call fcn.00579ded
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
lea edx, [ebx + 3]
cmp eax, edx
jbe 0x57425b
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
call fcn.00579ded
mov esi, eax
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 2]
cmp eax, ecx
jbe 0x574278
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*4]
call fcn.00579ded
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 1]
cmp eax, ecx
jbe 0x574292
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + ebx*4 + 4]
call fcn.00579ded
mov dword [esp + 0x28], eax
sub esp, 0x10
lea eax, [esp + 0x40]
mov ecx, esp
push eax
and dword [ecx + 8], 0
call fcn.0057e966
mov ebx, dword [esp + 0x24]
push edi
push dword [esp + 0x2c]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push esi
push dword [esp + 0x48]
push dword [esp + 0x50]
push ebx
push dword [ebp + 8]
call fcn.00574364
mov edi, dword [ebp + 0x10]
mov esi, eax
mov ecx, edi
call int.0057b826
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], esi
call fcn.00579ded
test eax, eax
je 0x5b2b77
cmp dword [ebp + 8], 0x1d
je 0x5742f9
push ebx
call fcn.0058e69a
pop ecx
xor esi, esi
lea ecx, [esp + 0x30]
call int.0057b826
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
dec edi
or dh, byte [eax]
inc esi
das
xchg ebx, eax
scasb al, byte es:[edi]
inc ebp
std
cmpsb byte [esi], byte es:[edi]
sub al, 0xf8
in al, dx
jne 0x5b2a7b
sbb dword [ecx - 0x4c18a1a], esi
lodsb al, byte [esi]
outsd dx, dword [esi]
jbe 0x5b2a88
invalid
jne 0x5b2ad1
mov ch, byte [eax - 0x2a824b6f]
mov esp, 0x81a6d481
push ss
pop ecx
and byte [0xf0c7d7dd], al
in eax, 0x1f
inc edi
cwde
adc al, 0x6f
add al, 0x7a
wait
adc eax, dword [ecx + ebp*4 + 0x38]
add dword [ebp + 0x603ac657], edx
sub byte [ecx - 0x10ccf60d], 0xf6
outsb dx, byte [esi]
mov ebp, 0x8308e255
sbb al, 0xdb
sub al, 0xa8
cmp ecx, dword [esi + edi*2]
cdq
mov edi, 0x8f324721
scasb al, byte es:[edi]
div dword [ebp + 0x12f76f3]
pop ss
salc
int1
add byte [edx - 0x65f3750a], dh
xchg esi, eax
sbb dword [ebx - 0x11], esi
out dx, eax
xchg cl, dl
sbb esi, dword [ebp + 0x6b1ee1d6]
lea ecx, [ebp - 0x36]
pop esp
adc dword [edx - 0x21], edi
mov cl, 0xcd
or eax, 0x7de04e91
les eax, [edi + 0x25e1c78e]
push esi
mov eax, dword [0xe4c7ba2b]
cmp eax, 0x3d454c16
sub ebp, dword [ebx + 0x26]
pop edi
dec ebp
aas
xor cl, ch
and byte [ecx - 0x2a], ch
sar dword [edx], cl
xor dh, ah
mov dh, 0xdf
sbb al, 0xec
out 0xa8, al
leave
aas
mov eax, 0x104d1151
mov edx, 0x365f784e
daa
lds edi, [ecx]
pop ss
mov word [esi + 0x7e7a4a6], ds
pushfd
iretd
dec edi
mov edi, 0xc168fdd
adc ecx, ecx
salc
fbstp tbyte [0xb891e6eb]
mov sp, 0x8f84
mov cl, byte [edi + 0x57543deb]
push edi
js 0x5b2b09
sti
xor eax, 0x49de4a7f
xchg esp, eax
xchg dword [ecx - 0x12f0c6a2], edx
inc esi
stc
and byte [edi + edx*4], bh
test eax, 0x3701cf28
cmpsd dword [esi], dword es:[edi]
and dh, al
rol dword [ebx], 1
cmp byte [edx + 0x21], 0x63
std
add eax, dword [eax - 0x29cde86]
out 0x8f, al
dec esp
and dword [0x1dfbd589], eax
xchg esp, eax
in al, dx
das
mov ch, byte [0xe950cf26]
and byte [edx], 0xfa
push esp
xchg edx, eax
cmpsd dword cs:[esi], dword es:[edi]
arpl bp, ax
xor dword [edi], esp
je 0x5b2b7a
repne cmpsb byte [esi], byte es:[edi]
mov dl, al
mov dword [0xffa8b3ac], eax
add edi, eax
into
pop ds
xor dh, byte [esi]
pop ecx
das
enter 0x870, 0xfffffffffffffff3
sub al, 0x2e
sub bl, dh
sbb cl, byte [edi + 0x4e]
invalid