Function at 0x442340
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov eax, dword [ebp + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x442360
add ecx, 0xfffffffe
and ecx, 0xfffe
mov word [esp + 0x30], cx
add ecx, 2
mov word [esp + 0x32], cx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0x92919097
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov eax, 0x900a7fc2
mov dword [esp + 0x10], 0x900a7fc3
mov ecx, 0x6ff5803c
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 + 0xc], ecx
not ebx
mov dword [esp + 8], 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 + 0x10]
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 + 8]
mov edx, esi
sub edx, ecx
and edx, dword [esp + 0xc]
mov ecx, ebx
and ecx, edx
add edx, ebx
add ecx, ecx
sub edx, ecx
and edx, ebx
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
add cl, 0xab
mov byte [esp + esi + 0x6ff58056], cl
mov ecx, dword [esp + 4]
inc eax
mov dword [esp + 0x10], eax
dec ecx
mov eax, edi
cmp edi, 0x900a7fce
jne 0x4423b0
mov eax, dword [esp + 0x18]
mov esi, dword [0x44d514]
test esi, esi
je 0x4424ec
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], 0xd07a397f
je 0x4424c0
inc ecx
cmp esi, ecx
jne 0x4424b0
jmp 0x4424ec
mov esi, dword [edx + ecx*8 + 4]
cmp esi, eax
je 0x4424ec
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x30]
push ecx
push 0
push 0
push 2
push edx
push dword [ebp + 8]
push 6
push dword [0x44d51c]
push esi
call fcn.0043d9a0
add esp, 0x24
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0x43828dab
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov edx, 0xca351896
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ecx
movzx eax, byte [esp + edx + 0x35cae782]
mov dword [esp + 0x10], eax
lea edi, [eax + eax]
not edi
add edi, eax
mov esi, edi
not esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
and edi, 0xf7c89490
and ebx, 0x8376b6f
or ebx, edi
xor ebx, 0xfae4879f
and esi, 0xd2c130f
or esi, ebx
mov edi, edx
or edi, 0xf2d3ecf0
mov eax, edx
and eax, 0x824100f
mov ebx, eax
not ebx
mov ecx, dword [esp + 4]
add ecx, edi
add ecx, 0x5cae76a
or ebx, ecx
add edi, eax
add edi, dword [esp + 4]
add ebx, eax
mov eax, edi
and eax, 1
xor edi, 1
sub edi, ebx
lea ecx, [edi + eax*2]
lea edi, [edi + eax*2]
add edi, 0x35cae768
mov eax, dword [esp + 0x10]
not eax
or eax, 0xfffffff0
and eax, esi
lea esi, [ecx*2 + 0x6b95ced0]
sub esi, ecx
mov ecx, dword [esp + 4]
and edi, eax
add esi, 0xca351898
or esi, eax
not esi
or esi, edi
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
add al, 0xe6
mov byte [esp + edx + 0x35cae782], al
inc edx
dec ecx
cmp edx, 0xca3518a6
jne 0x442520
mov edi, dword [esp + 0xc]
cmp edi, dword [esp + 0x18]
jne 0x442819
push dword [esp + 0x2c]
call fcn.0043bda0
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
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 + 0xc], 0x900a7fc3
mov ebx, 0x6ff5803c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ebx
movzx edx, byte [esp + eax + 0x6ff58056]
mov esi, edx
lea ecx, [edx + edx]
not ecx
add ecx, edx
not edx
mov dword [esp + 0x10], eax
mov edi, edx
and edi, 0x401000e3
and esi, 0x1c
or esi, edi
mov edi, esi
xor edi, 0xbfefff1c
xor esi, 0xe3
or esi, edx
lea edx, [edi + esi]
add edi, esi
inc edi
inc eax
mov esi, eax
and esi, 0x1846
mov ebx, dword [esp + 4]
and ebx, 0x60818019
or ebx, esi
xor ebx, 0xf08be799
and ebx, eax
mov esi, edi
and esi, ebx
xor ebx, edi
not ebx
add edx, ebx
inc edx
sub edx, esi
mov esi, dword [esp + 4]
shr esi, 1
and esi, 1
mov edi, eax
and edi, 0x100a7fdd
imul edi, esi
mov esi, dword [esp + 0xc]
shr esi, 1
and esi, 1
mov ebx, eax
or ebx, 2
imul ebx, esi
add edi, edi
lea esi, [edi + ebx*2]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x10]
sub edi, esi
and edi, ecx
mov ecx, edx
and ecx, edi
add edi, edx
add ecx, ecx
sub edi, ecx
and edi, edx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x14]
add cl, 0xab
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x6ff58056], cl
inc dword [esp + 0xc]
dec ebx
mov ecx, eax
cmp eax, 0x900a7fce
jne 0x442640
mov edi, dword [esp + 0x18]
mov eax, dword [0x44d514]
test eax, eax
je 0x442773
xor ecx, ecx
mov edx, dword [0x44d518]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xd07a397f
je 0x442740
inc ecx
cmp eax, ecx
jne 0x442730
jmp 0x442773
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x442773
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x30]
push ecx
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
push ecx
push 2
push edx
push dword [ebp + 8]
push 6
push dword [0x44d51c]
push eax
call fcn.0043d9a0
add esp, 0x24
mov edi, eax
test edi, edi
js 0x44280d
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x44278b
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
mov dword [ecx], eax
cmp dword [ebp + 0x18], 0
je 0x44280d
cmp dword [ebp + 0x14], 0
je 0x442801
mov dword [esp + 0xc], edi
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
cmp edx, eax
jb 0x4427ad
mov edx, eax
mov eax, dword [esp + 8]
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov ebx, dword [ebp + 0x14]
mov edi, ebx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov esi, edx
and esi, 0xfffffffc
add esi, ebx
mov ecx, edx
xor ecx, 3
mov edi, edx
or edi, 0xfffffffc
and edi, ecx
add eax, edi
add eax, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test dl, 1
mov edi, dword [esp + 0xc]
je 0x442801
and edx, 2
movzx eax, byte [eax + edx]
mov byte [esi + edx], al
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
push dword [esp + 8]
call fcn.0043be60
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret