Function at 0x4e145a
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 0x51fd19
cmp eax, 0x1d
ja 0x4e14c9
movzx eax, byte [eax + 0x405ac0]
jmp dword [eax*4 + 0x405a8c]
mov eax, dword [esp + 0x10]
lea edx, [ebx + 6]
cmp eax, edx
ja 0x51fe04
lea edx, [ebx + 5]
cmp eax, edx
ja 0x51fe1c
lea edx, [ebx + 4]
cmp eax, edx
jbe 0x4e1500
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
call fcn.004e70ad
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
lea edx, [ebx + 3]
cmp eax, edx
jbe 0x4e151b
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
call fcn.004e70ad
mov esi, eax
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 2]
cmp eax, ecx
jbe 0x4e1538
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*4]
call fcn.004e70ad
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 1]
cmp eax, ecx
jbe 0x4e1552
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + ebx*4 + 4]
call fcn.004e70ad
mov dword [esp + 0x28], eax
sub esp, 0x10
lea eax, [esp + 0x40]
mov ecx, esp
push eax
and dword [ecx + 8], 0
call int.004ebc26
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.004e1624
mov edi, dword [ebp + 0x10]
mov esi, eax
mov ecx, edi
call fcn.004e8ae6
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], esi
call fcn.004e70ad
test eax, eax
je 0x51fe37
cmp dword [ebp + 8], 0x1d
je 0x4e15b9
push ebx
call fcn.004fb95a
pop ecx
xor esi, esi
lea ecx, [esp + 0x30]
call fcn.004e8ae6
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xchg ebx, eax
xchg byte [ebx - 0x2a1a9004], ah
jns 0x51fcd5
imul esi, eax, 0x7aa3fd3d
push esi
wait
mov ch, cl
ret
cdq
mov dl, 0x6f
cmp al, 0x9e
xchg esi, eax
rcl byte [ebp - 0x12]
fmul qword [ecx]
stc
xchg esp, eax
shl byte [0x3f415547], 1
cmpsb byte [esi], byte es:[edi]
pushal
mov al, 0xb
adc byte [eax + 0x3d], ah
fsubr qword [edx]
xor eax, dword [esi + 0x4e]
inc esi
pop ds
rol ch, 1
pop esi
cmp ebx, eax
loopne 0x51fca9
cmp eax, 0x3f1bb452
ror esi, 0xb
pop ecx
push ebx
mov bl, 0x2d
lahf
xchg edi, edx
xchg edi, edx
fcom qword [eax + 0x6f]
xor al, 0xbb
dec eax
jp 0x51fca8
in eax, dx
loope 0x51fd19
aaa
inc ecx
and ebx, dword [esi + 0x3c]
jecxz 0x51fc7e
sub eax, 0x8fe45ef3
push eax
cdq
jne 0x51fd14
mov bl, 0xc4
xor eax, 0xbd6d300e
mov bl, 0xd3
and ah, byte gs:[eax + 0x4d4a4dc2]
and ch, byte [esi + 0x63]
inc esi
sub eax, 0x45e8b98
and eax, 0xb2e5eeab
insd dword es:[edi], dx
sub al, 0x90
jno 0x51fcdc
push 0x1b
shl byte [ebp - 0x52], 0x56
jle 0x51fd3a
cmpsb byte [esi], byte es:[edi]
dec ecx
sub ch, byte [ebx]
adc eax, 0x1c6307c2
push ds
dec ebp
fld st(1)
outsb dx, byte [esi]
test dword [ebx - 0x5f378390], ebp
lds ebx, [ebx]
mov dword [0x86e0648e], eax
mov al, byte [0x8ea31bc5]
loopne 0x51fcc8
ja 0x51fdc1
xor edi, dword [ebx + 0x62]
insd dword es:[edi], dx
jae 0x51fcde
xchg ebp, eax
jecxz 0x51fd5c
iretd
mov eax, 0x1fc09a83
xor byte [eax + 0x70c1ba5d], ah
push ecx
pop ebx
and ebx, edx
sbb dword [edi], esp
push esi
push edi
and al, 0xde
mov al, 0x98
int1
sub dl, byte [esi - 0x6f122f30]
inc ecx
adc dword [0x57e3f0d3], ebp
cdq
dec ecx
inc eax
cmpsb byte [esi], byte es:[edi]
adc ebx, dword [esi - 0x1a]
cmp al, 0x4e
dec ebp
sub ah, al
sub eax, 0xefdf8e12
out dx, al
out dx, al
sub bh, byte [edi + 0x5c80b973]
mov ebp, 0x9de9959d
jbe 0x51fda4
outsd dx, dword [esi]
inc ebx
stosd dword es:[edi], eax
imul ebp, esp, 0x2d96525d
inc ecx
ljmp 0xe83
push ebp
push es
add ebp, dword [ebx + 0x40]
pop esp
lodsb al, byte [esi]
in al, dx
adc ebx, dword [ebx - 0x1f]
cmp ah, byte [esi]
sbb eax, 0xdd69811a
sub ebx, dword [edx + 0x31]
call 0x3e469832
jl 0x51fd94
or ch, byte [ebp + edx + 0x25]
inc ebx
push eax
xchg edx, eax
push ebx
pminub mm0, mm4
outsb dx, byte [esi]
arpl word [ebx + 0x33e27b5b], bp
mov byte [0xd5aaea98], al
fidiv dword [esi + 0x6de0295]
scasb al, byte es:[edi]
jl 0x51fe61
ficom word [ebx]
scasd eax, dword es:[edi]
and esi, dword [esi + eax*8]
out 6, eax
popfd
sub cl, byte [0x88137c20]
and al, 0x1a
add eax, dword [edx]
call 0xc3e64f74
cmc
ficomp word [esi]
sbb dword [ecx - 0x4e69711a], ebx
add esp, eax
arpl sp, si
add edx, eax
adc al, 0xdb
jno 0x51fe89
mov ss, word [esi + 0x63e003b1]
hlt
sub al, 0x2a
push cs
retf 0x18d0
xor ebp, esp
dec edx
std
mov eax, 0x3399e5f0
jo 0x51fe52
pop edi
and eax, dword [edi]
ret
aad 0xd8
mov al, byte cs:[0x568d3dff]
mov cl, 0x21
push ebp
adc al, byte [ebx + eax*2 + 0x232e26f5]
pop esi
pushal
invalid
and ebx, dword cs:[esi + 0x60]
push edi
jno 0x51febe
cmpsb byte [esi], byte es:[edi]
mov word [edx], cs
loopne 0x51fe90
sbb byte [esi], 0xda
jecxz 0x51fe56
lodsd eax, dword [esi]
nop
dec ebp
cmp bl, dh
into
into
adc eax, 0x8a7ebf21
js 0x51fe7e
pop esp
invalid
pop eax
lea eax, [eax - 0x12c2fad2]
pushal
pushfd
mov esi, ebp
adc eax, ebx
cmp al, 0x11
scasd eax, dword es:[edi]
xor ebx, esi
sbb eax, 0xa4207343
or bl, byte [ebp + 0x76]
jnp 0x51fef9
push ebp
cdq
mov cl, 0xa7
xor edi, dword [ebp - 0x21cae7cd]
add al, 0x50
and edi, ebx
test al, 0xb9
invalid
xchg esi, eax
jle 0x51fedd
cmp eax, dword [edx + 0x35]
inc esp
out dx, al
mov ebx, 0x80e3f5e9
sub dword [ecx - 0x1e71cbf2], esi
mov fs, ecx
stc
push esi
stc
invalid
mov ecx, 0x83e01606
faddp st(2)
shl dword [edi], 0x8d
aad 0x4e
sbb edx, dword [ebx + esi + 4]
out 0x57, al
adc eax, 0xb1e0e4fd
loope 0x51fe77
dec ebp
adc eax, dword [edx - 0x33]
invalid
int 0x8f
cmp byte [edi + 0x43afb393], bh
xchg esi, eax
push ecx
loopne 0x51fed0
dec ebp
jae 0x51ff08
arpl cx, dx
sahf
xor esp, ebp
int 0x28
into
sbb al, 0xb3
pop esi
mov bh, 0xeb
mov byte [0x8286cbf9], al
inc ebp
inc ebx
invalid