Function at 0x100145e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
lea esi, [eax + 0xe0]
mov ecx, eax
push edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], esi
cmp eax, esi
ja case.0x10014964.23828
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x1c]
jmp 0x10014613
mov edx, dword [ebp + 8]
cmp ecx, 0x5cc4
ja 0x1001494e
je 0x1001487e
cmp ecx, 0x5c94
ja 0x10014802
je 0x10014691
mov eax, ecx
sub eax, 0x41de
je 0x100147eb
sub eax, 0x10
je 0x100146c0
sub eax, 0x10
jne case.0x10014964.23765
sti
xchg ecx, eax
fimul dword [esi - 0x47]
pushfd
and dword [eax], eax
add bl, ch
push es
lea ebx, [ebx]
mov eax, ecx
sub eax, 0x219c
je 0x1001467d
sub eax, 0x27
jne 0x10014686
pop ebp
mov ecx, 0x8be71829
inc ebp
hlt
test eax, 0x1b66a8ad
mov byte [ebp - 0xc], 0xff
add ecx, 0x27
cmp ecx, 0x21c3
jbe 0x10014660
mov eax, dword [edx]
movzx edx, byte [edx + 3]
mov edi, dword [ebp - 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
mov dword [ebp - 4], edi
add esi, edx
jmp case.0x10014964.23765
sar edx, 0x80
fcomp dword [ebx - 0x75]
inc ebp
or byte [edi], cl
mov dh, 8
push ecx
call fcn.100145c0
add esp, 4
mov byte [ebp - 0x10], al
mov dword [ebp - 0x14], 0
mov edi, edi
mov ebx, 0x7258
mov eax, ebx
sub eax, 0x7258
je 0x1001470a
sub eax, 0x41
jne 0x100147c4
inc ebx
pushfd
cmp al, ch
sbb cl, byte [ebx - 0x17ad07ab]
pop ebx
fadd dword [eax]
add cl, ch
mov bh, 0
add byte [eax], al
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
push eax
push edi
call fcn.1001e240
add esp, 8
test al, al
je 0x100147b2
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx]
push edx
push edi
call fcn.1000ef40
add esp, 8
test al, al
je 0x100147b2
mov al, byte [ebp - 0x10]
or al, 1
movzx ecx, al
push ecx
push edi
call fcn.1001e240
add esp, 8
test al, al
je 0x100147b2
mov edi, 0x2b2e
mov eax, edi
sub eax, 0x2b2e
je 0x1001478d
sub eax, 0x3f
je 0x1001477f
sub eax, 0x3f
jne 0x100147a7
mov eax, dword [ebp - 8]
push eax
call fcn.10008d40
mov cl, byte [eax]
add esp, 4
mov byte [ebp - 0xc], cl
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 8]
push edx
call fcn.10021f60
add esp, 4
jmp 0x100147a7
mov eax, dword [ebp - 8]
push eax
call fcn.10021f60
mov ecx, dword [ebp - 8]
add esp, 4
push 1
push ecx
call fcn.100246f0
add esp, 8
add edi, 0x3f
cmp edi, 0x2bac
jbe 0x10014751
mov edx, dword [ebp - 8]
push edx
call fcn.1000ffd0
mov edi, dword [ebp - 4]
mov byte [eax], 0xc5
add esp, 4
add ebx, 0x41
cmp ebx, 0x7299
jbe 0x100146e5
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 8
jb 0x100146e0
mov ebx, dword [ebp + 0xc]
jmp case.0x10014964.23765
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
push ecx
call fcn.10008130
add esp, 4
mov byte [ebp - 8], al
jmp case.0x10014964.23765
mov eax, ecx
sub eax, 0x5ca4
je 0x10014a44
sub eax, 0x10
jne case.0x10014964.23765
cmp dword [ebx], eax
je 0x10014871
lea esp, [esp]
mov edx, dword [ebp + 0x10]
test dl, 3
je 0x10014874
mov ecx, 0x10c9
mov eax, ecx
sub eax, 0x10c9
je 0x1001483f
sub eax, 0x13
jne 0x10014854
dec dword [ebx]
jmp 0x10014854
movzx edi, byte [edx]
mov eax, esi
shr eax, 0x18
xor eax, edi
shl esi, 8
xor esi, dword [eax*4 + 0x10032578]
inc edx
add ecx, 0x13
cmp ecx, 0x10dc
jbe 0x1001482d
cmp dword [ebx], 0
mov dword [ebp + 0x10], edx
jne 0x10014820
mov edi, edx
mov dword [ebp - 4], edi
jmp case.0x10014964.23765
mov edx, dword [ebp + 0x10]
mov edi, edx
mov dword [ebp - 4], edi
jmp case.0x10014964.23765
sub edi, 4
cmp dword [ebx], 0x20
mov dword [ebp - 4], edi
jb case.0x10014964.23765
lea ecx, [ecx]
mov dword [ebp - 4], 0x6b4e
jmp 0x100148a0
mov eax, dword [ebp - 4]
sub eax, 0x6b4e
je 0x100148b8
sub eax, 0x63
jne 0x10014929
add dword [ebx], 0xffffffe0
jmp 0x10014929
mov edx, 8
lea ecx, [ecx]
mov ecx, 0x251a
mov eax, ecx
sub eax, 0x251a
je 0x10014916
sub eax, 0x22
jne 0x1001491b
mov eax, esi
shr eax, 0x10
mov ebx, esi
shr ebx, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x10032d78]
and ebx, 0xff
xor eax, dword [ebx*4 + 0x10032978]
mov ebx, esi
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x10033178]
mov ebx, dword [ebp + 0xc]
and esi, 0xff
xor eax, dword [esi*4 + 0x10032578]
mov esi, eax
jmp 0x1001491b
add edi, 4
xor esi, dword [edi]
add ecx, 0x22
cmp ecx, 0x253c
jbe 0x100148c5
dec edx
jne 0x100148c0
mov eax, dword [ebp - 4]
add eax, 0x63
mov dword [ebp - 4], eax
cmp eax, 0x6bb1
jbe 0x100148a0
cmp dword [ebx], 0x20
jae 0x10014890
mov dword [ebp - 4], edi
jmp case.0x10014964.23765
lea eax, [ecx - 0x5cd4]
cmp eax, 0x40
ja case.0x10014964.23765
movzx ecx, byte [eax + 0x10014a7c]
jmp dword [ecx*4 + 0x10014a64]
add edi, 4
mov dword [ebp - 4], edi
mov dword [ebp + 0x10], edi
jmp case.0x10014964.23765
mov eax, esi
and eax, 0xff00
mov edx, esi
shl edx, 0x10
add eax, edx
mov ecx, esi
shr ecx, 8
shl eax, 8
and ecx, 0xff00
mov edx, esi
add eax, ecx
shr edx, 0x18
add eax, edx
mov dword [ebp - 0xc], eax
jmp case.0x10014964.23765
cmp dword [ebx], 4
jb case.0x10014964.23765
nop
mov ecx, 0x3687
mov eax, ecx
sub eax, 0x3687
je 0x10014a06
sub eax, 0x37
jne 0x10014a0b
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x10032d78]
mov edx, esi
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x10032978]
mov edx, esi
shr edx, 0x18
xor eax, dword [edx*4 + 0x10033178]
and esi, 0xff
xor eax, dword [esi*4 + 0x10032578]
add dword [ebx], 0xfffffffc
mov esi, eax
jmp 0x10014a0b
add edi, 4
xor esi, dword [edi]
add ecx, 0x37
cmp ecx, 0x36be
jbe 0x100149b5
cmp dword [ebx], 4
jae 0x100149b0
mov dword [ebp - 4], edi
jmp case.0x10014964.23765
cmp dword [ebx], 0
je 0x10014a44
mov eax, dword [ebp + 0x10]
movzx edx, byte [eax]
mov ecx, esi
shr ecx, 0x18
xor ecx, edx
shl esi, 8
xor esi, dword [ecx*4 + 0x10032578]
inc eax
dec dword [ebx]
mov dword [ebp + 0x10], eax
jne 0x10014a25
not esi
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x1c]
jbe 0x10014610
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret