Function at 0x447720
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x3c], 0
test ebx, ebx
je 0x447954
lea edx, [ebp + 0x160]
xor eax, eax
mov dword [ebp + 0x160], 0
mov dword [edx + 0xc], 0
lea esi, [ebp + 0x164]
mov edi, esi
and edi, 0xfffffffc
mov ecx, edx
sub ecx, edi
add ecx, 0x10
shr ecx, 2
rep stosd dword es:[edi], eax
lea ecx, [ebp + 0x170]
mov dword [esp + 0x28], ecx
mov dword [ebp + 0x170], 0
mov dword [ebp + 0x17c], 0
lea edi, [ebp + 0x174]
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x10
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x74]
mov dword [ebp + 0x180], ecx
mov dword [ebp + 0x140], 0
mov dword [ebp + 0x144], 0
mov dword [ebp + 0x148], 0
mov dword [ebp + 0x14c], 0
cmp ebx, 0xc
je 0x447867
mov ecx, 2
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov word [edi], 0
mov byte [edi + 2], 0
mov esi, ebx
xor edi, edi
shld edi, esi, 3
shl esi, 3
mov eax, edi
mov byte [esp + 0x4b], al
bswap esi
mov dword [esp + 0x4c], esi
mov esi, ebx
cmp ebx, 0x10
jbe 0x447863
mov esi, 0x10
mov edi, edx
lea esi, [esi]
lea esi, [esi]
nop
mov eax, edi
mov ecx, dword [esp + 0x78]
lea edx, [edi + esi]
mov dword [esp + 0x7c], ebx
lea esi, [esi]
mov bl, byte [ecx]
xor byte [eax], bl
inc eax
inc ecx
cmp eax, edx
jne 0x447830
mov ebx, dword [esp + 0x7c]
mov ecx, edi
mov edx, edi
mov eax, ebp
call fcn.00447290
add dword [esp + 0x78], esi
sub ebx, esi
je 0x44796c
mov esi, ebx
cmp ebx, 0x10
jbe 0x447820
mov esi, 0x10
jmp 0x447820
mov edi, edx
jmp 0x447820
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [ebp + 0x160], eax
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
and esi, 0xfffffffc
mov edi, esi
mov eax, edx
sub eax, esi
mov esi, dword [esp + 0x78]
sub esi, eax
lea ecx, [eax + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov byte [ebp + 0x16f], 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x10], eax
lea eax, [ebp + 0x150]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x10
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.0043f7a0
mov esi, eax
test eax, eax
jne 0x447959
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x148], eax
mov dword [ebp + 0x14c], 0
test eax, eax
je 0x447959
mov ebx, eax
cmp eax, 0x10
jbe 0x447963
mov ebx, 0x10
mov edi, eax
lea esi, [esi]
lea esi, [esi]
nop
mov ecx, dword [esp + 0x28]
mov eax, ecx
mov edx, dword [esp + 0x80]
add ecx, ebx
mov dword [esp + 0x2c], ebx
lea esi, [esi]
lea esi, [esi]
mov bl, byte [edx]
xor byte [eax], bl
inc eax
inc edx
cmp eax, ecx
jne 0x447920
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, edx
mov eax, ebp
call fcn.00447290
add dword [esp + 0x80], ebx
sub edi, ebx
je 0x447959
mov ebx, edi
cmp edi, 0x10
jbe 0x447900
mov ebx, 0x10
jmp 0x447900
mov esi, 0xffffffec
mov eax, esi
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x84]
jmp 0x447900
mov edx, edi
nop
mov eax, dword [ebp + ebx + 0x160]
xor eax, dword [esp + ebx + 0x40]
mov dword [ebp + ebx + 0x160], eax
add ebx, 4
cmp ebx, 0x10
jne 0x447970
mov ecx, edx
mov dword [esp + 0x2c], edx
mov eax, ebp
call fcn.00447290
mov edx, dword [esp + 0x2c]
jmp 0x44789b