Function at 0x4106a0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov ebp, 0x46
push edi
mov dword [esp + 0x14], ebp
test ebp, ebp
jne 0x4106b8
xor edi, edi
jmp 0x4106c2
mov edi, dword [ebp*4 + 0x4a5104]
add edi, 2
mov eax, edi
and eax, 0xff
mov dword [esp + 0x10], edi
je 0x4106dc
mov ecx, 0x100
sub ecx, eax
add edi, ecx
mov dword [esp + 0x10], edi
movzx ecx, word [ebp*2 + 0x4a52c4]
mov ebx, dword [esp + 0x24]
xor esi, esi
mov eax, 0xffff
test ecx, ecx
je 0x410722
lea edx, [edi + ebx]
movzx edx, byte [edx + esi]
mov dword [esp + 0x1c], ebx
mov ebx, eax
shr ebx, 8
movzx ebp, bl
mov ebx, dword [esp + 0x1c]
xor edx, ebp
movzx edx, word [edx*2 + 0x4a4ad8]
shl eax, 8
inc esi
xor eax, edx
cmp esi, ecx
jb 0x4106f3
mov ebp, dword [esp + 0x14]
mov edx, dword [ebp*4 + 0x4a5108]
add edx, ebx
mov dword [esp + 0x18], edx
cmp ax, word [edx]
je 0x4107aa
xor esi, esi
mov eax, 0xffff
test ecx, ecx
je 0x41077a
lea edi, [edi + ebx + 0x26000]
movzx edx, byte [edi + esi]
mov dword [esp + 0x1c], ebx
mov ebx, eax
shr ebx, 8
movzx ebp, bl
mov ebx, dword [esp + 0x1c]
xor edx, ebp
movzx edx, word [edx*2 + 0x4a4ad8]
shl eax, 8
inc esi
xor eax, edx
cmp esi, ecx
jb 0x410746
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp ax, word [edx + 0x26000]
jne 0x4107be
push ecx
lea eax, [edi + ebx + 0x26000]
push eax
add edi, ebx
push edi
call fcn.0044ab40
mov ecx, dword [ebp*4 + 0x4a5108]
mov dx, word [ebx + ecx]
add esp, 0xc
mov word [ebx + ebp*2 + 0x25f00], dx
inc ebp
mov dword [esp + 0x14], ebp
cmp ebp, 0x4a
jb 0x4106b0
mov ebx, dword [esp + 0x24]
jmp 0x4107c8
mov edi, 3
cmp ebp, 0x4a
jb 0x4107cd
mov edi, 4
xor edx, edx
lea ebp, [edi - 3]
imul ebp, ebp, 0x4a
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ebp
test edx, edx
jne 0x4107e9
xor edi, edi
jmp 0x4107f8
imul edi, edi, 0x4a
add edi, edx
mov edi, dword [edi*4 + 0x4a4c64]
add edi, 2
mov eax, edi
and eax, 0xff
je 0x41080a
mov ecx, 0x100
sub ecx, eax
add edi, ecx
add ebp, edx
movzx esi, word [ebp*2 + 0x4a5230]
xor ecx, ecx
mov eax, 0xffff
mov dword [esp + 0x18], ebp
test esi, esi
je 0x41084e
lea edx, [edi + ebx]
movzx edx, byte [edx + ecx]
mov ebx, eax
shr ebx, 8
movzx ebx, bl
xor edx, ebx
movzx edx, word [edx*2 + 0x4a4ad8]
mov ebx, dword [esp + 0x24]
shl eax, 8
inc ecx
xor eax, edx
cmp ecx, esi
jb 0x410823
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp*4 + 0x4a4fe0]
cmp ax, word [ecx + ebx]
je 0x410928
mov ecx, 0xffff
test esi, esi
je 0x4108a2
mov eax, dword [esp + 0x10]
mov eax, dword [eax*4 + 0x4a4ce0]
add eax, edi
add eax, ebx
mov ebp, esi
lea esp, [esp]
movzx ebx, byte [eax]
mov edx, ecx
shr edx, 8
movzx edx, dl
xor edx, ebx
movzx edx, word [edx*2 + 0x4a4ad8]
shl ecx, 8
xor ecx, edx
inc eax
dec ebp
jne 0x410880
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov ebp, dword [ebp*4 + 0x4a4fe0]
mov eax, dword [ebx*4 + 0x4a4ce0]
lea edx, [eax + ebp]
mov ebp, dword [esp + 0x24]
cmp cx, word [edx + ebp]
jne 0x41094e
add eax, edi
push esi
add eax, ebp
push eax
add edi, ebp
push edi
call fcn.0044ab40
movzx eax, byte [ebx + ebx*4 + 0x4a4ccc]
add esp, 0xc
mov edi, ebx
test eax, eax
je 0x4108f5
mov ecx, edi
imul ecx, ecx, 0x4a
add ecx, eax
mov eax, dword [ecx*4 + 0x4a4c64]
add eax, 2
mov ecx, eax
and ecx, 0xff
je 0x410908
mov edx, 0x100
sub edx, ecx
add eax, edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx*4 + 0x4a4fe0]
mov edx, dword [esp + 0x14]
mov cx, word [ecx + ebp]
mov ebx, dword [esp + 0x24]
lea eax, [eax + edx*2]
mov word [eax + ebp], cx
jmp 0x41092c
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x14], edx
cmp edx, 0x46
jb 0x4107e1
movzx esi, byte [edi + edi*4 + 0x4a4ccc]
test esi, esi
jne 0x410959
xor edx, edx
jmp 0x41096a
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret
mov edx, edi
imul edx, edx, 0x4a
add edx, esi
mov edx, dword [edx*4 + 0x4a4c64]
add edx, 2
mov eax, edx
and eax, 0xff
je 0x41097c
mov ecx, 0x100
sub ecx, eax
add edx, ecx
add ebp, esi
movzx esi, word [ebp*2 + 0x4a5230]
xor ecx, ecx
mov eax, 0xffff
test esi, esi
je 0x4109d0
add edx, ebx
mov dword [esp + 0x1c], edx
jmp 0x4109a0
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + ecx]
mov dword [esp + 0x18], ebx
mov ebx, eax
shr ebx, 8
movzx edi, bl
mov ebx, dword [esp + 0x18]
xor edx, edi
movzx edx, word [edx*2 + 0x4a4ad8]
shl eax, 8
inc ecx
xor eax, edx
cmp ecx, esi
jb 0x4109a0
mov edi, dword [esp + 0x10]
mov ecx, dword [ebp*4 + 0x4a4fe0]
mov word [ebx + ecx], ax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret