Function at 0x1001e020
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [ebp + 0x14]
push ebx
lea edx, [eax + 0x90e]
push esi
mov ecx, eax
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], edx
cmp eax, edx
ja case.0x1001e298.28279
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0x14]
jmp 0x1001e050
cmp ecx, 0x6d46
ja 0x1001e280
je 0x1001e23f
cmp ecx, 0x11ee
ja 0x1001e21a
je 0x1001e20a
mov eax, ecx
sub eax, 0x1137
je 0x1001e1c2
sub eax, 0x3d
je 0x1001e192
sub eax, 0x3d
jne case.0x1001e298.28036
mov bh, 0x1e
sti
sbb ecx, dword [ebp + 0x6850c045]
movd mm0, dword [eax]
add byte [edx], ch
call fcn.10028f60
add esp, 0xc
cmp dword [ebp + 0x14], 0
jne case.0x1001e298.28036
push 0
push 0x15b6
push 0
push 0
call int.1001ad30
add esp, 0x10
test eax, eax
jne 0x1001e0d8
mov dword [ebp + 0x14], 2
jmp case.0x1001e298.28036
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], edx
push 0
lea edx, [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x20], eax
push edx
lea eax, [ebp - 0x28]
push eax
push 0x43d0
mov dword [ebp - 0x24], ecx
call fcn.10016dd0
add esp, 0x10
test eax, eax
je 0x1001e116
mov dword [ebp + 0x14], 0x24
jmp case.0x1001e298.28036
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [edx + 8]
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x14]
push ecx
lea edx, [ebp - 0x14]
push edx
push 0x3278
mov dword [ebp - 0x14], eax
call int.10019280
add esp, 0xc
mov dword [ebp + 0x14], eax
test eax, eax
jne 0x1001e17b
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1001e150
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
push 0
lea eax, [ebp - 0x30]
push eax
push 0x3da6
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], edx
call fcn.1001ccf0
add esp, 0x10
mov dword [ebp + 0x14], eax
jmp case.0x1001e298.28036
cmp eax, 0x8a
je case.0x1001e298.28036
mov dword [ebp + 0x14], 3
jmp case.0x1001e298.28036
jnp 0x1001e204
loope 0x1001e203
mov eax, dword [di - 8]
test eax, eax
je 0x1001e186
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
cmp edx, dword [eax + 0x10]
jne 0x1001e186
mov eax, dword [eax + 0x84]
dec eax
neg eax
sbb eax, eax
and eax, 0xffffffea
add eax, 0x16
mov dword [ebp + 0x14], eax
jmp case.0x1001e298.28036
inc ebx
jae 0x1001e168
cmp dword [edx], 0x8b08458b
or byte [ecx - 0x247a07b3], cl
jne 0x1001e1dc
mov dword [ebp - 0xc], 0xffffffff
jmp 0x1001e1ef
push 0
push 0x518e
push ebx
call fcn.1000ec60
add esp, 0xc
mov dword [ebp - 0xc], eax
push 0x2d2f
lea edx, [ebp - 0x40]
push edx
push 0x10139e10
call int.1002aa80
add esp, 0xc
jmp case.0x1001e298.28036
les ecx, [ecx + ebp*8]
or al, 0xe9
push ss
add eax, dword [eax]
add byte [edx + ebp*2 - 0x52], bh
jl 0x1001e276
scasb al, byte es:[edi]
or esp, ebx
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], eax
jmp case.0x1001e298.28036
cmp ecx, 0x122b
je 0x1001e53c
cmp ecx, 0x6d09
jne case.0x1001e298.28036
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
mov esi, dword [ecx]
jmp case.0x1001e298.28036
cmp dword [ebx], 0
not esi
je case.0x1001e298.28036
lea ebx, [ebx]
mov eax, dword [ebp + 0xc]
test al, 3
je case.0x1001e298.28036
movzx edx, byte [eax]
xor edx, esi
and edx, 0xff
shr esi, 8
xor esi, dword [edx*4 + 0x10137db8]
dec dword [ebx]
inc eax
cmp dword [ebx], 0
mov dword [ebp + 0xc], eax
jne 0x1001e250
jmp case.0x1001e298.28036
lea eax, [ecx - 0x6d83]
cmp eax, 0xf4
ja case.0x1001e298.28036
movzx eax, byte [eax + 0x1001e564]
jmp dword [eax*4 + 0x1001e54c]
mov edi, dword [ebp + 0xc]
jmp case.0x1001e298.28036
cmp dword [ebx], 0
mov dword [ebp + 0xc], edi
je case.0x1001e298.28036
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
xor ecx, esi
and ecx, 0xff
shr esi, 8
xor esi, dword [ecx*4 + 0x10137db8]
inc eax
dec dword [ebx]
mov dword [ebp + 0xc], eax
jne 0x1001e2b3
jmp case.0x1001e298.28036
not esi
mov dword [ebp - 4], esi
jmp case.0x1001e298.28036
cmp dword [ebx], 0x20
jb 0x1001e4bc
jmp 0x1001e2f0
mov ecx, 0x1ca0
jmp 0x1001e300
cmp ecx, 0x1dc8
ja 0x1001e449
je case.0x1001e32a.7402
lea eax, [ecx - 0x1ca0]
cmp eax, 0xde
ja case.0x1001e32a.7329
movzx edx, byte [eax + 0x1001e670]
jmp dword [edx*4 + 0x1001e65c]
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x101381b8]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x101385b8]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10137db8]
and esi, 0xff
xor eax, dword [esi*4 + 0x101389b8]
xor eax, dword [edi]
add edi, 4
jmp 0x1001e4a2
xor esi, dword [edi]
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x101381b8]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x101385b8]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10137db8]
and esi, 0xff
xor eax, dword [esi*4 + 0x101389b8]
xor eax, dword [edi + 4]
add edi, 8
jmp 0x1001e4a2
mov eax, esi
shr eax, 0x10
mov edx, esi
shr edx, 8
and edx, 0xff
and eax, 0xff
mov eax, dword [eax*4 + 0x101381b8]
xor eax, dword [edx*4 + 0x101385b8]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10137db8]
and esi, 0xff
xor eax, dword [esi*4 + 0x101389b8]
add edi, 4
xor eax, dword [edi - 4]
mov edx, eax
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x101381b8]
mov esi, eax
shr esi, 8
and esi, 0xff
xor edx, dword [esi*4 + 0x101385b8]
mov esi, eax
shr esi, 0x18
xor edx, dword [esi*4 + 0x10137db8]
and eax, 0xff
xor edx, dword [eax*4 + 0x101389b8]
mov esi, edx
jmp case.0x1001e32a.7329
xor esi, dword [edi]
add edi, 4
jmp case.0x1001e32a.7329
mov eax, ecx
sub eax, 0x1e12
je 0x1001e461
sub eax, 0x4a
je 0x1001e461
sub eax, 0x4a
jne case.0x1001e32a.7329
add dword [ebx], 0xffffffe0
jmp case.0x1001e32a.7329
xor esi, dword [edi]
add edi, 4
mov eax, esi
shr eax, 0x10
mov edx, esi
shr edx, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x101381b8]
and edx, 0xff
xor eax, dword [edx*4 + 0x101385b8]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10137db8]
and esi, 0xff
xor eax, dword [esi*4 + 0x101389b8]
mov esi, eax
add ecx, 0x4a
cmp ecx, 0x1ea6
jbe 0x1001e300
cmp dword [ebx], 0x20
jae 0x1001e2f0
cmp dword [ebx], 4
jb case.0x1001e298.28036
mov eax, 0x4b1e
cmp eax, eax
jne 0x1001e511
xor esi, dword [edi]
add edi, 4
mov ecx, esi
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x101381b8]
mov edx, esi
shr edx, 8
and edx, 0xff
xor ecx, dword [edx*4 + 0x101385b8]
mov edx, esi
shr edx, 0x18
xor ecx, dword [edx*4 + 0x10137db8]
and esi, 0xff
xor ecx, dword [esi*4 + 0x101389b8]
add dword [ebx], 0xfffffffc
mov esi, ecx
add eax, 0x50
cmp eax, 0x4b1e
jbe 0x1001e4c8
cmp dword [ebx], 4
jae 0x1001e4c1
mov ecx, dword [ebp - 0x10]
add ecx, 0x3d
mov dword [ebp - 0x10], ecx
cmp ecx, dword [ebp - 0x18]
jbe 0x1001e050
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xchg dword [edx - 0x7480f72f], ebx
inc ebp
cld
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret