Function at 0x101102b0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x250
mov edx, dword [esp + 0x25c]
push ebx
mov ebx, dword [esp + 0x26c]
push ebp
push esi
mov esi, dword [esp + 0x26c]
push edi
mov edi, dword [edx*4 + 0x103374d4]
imul edi, dword [esp + 0x280]
xor eax, eax
xor edx, edx
mov word [esp + 0x14], ax
or eax, 0xffffffff
xor ecx, ecx
sar edi, 6
mov word [esp + 0x16], cx
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], 0x1000
mov dword [esp + 0x48], eax
mov dword [esp + 0x18], edx
cmp dword [esp + 0x288], edx
je 0x10110358
mov eax, dword [esp + 0x268]
push eax
call dword [0x10506d28]
imul eax, dword [esp + 0x288]
mov edx, 0x8000
add esp, 4
add eax, eax
mov ecx, edx
mov ebp, ecx
imul ebp, ecx
cmp ebp, eax
jbe 0x10110342
xor ecx, edx
shr edx, 1
je 0x1011034a
or ecx, edx
jmp 0x10110337
lea eax, [ecx + 0x30]
shr eax, 6
mov dword [esp + 0x44], eax
xor edx, edx
jmp 0x1011035c
mov dword [esp + 0x44], edx
cmp ebx, edx
mov dword [esp + 0x58], 0x1000
mov eax, ebx
jl 0x10110396
lea ebx, [ebx]
movzx ecx, word [esi + eax*2]
mov ebx, dword [esp + 0x264]
cmp word [ebx + ecx*2], dx
jne 0x10110388
sub eax, 1
jns 0x10110370
jmp 0x10110396
cmp eax, 3
mov ecx, eax
mov dword [esp + 0x278], eax
jge 0x101103a2
mov ecx, 3
mov dword [esp + 0x278], ecx
xor eax, eax
cmp ecx, edx
mov dword [esp + 0x10], eax
jl 0x1011088f
mov dword [esp + 0x1c], edx
jmp 0x101103cb
mov esi, dword [esp + 0x270]
mov edi, dword [esp + 0x24]
movzx ecx, word [esi + eax*2]
mov edx, dword [esp + 0x274]
add ecx, ecx
movzx eax, word [ecx + edx]
imul eax, dword [esp + 0x26c]
mov edx, dword [esp + 0x268]
movsx esi, word [ecx + edx]
mov edx, dword [esp + 0x264]
movsx edx, word [ecx + edx]
sar eax, 4
lea ebx, [eax - 1]
or ebx, 1
cmp dword [esp + 0x288], 0
lea ebp, [eax + eax]
lea eax, [ebx + ebp]
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], edx
je 0x1011044d
mov ecx, dword [esp + 0x270]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
movzx edi, word [ecx + edx*2]
push eax
mov eax, dword [esp + 0x48]
call fcn.10110220
mov edx, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x58]
add esp, 4
jmp 0x10110459
mov ecx, esi
imul ecx, esi
imul ecx, edi
mov dword [esp + 0x54], ecx
add dword [esp + 0x18], ecx
lea edi, [edx + 1]
mov dword [esp + 0x20], 0xf0000000
cmp edi, 3
jae 0x10110589
mov ecx, dword [esp + 0x1c]
lea ecx, [esp + ecx + 0x15e]
mov dword [esp + 0x3c], ecx
test esi, esi
jge 0x1011048b
or edx, 0xffffffff
add esi, eax
jmp 0x10110494
sub eax, esi
mov edx, 1
mov esi, eax
cmp dword [esp + 0x288], 0
mov word [ecx], dx
je 0x101104c5
mov ecx, dword [esp + 0x270]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
movzx edi, word [ecx + edx*2]
push eax
mov eax, dword [esp + 0x48]
call fcn.10110220
add esp, 4
mov ebp, eax
jmp 0x101104cf
mov ebp, esi
imul ebp, esi
imul ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + eax + 0x15c]
mov eax, dword [esp + eax + 0x58]
mov dword [esp + 0x40], ecx
mov edx, 1
mov word [ecx], dx
lea ecx, [eax + ebp + 0x1800]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x1011056a
mov eax, dword [esp + 0x10]
mov edx, 0x10337420
dec edx
mov esi, 0x10337320
sub eax, ecx
sub esi, edx
dec esi
lea ebx, [edx + ecx]
lea eax, [esp + eax*4 + 0x5c]
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + ebx]
movzx edi, byte [ebx]
mov esi, dword [eax]
add esi, ebp
shl edx, 0xb
shl edi, 0xb
add edx, esi
add edi, esi
cmp edx, dword [esp + 0x20]
jae 0x1011054a
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x40]
mov word [edx], cx
cmp edi, dword [esp + 0x18]
jae 0x10110561
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edi
mov word [esp + 0x14], cx
mov dword [esp + 0x48], edx
dec ecx
add eax, 4
dec ebx
test ecx, ecx
jg 0x10110520
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x48], eax
jne 0x10110817
mov ecx, dword [esp + 0x3c]
mov dx, word [ecx]
mov word [esp + 0x16], dx
jmp 0x10110817
lea eax, [edx + 0x19]
cmp eax, 0x33
jae 0x101107b8
mov ecx, edx
imul ecx, ebp
sub ecx, esi
cmp edx, 1
jle 0x10110603
add ecx, ebx
mov ebx, ecx
sub ebx, ebp
cmp edx, 0x18
lea eax, [edx - 1]
mov dword [esp + 0x40], eax
mov ebp, 0x10336e20
jg 0x101105c5
mov esi, dword [edx*4 + 0x1033745c]
mov dword [esp + 0x2c], esi
jmp 0x101105c9
mov dword [esp + 0x2c], ebp
cmp eax, 0x18
jg 0x101105db
mov esi, dword [eax*4 + 0x1033745c]
mov dword [esp + 0x28], esi
jmp 0x101105df
mov dword [esp + 0x28], ebp
cmp edx, 6
jg 0x101105f1
mov edx, dword [edx*4 + 0x103374bc]
mov dword [esp + 0x34], edx
jmp 0x101105f5
mov dword [esp + 0x34], ebp
cmp eax, 6
jg 0x1011066b
mov ebp, dword [eax*4 + 0x103374bc]
jmp 0x1011066b
sub ecx, ebx
cmp edx, 0xffffffe8
lea ebx, [ecx + ebp]
mov dword [esp + 0x40], edi
mov ebp, 0x10336e20
jl 0x10110627
mov eax, edx
not eax
mov eax, dword [eax*4 + 0x10337460]
mov dword [esp + 0x2c], eax
jmp 0x1011062b
mov dword [esp + 0x2c], ebp
cmp edi, 0xffffffe8
jl 0x10110641
mov eax, edi
not eax
mov eax, dword [eax*4 + 0x10337460]
mov dword [esp + 0x28], eax
jmp 0x10110645
mov dword [esp + 0x28], ebp
cmp edx, 0xfffffffa
jl 0x10110659
not edx
mov edx, dword [edx*4 + 0x103374c0]
mov dword [esp + 0x34], edx
jmp 0x1011065d
mov dword [esp + 0x34], ebp
cmp edi, 0xfffffffa
jl 0x1011066b
not edi
mov ebp, dword [edi*4 + 0x103374c0]
cmp dword [esp + 0x288], 0
je 0x101106b1
mov eax, dword [esp + 0x270]
mov edx, dword [esp + 0x10]
movzx edi, word [eax + edx*2]
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x48]
mov esi, ecx
call fcn.10110220
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
push ecx
mov esi, ebx
call fcn.10110220
mov edx, dword [esp + 0x58]
add esp, 8
jmp 0x101106c9
mov edx, ecx
imul edx, ecx
mov ecx, dword [esp + 0x24]
mov eax, ebx
imul edx, ecx
imul eax, ebx
mov dword [esp + 0x50], edx
imul eax, ecx
mov esi, dword [esp + 0x10]
sub esi, dword [esp + 0x38]
sub eax, edx
mov dword [esp + 0x30], eax
test esi, esi
jle 0x10110817
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x10]
dec eax
sub ecx, eax
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x34]
sub ecx, eax
sub ebp, eax
sub ebx, esi
dec ecx
dec ebp
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x30]
lea edi, [eax + esi]
lea ebx, [esp + ebx*4 + 0x5c]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x2c]
movzx ecx, byte [eax + edi]
movzx eax, byte [edi]
mov edx, dword [ebx]
add edx, dword [esp + 0x50]
shl eax, 0xb
shl ecx, 0xb
add eax, edx
add ecx, edx
add eax, ebp
cmp eax, ecx
jae 0x1011073b
mov ecx, eax
mov eax, dword [esp + 0x40]
jmp 0x1011073f
mov eax, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x20]
jae 0x1011075d
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov word [esp + ecx + 0x15c], si
mov word [esp + ecx + 0x15e], ax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + edi]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx + edi]
mov ebp, dword [esp + 0x30]
shl ecx, 0xb
shl eax, 0xb
add ecx, edx
add eax, edx
add ecx, ebp
cmp ecx, eax
jae 0x10110789
mov eax, ecx
mov ecx, dword [esp + 0x40]
jmp 0x1011078d
mov ecx, dword [esp + 0x3c]
cmp eax, dword [esp + 0x18]
jae 0x101107a9
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov word [esp + 0x14], si
mov word [esp + 0x16], cx
mov dword [esp + 0x48], edx
dec esi
add ebx, 4
dec edi
test esi, esi
jg 0x10110712
jmp 0x10110817
mov ebp, dword [esp + 0x10]
mov ecx, ebp
sub ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x10110817
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov eax, ebp
sub eax, ecx
lea esi, [esp + eax*4 + 0x5c]
mov eax, dword [esi]
add eax, 0xf000
cmp eax, ebx
jae 0x101107f3
mov ebx, eax
mov word [esp + edi + 0x15c], cx
mov word [esp + edi + 0x15e], dx
cmp eax, dword [esp + 0x18]
jae 0x1011080b
mov dword [esp + 0x18], eax
mov word [esp + 0x14], cx
mov word [esp + 0x16], dx
mov dword [esp + 0x48], ebp
dec ecx
add esi, 4
test ecx, ecx
jg 0x101107d6
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov dword [esp + ecx + 0x5c], eax
mov ecx, dword [esp + 0x4c]
lea esi, [edx + ecx]
cmp eax, esi
jae 0x10110840
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
jmp 0x10110870
lea eax, [ecx + 0x800]
mov ecx, dword [esp + 0x38]
cmp dword [esp + ecx*4 + 0x5c], eax
jbe 0x1011085b
inc ecx
cmp dword [esp + ecx*4 + 0x5c], eax
ja 0x10110850
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x10]
cmp ecx, eax
jge 0x1011086c
add dword [esp + ecx*4 + 0x5c], edx
inc ecx
cmp ecx, eax
jl 0x10110863
mov dword [esp + 0x4c], esi
add dword [esp + 0x1c], 4
inc eax
cmp eax, dword [esp + 0x278]
mov dword [esp + 0x10], eax
jle 0x101103c0
mov esi, dword [esp + 0x48]
test esi, esi
jge 0x101108a1
mov eax, dword [esp + 0x27c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret
mov edi, dword [esp + 0x264]
push 0x80
push 0
push edi
call fcn.102dad40
mov ebx, dword [esp + 0x27c]
movzx edx, word [ebx + esi*2]
mov ax, word [esp + 0x22]
movsx ecx, word [esp + 0x20]
mov word [edi + edx*2], ax
sub esi, ecx
cwde
mov ecx, esi
cdq
mov esi, eax
xor esi, edx
add esp, 0xc
sub esi, edx
test ecx, ecx
jl 0x10110914
jmp 0x101108f0
movzx eax, word [esp + ecx*4 + 0x15e]
movzx edx, word [ebx + ecx*2]
mov word [edi + edx*2], ax
cwde
cdq
xor eax, edx
sub eax, edx
add esi, eax
movsx eax, word [esp + ecx*4 + 0x15c]
sub ecx, eax
jns 0x101108f0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret