Function at 0x443880
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50d747
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48
push edi
mov edi, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x23], 0x8b8c9c94
mov dword [ebp - 0x1f], 0x9688c286
mov word [ebp - 0x1b], 0x8a
mov byte [ebp - 0x19], 1
jmp 0x4438f0
lea eax, [ecx - 0x19]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 9
jb 0x4438f0
xor eax, eax
mov byte [ebp - 0x19], 0
lea ecx, [ebp - 0x23]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
jmp 0x443920
mov al, byte [ecx]
inc ecx
test al, al
jne 0x443920
push esi
sub ecx, edx
lea eax, [ebp - 0x23]
push ecx
push eax
lea ecx, [ebp - 0x54]
call fcn.00402ea0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x54]
call fcn.004437d0
mov esi, eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x40]
cmp ecx, 0xf
jbe 0x443980
mov edx, dword [ebp - 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x443976
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x443af3
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
test esi, esi
je 0x443ae1
cmp esi, 0xea60
jae 0x443ae1
push ebx
mov dword [ebp - 4], 2
xor eax, eax
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x24]
xor ebx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], ebx
mov edx, esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], al
mov dword [ebp - 0x10], 3
call fcn.004432d0
mov byte [ebp - 4], 3
xor ecx, ecx
mov esi, dword [ebp - 0x24]
mov eax, 0x2aaaaaab
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x20]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x443a5b
mov edi, dword [ebp - 0x20]
lea esp, [esp]
lea eax, [esi + ebx]
lea ecx, [ebp - 0x3c]
cmp ecx, eax
je 0x443a35
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x443a25
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x3c]
call fcn.00468880
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
inc dword [ebp - 0x14]
mov ecx, edi
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
add ebx, 0x18
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x14], eax
jb 0x443a10
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.0046ac50
test ebx, ebx
pop ebx
je 0x443a8d
mov eax, dword [edi + 4]
lea ecx, [ebp - 0x3c]
push ecx
cmp eax, dword [edi + 8]
je 0x443a85
mov ecx, eax
call fcn.00468b20
add dword [edi + 4], 0x18
jmp 0x443a8d
push eax
mov ecx, edi
call fcn.00476700
mov eax, 3
mov dword [ebp - 0x10], eax
and eax, 0xfffffffd
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xf
jbe 0x443acf
mov edx, dword [ebp - 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x443ac5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x443af3
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop esi
pop edi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
call fcn.004e4d70
int3