Function at 0x443a70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
mov eax, ebx
add eax, ebp
adc ecx, 0
xor edi, edi
mov edx, 0xfffffffe
cmp edx, eax
mov eax, 0
sbb eax, ecx
mov esi, dword [esp + 0x30]
jb 0x443ae5
mov ecx, ebx
shr ecx, 2
mov eax, ebp
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebx
and edx, 0xfffffffc
add esi, edx
add edx, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp], 0
test bl, 1
je 0x443cdd
and ebx, 2
movzx eax, byte [edx + ebx]
mov byte [esi + ebx], al
jmp 0x443cdd
mov dword [esp + 4], 0xc0c7c6c5
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov ecx, 0xffffffff
nop
nop
movzx esi, byte [esp + edi + 4]
mov eax, ecx
or eax, 0x84b0de51
lea ebx, [edi + eax]
inc ebx
mov eax, ebx
and eax, 0xfffffffd
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
xor edx, 2
imul edx, eax
mov eax, edi
xor eax, 0x84b0de51
add eax, ebx
add eax, edx
mov edx, esi
and edx, eax
mov ebp, edx
or ebp, 0xfd
inc ebp
mov ebx, edx
and ebx, 0xfffffffd
imul ebx, ebp
mov ebp, edx
and ebp, 2
or edx, 2
imul edx, ebp
sub ebx, edx
add ebx, eax
mov eax, esi
add bl, al
add bl, 0x6b
mov byte [esp + edi + 4], bl
inc edi
dec ecx
cmp edi, 7
jne 0x443b00
mov eax, dword [esp + 4]
mov dword [esp], eax
mov eax, dword [0x4528cc]
test eax, eax
je 0x443ba0
xor ecx, ecx
mov edx, dword [0x4528d0]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x7789b0cb
je 0x443bae
inc ecx
cmp eax, ecx
jne 0x443b90
jmp 0x443bdc
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
jmp 0x443bdc
mov ecx, dword [edx + ecx*8 + 4]
cmp ecx, dword [esp]
je 0x443bdc
lea eax, [esp + 0xc]
push 2
push 0
push 0
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 7
push dword [0x4528d4]
push ecx
call fcn.004428e0
add esp, 0x28
mov dword [esp], eax
cmp dword [esp], 0
js 0x443cdd
push 0x1e03da9a
push dword [0x45a8e0]
call fcn.00445090
add esp, 8
push 0
push 0
push edi
push esi
push dword [esp + 0x3c]
push ebx
push dword [esp + 0x24]
call eax
mov dword [esp], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0xc0c7c6c5
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor esi, esi
mov edx, 0xffffffff
movzx eax, byte [esp + esi + 4]
mov ecx, edx
or ecx, 0x84b0de51
add ecx, esi
inc ecx
mov edi, ecx
and edi, 0xfffffffd
mov ebx, ecx
and ebx, 2
or ecx, 2
imul ecx, ebx
xor ebx, 2
imul ebx, edi
mov edi, esi
xor edi, 0x84b0de51
add edi, ecx
add edi, ebx
mov ebx, eax
and ebx, edi
mov ebp, ebx
or ebp, 0xfd
inc ebp
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, ebp
mov ebp, ebx
and ebp, 2
or ebx, 2
imul ebx, ebp
sub ecx, ebx
add ecx, edi
add cl, al
add cl, 0x6b
mov byte [esp + esi + 4], cl
inc esi
dec edx
cmp esi, 7
jne 0x443c30
mov eax, dword [0x4528cc]
test eax, eax
je 0x443cdd
mov ecx, dword [esp + 4]
xor edx, edx
mov esi, dword [0x4528d0]
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x7e776f1
je 0x443cc0
inc edx
cmp eax, edx
jne 0x443cb0
jmp 0x443cdd
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x443cdd
push dword [esp + 0x10]
push 1
push dword [0x4528d4]
push eax
call fcn.004428e0
add esp, 0x10
mov eax, dword [esp]
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret