Function at 0x441360
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov dword [esp + 0x18], 0x2a252427
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x18]
mov dword [esp + 8], edx
mov esi, eax
and esi, 0xb
xor esi, 0x2828347b
mov ecx, eax
and ecx, 4
sub ecx, esi
mov esi, edx
not esi
lea esi, [edx + esi*2]
mov edi, 0xfffffffe
sub edi, esi
mov ebx, 0xfe
sub ebx, esi
and ebx, edx
or ebx, edi
lea esi, [ebx + ebx]
not esi
add esi, ebx
mov edi, ecx
not edi
mov dword [esp + 4], edi
mov ebx, ecx
and ebx, 0xd7d7cb9d
and edi, 2
imul edi, ebx
mov ebx, ecx
and ebx, 2
mov edx, ecx
or edx, 2
imul edx, ebx
lea ebx, [edx + edi]
add edx, edi
inc edx
xor edx, ecx
xor ebx, 0x17d7cb9e
and ebx, ecx
add ebx, ebx
sub ebx, edx
and ebx, dword [esp + 4]
or ebx, esi
or ecx, dword [esp + 8]
and ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
add cl, 0x5d
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0xc
jne 0x441390
mov eax, dword [esp + 0x18]
mov esi, dword [0x44d628]
test esi, esi
je 0x44147a
xor ecx, ecx
mov edx, dword [0x44d62c]
nop
nop
nop
cmp dword [edx + ecx*8], 0x5fb66e8c
je 0x441450
inc ecx
cmp esi, ecx
jne 0x441440
jmp 0x44147a
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x44147a
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
push 6
push dword [0x44d630]
push edx
call fcn.0043dbc0
add esp, 0x24
mov dword [esp + 4], eax
mov dword [esp + 0x18], 0x7b3839d3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov ebx, 0x55e9ad28
mov ecx, 0xaa1652d7
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], ebx
movzx esi, byte [esp + ecx + 0x55e9ad41]
mov edi, esi
not edi
mov edx, ecx
or edx, edi
add edx, esi
inc edx
mov ebx, edx
and ebx, 0xfffffffd
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
xor eax, 2
imul eax, ebx
mov ebx, dword [esp + 8]
add edx, eax
and edi, 0xffce9933
and esi, 0xffffffcc
or esi, edi
mov eax, ebx
and eax, 0x55c88933
mov edi, ecx
and edi, 0x1042cc
or edi, eax
xor edi, esi
mov eax, edx
and eax, edi
xor edi, edx
lea esi, [edi + eax*2]
lea edi, [edx + edx]
not edi
add edi, edx
and edi, esi
xor esi, edx
mov eax, edi
and eax, 2
mov edx, edi
or edi, 2
imul edi, eax
xor eax, 2
and edx, 0xfffffffd
imul edx, eax
sub edi, esi
add edi, edx
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
add al, 0x1f
mov byte [esp + ecx + 0x55e9ad41], al
dec ebx
inc ecx
cmp ebx, 0x55e9ad18
jne 0x4414b0
mov esi, dword [esp + 4]
cmp esi, dword [esp + 0x18]
jne 0x4417c7
push dword [esp + 0x2c]
call fcn.0043bc30
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], 0x2a252427
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x18]
mov dword [esp + 8], edx
mov ecx, esi
and ecx, 0xb
xor ecx, 0x2828347b
mov eax, esi
and eax, 4
sub eax, ecx
mov ecx, edx
not ecx
lea ecx, [edx + ecx*2]
mov edi, 0xfffffffe
sub edi, ecx
mov ebx, 0xfe
sub ebx, ecx
and ebx, edx
or ebx, edi
lea edi, [ebx + ebx]
not edi
add edi, ebx
mov ebx, eax
not ebx
mov dword [esp + 4], ebx
mov ecx, eax
and ecx, 0xd7d7cb9d
and ebx, 2
imul ebx, ecx
mov ecx, eax
and ecx, 2
mov edx, eax
or edx, 2
imul edx, ecx
lea ecx, [edx + ebx]
add edx, ebx
inc edx
xor edx, eax
xor ecx, 0x17d7cb9e
and ecx, eax
add ecx, ecx
sub ecx, edx
and ecx, dword [esp + 4]
or ecx, edi
or eax, dword [esp + 8]
and eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0x5d
mov byte [esp + esi + 0x18], al
inc esi
cmp esi, 0xc
jne 0x4415a0
mov esi, dword [esp + 0x18]
mov eax, dword [0x44d628]
test eax, eax
je 0x441664
xor ecx, ecx
mov edx, dword [0x44d62c]
mov edi, dword [ebp + 0x14]
nop
nop
cmp dword [edx + ecx*8], 0x5fb66e8c
je 0x4416fc
inc ecx
cmp eax, ecx
jne 0x441650
jmp 0x441667
mov edi, dword [ebp + 0x14]
mov edx, dword [esp + 0xc]
test edi, edi
je 0x4417be
test esi, esi
js 0x4417be
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x4417b7
mov eax, dword [edx + 0xc]
shr eax, 1
mov ecx, dword [edi]
cmp ecx, eax
jb 0x441693
mov ecx, eax
test ecx, ecx
mov dword [esp + 4], esi
je 0x4417ae
add dword [esp + 0x10], 0x10
mov eax, ecx
and ecx, 3
je 0x44173a
mov dword [esp + 8], eax
xor edi, edi
mov edx, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
movzx esi, word [eax]
xor ebx, ebx
test si, si
setne bl
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
mov word [edx], si
add edx, 2
inc edi
cmp ecx, edi
jne 0x4416c0
mov eax, dword [esp + 8]
mov esi, eax
sub esi, edi
mov edi, dword [ebp + 0x14]
mov ebx, edx
mov edx, dword [esp + 0xc]
cmp eax, 4
jae 0x441750
jmp 0x4417ae
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
mov edx, dword [esp + 0xc]
je 0x44166b
lea ecx, [esp + 0x2c]
push ecx
push dword [esp + 0x34]
push edx
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
push 6
push dword [0x44d630]
push eax
call fcn.0043dbc0
mov edx, dword [esp + 0x30]
add esp, 0x24
mov esi, eax
jmp 0x44166b
mov esi, eax
cmp eax, 4
jb 0x4417ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebx], dx
lea edx, [eax + ecx*2]
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx + 2], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov dword [esp + 0x10], eax
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x441750
mov edx, dword [esp + 0xc]
mov word [ebx], 0
mov esi, dword [esp + 4]
mov eax, dword [edx + 0xc]
shr eax, 1
mov dword [edi], eax
push edx
call fcn.0043bcf0
add esp, 4
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret