Function at 0x44b950
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
mov dword [esp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp - 0x14], 0x2497426e
sub dword [ebp - 0x14], 0x21a7c51
add dword [ebp - 0x14], 0x4398853
mov esi, esi
add dword [ebp - 0x14], 0x50c073a5
sub dword [ebp - 0x14], 0x7776c215
push esi
mov edi, edi
mov dword [ebp - 0x18], ebx
call fcn.00441fe0
mov ecx, eax
call fcn.0043e350
mov dword [esp - 0x40], esp
mov ecx, dword [0x4c0904]
push eax
call fcn.0043b7c0
mov ecx, eax
mov dword [esp - 0x44], 0x102cf0a0
call fcn.0045ca40
cmp dword [ebx + 0xc4], 4
mov esi, eax
mov dword [ebp - 0x1c], esi
mov ebp, ebp
je 0x44bd06
mov ecx, dword [esi + 0xc4]
test ecx, ecx
mov edi, edi
je 0x44bd06
cmp byte [ecx + 0x40], 0
je 0x44bd06
mov dword [esp - 0x38], ecx
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.0044c080
mov edx, edx
push dword [ebx + 0xbc]
mov esi, dword [esi + 0xc4]
lea eax, [ebp - 0xc]
mov dword [esp - 0x38], edi
nop
sub esp, 4
mov dword [esp], 0x624c0f73
sub dword [esp], 0x471610cd
xchg ebp, ebp
xor dword [esp], 0x323f73cc
sub dword [esp], 0x16f8937b
add dword [esp], 0x245e80e5
sub dword [esp], 0x18223abe
mov esi, esi
sub dword [esp], 0x1e4e4016
push eax
lea ecx, [ebp - 0x2c]
call fcn.00485b60
mov dword [esp - 0x34], edi
push eax
mov ecx, esi
call fcn.0043e420
xchg edx, edx
mov dword [ebp - 0x24], eax
add eax, 4
cmp dword [ebp - 8], 2
mov dword [ebp - 0x10], eax
mov ebp, ebp
jbe 0x44ba73
push dword [ebp - 0xc]
call fcn.00490c60
add esp, 4
mov esi, esi
mov eax, dword [ebp - 0x28]
push edi
mov dword [ebp - 8], eax
cmp dword [ebx + 0xbc], eax
mov dword [esp - 0x3c], 0x4bede99c
je 0x44bbfb
cmp eax, 2
lea ecx, [ebp - 0x2c]
mov dword [esp - 0x10], 0x6de8a646
cmova ecx, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 4], ecx
mov ecx, ecx
mov ecx, 0x1c17bfa
xor ecx, 0x22c4f9cd
add ecx, 0x782620
mov ecx, ecx
add ecx, 0xc08f475
sub ecx, 0x194c2bc8
sub ecx, 0x163a7102
mul ecx
xchg edi, edi
pushf
mov ecx, 0x4030b6a9
xor ecx, 0x626981d6
mov dword [esp - 0x38], edi
add ecx, 0x37e091d6
add ecx, 0x1d281759
sub ecx, 0x30ce1cb1
xor ecx, 0x3e09711f
mov dword [esp - 0x40], 0x1e8bac1f
add ecx, 0x87654d1d
popf
cmovb eax, ecx
push eax
mov ebx, ebx
call fcn.00490c90
mov esi, eax
add esp, 4
mov eax, dword [ebp - 8]
mov ebp, ebp
xor edi, edi
mov dword [ebp - 0x14], esi
test eax, eax
mov dword [esp - 0xc], 0x9a42e84
je 0x44bba2
sub dword [ebp - 4], esi
mov edx, esi
mov esi, dword [ebp - 4]
xchg edi, edi
mov ebx, eax
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov dword [esp - 0x34], 0x18fd8d4a
mov eax, 0x547258ac
add eax, 0x915a3b2
sub eax, 0x5782f12b
xor eax, 0x68915aa4
mov dword [esp - 0x28], ebp
sub eax, 0x67aa738f
add eax, 0x74c066e9
shl ecx, 3
inc edi
mov dword [esp - 0x20], 0x4785bed
sar eax, cl
cbw
xor ax, word [edx + esi - 2]
mov dword [esp - 0x28], 0x129ba32b
mov word [edx - 2], ax
cmp edi, ebx
jb 0x44bb3a
mov esi, dword [ebp - 0x14]
mov dword [esp - 0x44], 0x1d35ba3a
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
xor ecx, ecx
mov dword [esp - 0x44], 0x51589f57
mov word [esi + eax*2], cx
mov eax, dword [ebx + 0xbc]
mov ecx, dword [ebp - 0x1c]
xchg edi, edi
lea eax, [esi + eax*2]
mov ecx, dword [ecx + 0xc4]
push eax
xchg ebp, ebp
call fcn.0043e6d0
mov edi, eax
mov ecx, 0x488e1f00
mov dword [esp - 0x3c], ebp
sub ecx, 0x37acf9c
add ecx, 0x179f5efa
sub ecx, 0x4c081794
add ecx, 0x17e6b5c8
mov dword [esp - 0x14], ebx
sub ecx, 0x28914c91
jmp 0x44bc05
mov esi, dword [ebp - 0x24]
xor edi, edi
mov edx, edx
mov ecx, dword [ebp - 0x14]
test cl, 1
je 0x44bc15
mov esp, esp
push esi
call fcn.00490c60
add esp, 4
lea eax, [ebp - 0x20]
xchg esi, esi
mov ecx, ebx
push eax
call fcn.0045e370
mov dword [esp - 0x40], edi
mov ecx, ebx
mov esi, dword [eax]
lea eax, [ebp - 0x20]
mov dword [esp - 0x28], 0xb0f346e
sub esi, dword [ebx + 0xc4]
sub esi, dword [ebp - 0x10]
push eax
call fcn.0045e370
mov dword [esp - 0x28], 0x6b2c97f5
cmp edi, esi
cmovle esi, edi
mov eax, dword [eax]
mov dword [esp - 0x1c], esi
sub eax, esi
sub eax, dword [ebp - 0x10]
mov dword [ebx + 0xc4], eax
mov esp, esp
pop edi
cmp eax, 4
jle 0x44bcb8
mov ebp, ebp
mov dword [ebx + 0xc4], 0xf049316
add dword [ebx + 0xc4], 0x349d84fe
sub dword [ebx + 0xc4], 0x29db9635
mov edi, edi
add dword [ebx + 0xc4], 0x729ba63
add dword [ebx + 0xc4], 0x392acf55
sub dword [ebx + 0xc4], 0x4fd4a82c
sub dword [ebx + 0xc4], 0xa466367
mov ebx, ebx
jmp 0x44bced
mov ecx, dword [ebp - 0x24]
add eax, ecx
mov dword [esp - 0x30], ebp
cmp eax, 4
jge 0x44bced
mov eax, 0x421a935b
add eax, 0x2229f3b6
mov dword [esp - 0x1c], ebx
sub eax, 0x269b131d
xor eax, 0x429e5d08
sub eax, 0x7f372ef8
sub eax, ecx
mov esp, esp
mov dword [ebx + 0xc4], eax
cmp dword [ebp - 0x28], 2
jbe 0x44bd06
push dword [ebp - 0x2c]
mov dword [esp - 0x38], 0x3078c0c1
call fcn.00490c60
add esp, 4
pop esi
pop ebx
mov dword [esp - 0x3c], ebp
mov esp, ebp
pop ebp
ret