Function at 0x442f50
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [esp + 4], 0x20272625
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x442fe1
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 4]
mov ecx, eax
xor ecx, 0x96c80c9
and eax, 0x96c80c9
lea ecx, [ecx + eax*2]
lea eax, [ecx + edx]
and ecx, edx
mov edx, eax
xor edx, ecx
mov esi, ecx
not esi
and eax, esi
add eax, eax
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, esi
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
xor ecx, 0xed
and eax, 0x12
add eax, eax
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x442f80
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 4]
mov eax, dword [0x44e36c]
test eax, eax
je 0x44303b
xor ecx, ecx
mov edx, dword [0x44e370]
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x84aa3bd1
je 0x443010
inc ecx
cmp eax, ecx
jne 0x443000
jmp 0x44303b
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x44303b
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push 0
push ebx
push dword [esp + 0x44]
push 6
push dword [0x44e374]
push eax
call fcn.0043eec0
add esp, 0x24
mov esi, eax
mov dword [esp + 4], 0xf3323113
mov word [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x4430a3
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 4]
mov edx, eax
xor edx, 0xf3929634
mov edi, eax
xor edi, 0xc6d69cb
or eax, 0x73929634
and eax, edi
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0xfc
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x443060
cmp esi, dword [esp + 4]
jne 0x4432c0
push dword [esp + 0x14]
call fcn.0043bc30
add esp, 4
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], 0x20272625
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 6
ja 0x443152
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx edi, byte [esp + esi + 4]
mov esi, edx
xor esi, 0x96c80c9
and edx, 0x96c80c9
lea esi, [esi + edx*2]
lea edx, [esi + edi]
and esi, edi
mov edi, edx
xor edi, esi
mov ebp, esi
not ebp
and edx, ebp
add edx, edx
sub edx, edi
mov edi, edx
not edi
and edi, esi
and edx, ebp
sub edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov esi, edx
xor esi, 0xed
and edx, 0x12
add edx, edx
sub edx, esi
mov esi, dword [esp]
mov byte [esp + esi + 4], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 7
jb 0x4430f0
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 4]
mov edx, dword [0x44e36c]
test edx, edx
je 0x4431b1
mov eax, ebp
xor ebp, ebp
mov edi, dword [0x44e370]
nop
nop
cmp dword [edi + ebp*8], 0x84aa3bd1
je 0x443182
inc ebp
cmp edx, ebp
jne 0x443170
mov ebp, eax
jmp 0x4431b1
mov edx, dword [edi + ebp*8 + 4]
cmp edx, esi
mov ebp, eax
je 0x4431b1
lea esi, [esp + 0x14]
push esi
push ecx
mov eax, dword [esp + 0x14]
push eax
push 0
push ebx
push dword [esp + 0x44]
push 6
push dword [0x44e374]
push edx
call fcn.0043eec0
add esp, 0x24
mov esi, eax
test ebp, ebp
je 0x4432b4
test esi, esi
js 0x4432b4
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4432a8
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
shr edx, 1
mov eax, dword [ebp]
cmp eax, edx
jb 0x4431df
mov eax, edx
test eax, eax
je 0x4432a3
mov edx, dword [esp + 0xc]
add edx, 0x10
mov edi, eax
and edi, 3
je 0x44322c
mov dword [esp + 0x18], eax
xor ebp, ebp
nop
nop
nop
nop
nop
movzx ebx, word [edx]
xor eax, eax
test bx, bx
setne al
lea edx, [edx + eax*2]
mov word [ecx], bx
add ecx, 2
inc ebp
cmp edi, ebp
jne 0x443200
mov eax, dword [esp + 0x18]
mov edi, eax
sub edi, ebp
mov ebp, dword [esp + 0x3c]
cmp eax, 4
jae 0x443240
jmp 0x4432a3
mov edi, eax
cmp eax, 4
jb 0x4432a3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edx]
xor ebx, ebx
test ax, ax
setne bl
lea ebp, [edx + ebx*2]
mov word [ecx], ax
movzx eax, word [edx + ebx*2]
xor edx, edx
test ax, ax
setne dl
lea ebx, [edx*2]
add ebx, ebp
mov word [ecx + 2], ax
movzx eax, word [ebp + edx*2]
xor edx, edx
test ax, ax
setne dl
lea ebp, [ebx + edx*2]
mov word [ecx + 4], ax
movzx eax, word [ebx + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ecx + 6], ax
add ecx, 8
lea edx, [edx*2]
add edx, ebp
add edi, 0xfffffffc
jne 0x443240
mov ebp, dword [esp + 0x3c]
mov word [ecx], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
shr eax, 1
mov dword [ebp], eax
push dword [esp + 0xc]
call fcn.0043bcc0
add esp, 4
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret