Function at 0x1620050
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x58]
push ebx
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
cmp ecx, 0x1001
je 0x1623fa8
cmp ecx, 0x5003
je 0x1623fa8
xor eax, eax
pop ebx
leave
ret 8
push 4
pop ecx
mov edi, 0x13805ad4
mov esi, eax
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x162a2b7
push 4
pop ecx
mov edi, 0x13805b88
mov esi, eax
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x162a2b7
push 4
pop ecx
mov edi, 0x13805ae4
mov esi, eax
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x162a13a
push 4
pop ecx
mov edi, 0x13805b98
mov esi, eax
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x162a13a
push 4
pop ecx
mov edi, 0x13805af4
mov esi, eax
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x162a166
mov dword [ebp - 0xc], 1
xor ebx, ebx
cmp dword [ebp - 4], ebx
je 0x1623fbb
cmp dword [ebp - 8], ebx
je 0x1623fbb
cmp dword [ebp - 0xc], ebx
jne 0x1623fbb
xor eax, eax
inc eax
jmp 0x1623fbd
push esi
push edi
push 4
pop ecx
mov edi, 0x13805ac4
lea esi, [eax + 0x38]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x1623fc4
xor eax, eax
pop edi
pop esi
jmp 0x1620084
mov edx, dword [eax + 0x50]
mov dword [ebp + 8], ebx
cmp edx, ebx
jbe 0x1623fbb
mov eax, dword [eax + 0x54]
jmp 0x1623f04
mov edi, edi
mov dword [eax], eax
add byte [edx], cl
std
dec esi
imul esp, eax, 0xff44ff7d
into
dec esi
dec esi
dec esi
in al, dx
xor dword [eax], eax
dec esi
dec esi
jb 0x162a123
js 0x162a166
out dx, al
dec esi
mul byte [ebx - 0x20]
mov edx, 0xe06444ff
inc ebx
inc dword [edi + edi*2 + 0x67]
inc dword [edi + edi*2 - 1]
inc esp
jg 0x162a1c3
jg 0x162a1c5
jg 0x162a1c7
jg 0x162a1c9
jg 0x162a1cb
out 0x67, eax
mov bh, 0xdf
jg 0x162a18c
jo 0x162a1d9
dec dword [ecx - 0x7600dd81]
jb 0x162a1a4
pop ebx
jno 0x162a1d2
jg 0x162a178
dec dword [ecx - 0x76007601]
jno 0x162a1f5
mov edi, edi
mov edi, edi
mov dword [ecx + 0x75], esi
jg 0x162a1a4
dec dword [ecx + 0x7d3889ff]
nop
and dword [eax], esi
xor byte [eax], al
dec dword [ecx + 0x189389ff]
jg 0x162a1b7
add bh, bh
mov edi, edi
mov dword [ebx + 0x6f227f18], edx
outsd dx, dword [esi]
stosd dword es:[edi], eax
jo 0x162a1ba
jg 0x162a202
imul esi, dword [eax + 0x1906510], 0x6a88d074
nop
add dword [eax + edx*8 - 0x78], esi
push 0x72
xor byte [edi + 0x3d], bh
jb 0x162a1d7
jg 0x162a1e6
push eax
cmp dword [eax], 0x70
xchg byte [ecx], dh
dec eax
jne 0x162a19f
nop
insb byte es:[edi], dx
mov al, 0x56
jg 0x162a1db
and bh, byte [0x677f2130]
cmp eax, 0x677f2130
xor byte [ecx], ah
jg 0x162a225
dec dword [ecx + 0x330ed17f]
xchg esi, eax
push cs
xor edx, dword [esi - 0x76007601]
dec dword [ecx - 0x76007601]
dec dword [ecx + 0x44ff89ff]
dec dword [ecx - 0x600f88a4]
dec dword [ecx - 0x7600bb01]
inc dword [edi + edi*8 - 0x77]
pop esp
ja 0x162a1c2
lahf
dec dword [ecx - 0x4f8c7601]
jae 0x162a189
mov dword [edi + 0x22], edi
ja 0x162a200
and dh, byte [edi + 0x22]
invalid
push eax
push 0x227f227f
adc dword [ecx + 0x7fffac7f], ebp
lodsb al, byte [esi]
jno 0x162a1f7
jg 0x162a219
jg 0x162a1a5
xchg ecx, eax
sbb al, 0x7f
and bh, byte [edi + 0x22]
jg 0x162a268
invalid
invalid
jg 0x162a1b0
jg 0x162a1b2
jg 0x162a22a
jg 0x162a22c
jg 0x162a1b8
jg 0x162a230
jg 0x162a232
adc dword [edi], edi
invalid
inc dword [edi + edi*8 + 0x44]
inc dword [edi + edi*8 + 0x44]
inc dword [edi - 1]
inc esp
jg 0x162a24a
ja 0x162a24c
cmp eax, 0x11677f63
adc al, 0xff
jg 0x162a295
adc dword [edi + edi*8], edx
dec esi
into
insd dword es:[edi], dx
dec esi
arpl word [eax + 0x6fceffcf], dx
dec esi
invalid
into
mov esi, 0xff36ceff
mov esi, 0xff36ceff
sar byte [edx - 0x31009881], 1
jg 0x162a28c
jg 0x162a28e
pop ecx