Function at 0x441550
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov dword [esp + 0x18], 0x92919097
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov eax, 0x900a7fc2
mov dword [esp + 8], 0x900a7fc3
mov ecx, 0x6ff5803c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ecx
movzx ebx, byte [esp + eax + 0x6ff58056]
mov esi, ebx
lea ecx, [ebx + ebx]
not ecx
add ecx, ebx
mov dword [esp + 0x14], ecx
not ebx
mov dword [esp + 0x30], eax
mov edx, ebx
and edx, 0x401000e3
and esi, 0x1c
or esi, edx
mov edx, esi
xor edx, 0xbfefff1c
xor esi, 0xe3
or esi, ebx
lea ebx, [edx + esi]
add edx, esi
inc edx
lea edi, [eax + 1]
mov esi, edi
and esi, 0x1846
mov ecx, dword [esp + 4]
and ecx, 0x60818019
or ecx, esi
xor ecx, 0xf08be799
and ecx, edi
mov esi, edx
and esi, ecx
xor ecx, edx
not ecx
add ebx, ecx
inc ebx
sub ebx, esi
mov ecx, dword [esp + 4]
shr ecx, 1
and ecx, 1
mov edx, edi
and edx, 0x100a7fdd
imul edx, ecx
mov eax, dword [esp + 8]
mov ecx, eax
shr ecx, 1
and ecx, 1
mov esi, edi
or esi, 2
imul esi, ecx
add edx, edx
lea ecx, [edx + esi*2]
mov esi, dword [esp + 0x30]
mov edx, esi
sub edx, ecx
and edx, dword [esp + 0x14]
mov ecx, ebx
and ecx, edx
add edx, ebx
add ecx, ecx
sub edx, ecx
and edx, ebx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
add cl, 0xab
mov byte [esp + esi + 0x6ff58056], cl
mov ecx, dword [esp + 4]
inc eax
mov dword [esp + 8], eax
dec ecx
mov eax, edi
cmp edi, 0x900a7fce
jne 0x441590
mov eax, dword [esp + 0x18]
mov esi, dword [0x44d514]
test esi, esi
je 0x4416ca
xor ecx, ecx
mov edx, dword [0x44d518]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x5fb66e8c
je 0x4416a0
inc ecx
cmp esi, ecx
jne 0x441690
jmp 0x4416ca
mov edx, dword [edx + ecx*8 + 4]
cmp edx, eax
je 0x4416ca
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
push 6
push dword [0x44d51c]
push edx
call fcn.0043d9a0
add esp, 0x24
mov dword [esp + 0x18], 0xabd4d5f3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov word [esp + 0x24], 0
mov esi, 0x51a3707
mov ecx, 0x7ae5c8f8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x51a36ef]
mov edi, ecx
and edi, 0x68c5c8ea
mov ebx, esi
and ebx, 0x50a2115
sub ebx, edi
xor ebx, edx
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x10]
mov edi, edx
not edi
and edi, 0xcb
and edx, 0x34
sub edx, edi
mov byte [esp + esi - 0x51a36ef], dl
inc esi
dec ecx
cmp esi, 0x51a3715
jne 0x441700
cmp eax, dword [esp + 0x18]
jne 0x4419f8
push dword [esp + 0x34]
call fcn.0043bda0
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], 0x92919097
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov eax, 0x900a7fc2
mov dword [esp + 0x14], 0x900a7fc3
mov esi, 0x6ff5803c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], esi
movzx edx, byte [esp + eax + 0x6ff58056]
mov ecx, edx
lea esi, [edx + edx]
not esi
add esi, edx
mov dword [esp + 0x30], esi
not edx
mov dword [esp + 8], eax
mov edi, edx
and edi, 0x401000e3
and ecx, 0x1c
or ecx, edi
mov edi, ecx
xor edi, 0xbfefff1c
xor ecx, 0xe3
or ecx, edx
lea edx, [edi + ecx]
add edi, ecx
inc edi
lea ebx, [eax + 1]
mov ecx, ebx
and ecx, 0x1846
mov esi, dword [esp + 4]
and esi, 0x60818019
or esi, ecx
xor esi, 0xf08be799
and esi, ebx
mov ecx, edi
and ecx, esi
xor esi, edi
not esi
add edx, esi
inc edx
sub edx, ecx
mov ecx, dword [esp + 4]
shr ecx, 1
and ecx, 1
mov edi, ebx
and edi, 0x100a7fdd
imul edi, ecx
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 1
and ecx, 1
mov esi, ebx
or esi, 2
imul esi, ecx
add edi, edi
lea ecx, [edi + esi*2]
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
sub edi, ecx
and edi, dword [esp + 0x30]
mov ecx, edx
and ecx, edi
add edi, edx
add ecx, ecx
sub edi, ecx
and edi, edx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x10]
add cl, 0xab
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x6ff58056], cl
inc eax
mov dword [esp + 0x14], eax
dec esi
mov eax, ebx
cmp ebx, 0x900a7fce
jne 0x4417a0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [0x44d514]
test eax, eax
je 0x4418b0
xor ecx, ecx
mov edx, dword [0x44d518]
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x2c]
nop
nop
cmp dword [edx + ecx*8], 0x5fb66e8c
je 0x4418b9
inc ecx
cmp eax, ecx
jne 0x4418a0
jmp 0x4418ea
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x2c]
jmp 0x4418ea
mov eax, dword [edx + ecx*8 + 4]
cmp eax, dword [esp + 4]
je 0x4418ea
lea ecx, [esp + 0x34]
push ecx
push dword [esp + 0x3c]
push esi
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
push 6
push dword [0x44d51c]
push eax
call fcn.0043d9a0
add esp, 0x24
mov dword [esp + 4], eax
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x4419eb
cmp dword [esp + 4], 0
js 0x4419eb
test ebx, ebx
je 0x4419e4
mov eax, dword [esi + 0xc]
shr eax, 1
mov edi, dword [edx]
cmp edi, eax
jb 0x441915
mov edi, eax
test edi, edi
je 0x4419df
add dword [esp + 0xc], 0x10
mov eax, edi
and eax, 3
je 0x44196d
mov dword [esp + 8], edi
xor edi, edi
nop
mov ecx, dword [esp + 0xc]
mov esi, ebx
movzx ebx, word [ecx]
xor edx, edx
test bx, bx
setne dl
lea ecx, [ecx + edx*2]
mov dword [esp + 0xc], ecx
mov word [esi], bx
mov ebx, esi
add ebx, 2
inc edi
cmp eax, edi
jne 0x441930
mov eax, dword [esp + 8]
mov ecx, eax
sub ecx, edi
mov edi, eax
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x2c]
cmp edi, 4
jae 0x441980
jmp 0x4419df
mov ecx, edi
cmp edi, 4
jb 0x4419df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
mov edx, dword [esp + 0xc]
movzx edi, word [edx]
xor ebx, ebx
test di, di
setne bl
mov word [eax], di
lea edi, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [eax + 2], dx
lea edx, [edi + ebx*2]
movzx edi, word [edi + ebx*2]
xor ebx, ebx
test di, di
setne bl
mov word [eax + 4], di
lea edi, [edx + ebx*2]
movzx ebx, word [edx + ebx*2]
xor edx, edx
test bx, bx
setne dl
lea edx, [edi + edx*2]
mov dword [esp + 0xc], edx
mov word [eax + 6], bx
lea ebx, [eax + 8]
add ecx, 0xfffffffc
jne 0x441980
mov edx, dword [ebp + 0x14]
mov word [ebx], 0
mov eax, dword [esi + 0xc]
shr eax, 1
mov dword [edx], eax
push esi
call fcn.0043be60
add esp, 4
mov eax, dword [esp + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret