Function at 0x1000a4d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
mov eax, dword [ebp + 0x18]
push ebx
lea edx, [eax + 0x8f8]
push esi
mov ecx, eax
push edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
cmp eax, edx
ja 0x1000aa01
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
jmp 0x1000a510
mov edx, dword [ebp + 0x14]
cmp ecx, 0x84e
ja 0x1000a8a6
je 0x1000aa01
cmp ecx, 0x6b4
ja 0x1000a817
je 0x1000a5ef
lea eax, [ecx - 0x56c]
cmp eax, 0xf6
ja case.0x1000a82f.1799
movzx eax, byte [eax + 0x1000ab3c]
jmp dword [eax*4 + 0x1000ab28]
not esi
jmp case.0x1000a82f.1799
cmp dword [ebx], 0
je 0x1000a5b0
mov edx, dword [ebp + 0xc]
test dl, 3
je 0x1000a5b3
mov ecx, 0x6cec
mov eax, ecx
sub eax, 0x6cec
je 0x1000a581
sub eax, 0x60
jne 0x1000a596
dec dword [ebx]
jmp 0x1000a596
movzx edi, byte [edx]
mov eax, esi
shr eax, 0x18
xor eax, edi
shl esi, 8
xor esi, dword [eax*4 + 0x1006fb80]
inc edx
add ecx, 0x60
cmp ecx, 0x6d4c
jbe 0x1000a56f
cmp dword [ebx], 0
mov dword [ebp + 0xc], edx
jne 0x1000a562
mov edi, edx
jmp case.0x1000a82f.1799
mov edx, dword [ebp + 0xc]
mov edi, edx
jmp case.0x1000a82f.1799
mov eax, dword [edx]
movzx edx, byte [edx + 3]
mov edi, dword [esp + 0x1c]
mov esi, eax
mov ecx, eax
shl esi, 0x10
and ecx, 0xff00
add esi, ecx
shr eax, 8
shl esi, 8
and eax, 0xff00
add esi, eax
add esi, edx
jmp case.0x1000a82f.1799
sub edi, 4
jmp case.0x1000a82f.1799
cmp dword [ebx], 0x20
jb 0x1000a796
jmp 0x1000a600
mov ecx, 0x3d83
jmp 0x1000a610
cmp ecx, 0x3e41
ja 0x1000a6d8
je case.0x1000a636.15861
lea eax, [ecx - 0x3d83]
cmp eax, 0x98
ja case.0x1000a6ee.15976
movzx eax, byte [eax + 0x1000ac44]
jmp dword [eax*4 + 0x1000ac34]
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x10070380]
mov eax, esi
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x1006ff80]
mov eax, esi
shr eax, 0x18
xor edx, dword [eax*4 + 0x10070780]
and esi, 0xff
xor edx, dword [esi*4 + 0x1006fb80]
add edi, 4
xor edx, dword [edi]
mov esi, edx
jmp case.0x1000a6ee.15976
add edi, 4
xor esi, dword [edi]
jmp case.0x1000a6ee.15976
xor esi, dword [edi + 4]
add edi, 4
mov edx, esi
shr edx, 0x10
mov eax, esi
and edx, 0xff
mov edx, dword [edx*4 + 0x10070380]
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x1006ff80]
mov eax, esi
shr eax, 0x18
xor edx, dword [eax*4 + 0x10070780]
and esi, 0xff
xor edx, dword [esi*4 + 0x1006fb80]
mov esi, edx
jmp case.0x1000a6ee.15976
lea eax, [ecx - 0x3e67]
cmp eax, 0x72
ja case.0x1000a6ee.15976
movzx edx, byte [eax + 0x1000acf0]
jmp dword [edx*4 + 0x1000ace0]
add dword [ebx], 0xffffffe0
jmp case.0x1000a6ee.15976
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x10070380]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x1006ff80]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10070780]
and esi, 0xff
xor eax, dword [esi*4 + 0x1006fb80]
add edi, 4
xor eax, dword [edi]
jmp 0x1000a77c
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x10070380]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x1006ff80]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10070780]
and esi, 0xff
xor eax, dword [esi*4 + 0x1006fb80]
mov esi, eax
add ecx, 0x26
cmp ecx, 0x3ed9
jbe 0x1000a610
cmp dword [ebx], 0x20
jae 0x1000a600
cmp dword [ebx], 4
jb case.0x1000a82f.1799
nop
mov ecx, 0x4c09
mov eax, ecx
sub eax, 0x4c09
je 0x1000a7fd
sub eax, 0x13
je 0x1000a7bd
sub eax, 0x13
jne 0x1000a802
add dword [ebx], 0xfffffffc
jmp 0x1000a802
mov eax, esi
shr eax, 0x10
mov edx, esi
and eax, 0xff
mov eax, dword [eax*4 + 0x10070380]
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x1006ff80]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10070780]
and esi, 0xff
xor eax, dword [esi*4 + 0x1006fb80]
mov esi, eax
jmp 0x1000a802
add edi, 4
xor esi, dword [edi]
add ecx, 0x13
cmp ecx, 0x4c2f
jbe 0x1000a7a5
cmp dword [ebx], 4
jae 0x1000a7a0
jmp case.0x1000a82f.1799
lea eax, [ecx - 0x706]
cmp eax, 0xf6
ja case.0x1000a82f.1799
movzx eax, byte [eax + 0x1000ad78]
jmp dword [eax*4 + 0x1000ad64]
mov dword [ebp + 0xc], edi
jmp case.0x1000a82f.1799
add edi, 4
jmp case.0x1000a82f.1799
mov eax, esi
and eax, 0xff00
mov ecx, esi
shl ecx, 0x10
add eax, ecx
mov edx, esi
shr edx, 8
shl eax, 8
and edx, 0xff00
mov ecx, esi
add eax, edx
shr ecx, 0x18
add eax, ecx
mov dword [esp + 0x10], eax
jmp case.0x1000a82f.1799
cmp dword [ebx], 0
je 0x1000a89f
lea esp, [esp]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
mov edx, esi
shr edx, 0x18
xor edx, ecx
shl esi, 8
xor esi, dword [edx*4 + 0x1006fb80]
inc eax
dec dword [ebx]
mov dword [ebp + 0xc], eax
jne 0x1000a880
not esi
jmp case.0x1000a82f.1799
cmp ecx, 0x3a12
ja 0x1000a996
je 0x1000a978
cmp ecx, 0x396e
ja 0x1000a95b
je 0x1000a949
mov eax, ecx
sub eax, 0x240e
je 0x1000a8e1
sub eax, 0x52
je 0x1000aa01
jmp case.0x1000a82f.1799
xlatb
cld
rol byte [ebp + 0xc558bc0], 0x8b
inc ebp
adc al, 0x52
push eax
call fcn.100210c0
add esp, 8
test eax, eax
je 0x1000a93f
mov ecx, dword [eax + 0x10]
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1000a92c
test dl, dl
je 0x1000a91c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1000a92c
add eax, 2
add ecx, 2
test dl, dl
jne 0x1000a900
xor eax, eax
test eax, eax
sete cl
mov byte [esp + 0x10], cl
jmp case.0x1000a82f.1799
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete cl
mov byte [esp + 0x10], cl
jmp case.0x1000a82f.1799
mov byte [esp + 0x10], 0
jmp case.0x1000a82f.1799
hlt
cmp ecx, 0x39c0
jne case.0x1000a82f.1799
mov edx, dword [ebp + 0xc]
push edx
call fcn.1000a460
add esp, 4
jmp case.0x1000a82f.1799
mov eax, dword [ebp + 0xc]
push eax
call fcn.1000f670
mov ecx, dword [ebp + 0x10]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [ecx], 0xffffffff
jmp case.0x1000a82f.1799
mov eax, ecx
sub eax, 0x3a64
je 0x1000aafb
sub eax, 0x52
je 0x1000a9d7
sub eax, 0x1bec
jne case.0x1000a82f.1799
ficom word gs:[edx + 0x558bbdea]
or al, 0x8b
add cl, byte [ebx + 0x412b084d]
add al, 0x8b
pop ebp
adc al, 0x50
call fcn.1001cf70
mov ebx, dword [ebp + 8]
add esp, 4
jmp case.0x1000a82f.1799
mov ecx, dword [esp + 0x18]
cmp ecx, dword [ebx]
jne 0x1000aa2e
mov ebx, 0x174
mov eax, ebx
sub eax, 0x174
je 0x1000aa17
sub eax, 0x40
je 0x1000aa0c
sub eax, 0x40
jne 0x1000aa23
mov esp, dword [edx - 0x39b3f2e0]
inc esp
and al, 0x10
add dword [ebx + 0x5f102444], ecx
mov byte [esp + 0x10], 1
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov dword [edx], 0xffffffff
jmp 0x1000aa23
mov eax, dword [ebp + 0xc]
push eax
call fcn.10024f70
add esp, 4
add ebx, 0x40
cmp ebx, 0x1f4
jbe 0x1000a9e4
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.1000f670
inc eax
add esp, 4
cmp eax, 0x3d
ja case.0x1000aa47.0
movzx edx, byte [eax + 0x1000ae7c]
jmp dword [edx*4 + 0x1000ae70]
mov ebx, 0x63c8
mov eax, ebx
sub eax, 0x63c8
je 0x1000aa63
sub eax, 0xc
je 0x1000a9fc
jmp 0x1000aa74
out dx, al
jl 0x1000aa20
pushfd
insb byte es:[edi], dx
mov eax, dword [ebp + 0xc]
push eax
call fcn.10024f70
add esp, 4
add ebx, 0xc
cmp ebx, 0x63d4
jbe 0x1000aa53
mov ebx, 0x3916
mov eax, ebx
sub eax, 0x3916
je 0x1000aa98
sub eax, 0x3c
je 0x1000aa01
jmp 0x1000aaaa
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
call fcn.10014580
mov byte [esp + 0x10], al
add ebx, 0x3c
cmp ebx, 0x3952
jbe 0x1000aa84
mov ebx, 0x470f
mov eax, ebx
sub eax, 0x470f
je 0x1000aace
sub eax, 9
je 0x1000aa01
jmp 0x1000aaeb
mov ecx, dword [ebp + 0x1c]
movzx edx, byte [ecx]
mov eax, dword [ebp + 0xc]
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x14]
call fcn.10032fe0
add esp, 8
mov byte [esp + 0x10], al
add ebx, 9
cmp ebx, 0x4718
jbe 0x1000aaba
mov ebx, dword [ebp + 8]
jmp case.0x1000a82f.1799
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], 0xffffffff
mov ecx, dword [esp + 0x14]
add ecx, 0x52
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x1c]
jbe 0x1000a510
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret