Function at 0x44ad10
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x180
mov ecx, 6
xor eax, eax
push ebx
mov ebx, dword [esp + 0x18c]
push ebp
push esi
mov si, word [esp + 0x198]
push edi
mov edi, ebx
rep stosd dword es:[edi], eax
movsx eax, si
sub eax, 0
je 0x44ad57
sub eax, 2
je 0x44ad50
mov ecx, dword [0x4e2ab8]
xor eax, eax
test ecx, ecx
setne al
jmp 0x44ad5c
mov eax, 2
jmp 0x44ad5c
mov eax, 3
lea ecx, [esp + 0x10]
push 2
push ecx
push eax
call fcn.0044afa0
add esp, 0xc
cmp si, 1
jne 0x44af30
mov esi, dword [esp + 0x194]
push 0x18
push eax
mov ecx, dword [esi + 4]
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 8]
sub ecx, 0x12
push 7
push eax
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0x1c]
push 2
push eax
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0xa]
sub ecx, 0x12
push 7
push eax
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0x3c]
push 2
push eax
push ecx
call fcn.0044afa0
add esp, 0x3c
lea edi, [esi + 0x10]
mov ebp, 4
movsx ecx, word [edi - 2]
lea edx, [ecx + ecx*2]
movsx ecx, word [edi]
lea ecx, [ecx + edx*8]
mov edx, dword [0x4e2ab8]
test edx, edx
jne 0x44adee
movsx edx, word [edi + 4]
shl edx, 0xb
add ecx, edx
push 0xc
push eax
push ecx
call fcn.0044afa0
add esp, 0xc
add edi, 0x10
dec ebp
jne 0x44adce
lea ecx, [esi + 0x12]
mov edx, 4
mov di, word [ecx]
add ecx, 0x10
mov word [eax], di
add eax, 2
dec edx
jne 0x44ae08
mov ecx, dword [0x4e2ab8]
test ecx, ecx
jne 0x44aef5
mov word [eax], 0
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x28]
add eax, 2
sar ecx, 0x10
sar edx, 0xe
lea ecx, [ecx + ecx*8]
push 0xd
add ecx, edx
mov edx, dword [esi + 0x38]
sar edx, 0x10
lea ecx, [ecx + ecx*4]
push eax
lea ecx, [edx + ecx*2]
mov edx, dword [esi + 0x48]
sar edx, 0xe
lea ecx, [ecx + ecx*8]
add ecx, edx
push ecx
call fcn.0044afa0
mov ecx, dword [esi + 0x18]
push 0x10
and ecx, 0xffff
push eax
push ecx
call fcn.0044afa0
mov ecx, dword [esi + 0x28]
push 0xe
and ecx, 0x3fff
push eax
push ecx
call fcn.0044afa0
mov ecx, dword [esi + 0x38]
push 0x10
and ecx, 0xffff
push eax
push ecx
call fcn.0044afa0
mov ecx, dword [esi + 0x48]
push 0xe
and ecx, 0x3fff
push eax
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0x16]
push 6
push eax
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0x26]
add esp, 0x48
push 5
push eax
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0x36]
push 6
push eax
push ecx
call fcn.0044afa0
push 5
push eax
movsx eax, word [esi + 0x46]
push eax
call fcn.0044afa0
add esp, 0x24
mov ebp, dword [0x4e2ab8]
neg ebp
sbb ebp, ebp
and ebp, 0xffffffe0
add ebp, 0xc0
jmp 0x44af65
lea edi, [esi + 0x18]
mov ebp, 4
mov ecx, dword [edi]
push 0xc
push eax
push ecx
call fcn.0044afa0
add esp, 0xc
add edi, 0x10
dec ebp
jne 0x44aefd
add esi, 0x16
mov edi, 4
movsx ecx, word [esi]
push 4
push eax
push ecx
call fcn.0044afa0
add esp, 0xc
add esi, 0x10
dec edi
jne 0x44af19
jmp 0x44aee0
cmp si, 2
jne 0x44af60
mov esi, dword [esp + 0x194]
push 0x18
push eax
mov ecx, dword [esi + 4]
push ecx
call fcn.0044afa0
movsx ecx, word [esi + 0x10]
push 6
push eax
push ecx
call fcn.0044afa0
add esp, 0x18
mov ebp, 0x20
jmp 0x44af65
mov ebp, 2
xor eax, eax
test ebp, ebp
jle 0x44af8f
lea edi, [esp + 0x10]
mov edx, eax
mov ecx, eax
sar edx, 3
and ecx, 7
add edi, 2
lea esi, [edx + ebx]
mov dl, byte [edi - 2]
shl dl, cl
mov cl, byte [esi]
xor cl, dl
inc eax
cmp eax, ebp
mov byte [esi], cl
jl 0x44af6f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret