Function at 0x4404a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 8], 0xc0c7c6c5
mov word [esp + 0xc], 0
mov ebp, 0x1e0e2d1
mov esi, 0xaa1f1d2e
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp - 0x1e0e2c9]
mov edx, esi
and edx, 0xaa1f0c21
mov eax, ebp
and eax, 0x1c0029e
or eax, edx
xor eax, ebx
mov edx, eax
xor edx, 0xfe3fec61
mov ebx, eax
xor ebx, 0x535b8274
and ebx, edx
mov edx, ebx
and edx, 0xfd
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
xor edi, 2
imul edi, edx
xor eax, 0x8b
add eax, ebx
add eax, edi
inc al
mov byte [esp + ebp - 0x1e0e2c9], al
inc ebp
dec esi
cmp ebp, 0x1e0e2d7
jne 0x4404e0
mov eax, dword [esp + 8]
mov edx, dword [0x452164]
test edx, edx
je 0x4405a3
xor ebx, ebx
mov ebp, dword [0x452168]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0xf3285e74
je 0x440571
inc ebx
cmp edx, ebx
jne 0x440560
jmp 0x4405a3
mov edx, dword [ebp + ebx*8 + 4]
cmp edx, eax
je 0x4405a3
lea eax, [esp + 0x20]
lea esi, [esp + 4]
push 4
push 0x3000
push eax
push 0
push esi
push 0xffffffffffffffff
push 6
push dword [0x45216c]
push edx
mov ebx, ecx
call fcn.00442160
mov ecx, ebx
add esp, 0x24
test eax, eax
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x44]
js 0x440610
push 0
push 0
push dword [esi + 8]
push dword [esp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.0043f7c0
test eax, eax
jns 0x4405e1
mov ecx, eax
mov dword [esp], 0
mov edx, 0
cmp eax, 0x8000000d
jne 0x4406b4
mov eax, dword [esp + 4]
mov ecx, dword [esi + 8]
add ecx, eax
sub ecx, dword [esp + 0x40]
mov dword [esp], 0
mov edx, 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
jbe 0x4406b4
mov ecx, dword [esp + 0x10]
jmp 0x440646
mov dword [esp], 0
xor edx, edx
jmp 0x44079e
and edx, 0xb2e9d8b8
xor eax, 0x5974ec5c
add eax, edx
add ecx, eax
add ecx, 0xa68b13a3
inc ecx
mov dword [esp], 0
mov edx, 0
cmp ecx, dword [esp + 0x14]
jae 0x4406b4
test edi, edi
je 0x44064f
cmp byte [edi], 0x3f
je 0x44065a
movzx eax, byte [ecx]
mov edx, dword [esp + 0x3c]
cmp al, byte [edx]
jne 0x440633
cmp dword [esp + 0x40], 2
jb 0x440694
mov eax, 1
mov edx, 2
jmp 0x440688
movzx ebx, byte [ecx + eax]
mov ebp, dword [esp + 0x3c]
cmp bl, byte [ebp + eax]
jne 0x44061e
inc eax
add edx, 2
cmp dword [esp + 0x40], eax
je 0x440694
test edi, edi
je 0x440670
cmp byte [edi + eax], 0x3f
jne 0x440670
jmp 0x44067e
test ecx, ecx
je 0x4406ab
sub ecx, dword [esp + 0x10]
mov edx, ecx
sar edx, 0x1f
add ecx, dword [esi]
adc edx, dword [esi + 4]
mov dword [esp], ecx
jmp 0x4406b4
mov dword [esp], 0
xor edx, edx
mov dword [esp + 0x1c], 0
mov dword [esp + 8], 0xc0c7c6c5
mov word [esp + 0xc], 0
mov ecx, 0x1e0e2d1
mov eax, 0xaa1f1d2e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x1e0e2c9]
mov ebp, eax
and ebp, 0xaa1f0c21
mov ebx, ecx
and ebx, 0x1c0029e
or ebx, ebp
xor ebx, edi
mov ebp, ebx
xor ebp, 0xfe3fec61
mov edi, ebx
xor edi, 0x535b8274
and edi, ebp
mov ebp, edi
and ebp, 0xfd
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
xor esi, 2
imul esi, ebp
xor ebx, 0x8b
add ebx, edi
add ebx, esi
inc bl
mov byte [esp + ecx - 0x1e0e2c9], bl
inc ecx
dec eax
cmp ecx, 0x1e0e2d7
jne 0x4406e0
mov ecx, dword [0x452164]
test ecx, ecx
je 0x44079e
mov esi, dword [esp + 8]
xor edi, edi
mov ebx, dword [0x452168]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x731cdbf3
je 0x440770
inc edi
cmp ecx, edi
jne 0x440760
jmp 0x44079e
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, esi
je 0x44079e
lea eax, [esp + 0x1c]
lea esi, [esp + 4]
push 0x8000
push eax
push esi
push 0xffffffffffffffff
push 4
push dword [0x45216c]
push ecx
mov edi, edx
call fcn.00442160
mov edx, edi
add esp, 0x1c
mov eax, dword [esp]
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret 0x10