Function at 0x47d760
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xb0
push ebx
push ebp
push esi
push edi
xor edx, edx
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x71]
mov byte [esp + 0x70], dl
mov dword [esp + 0x18], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x15
xor eax, eax
lea edi, [esp + 0x1c]
mov ebx, dword [esp + 0xd4]
rep stosd dword es:[edi], eax
mov ecx, 0x16
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, 0x14
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xe0]
cmp ebx, 0x3a
mov dword [esp + 0x14], edx
mov dword [eax], edx
jbe 0x47d7cf
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
add esp, 0xb0
ret
cmp ebx, edx
lea esi, [esp + 0x70]
je 0x47d7de
mov esi, dword [esp + 0xd0]
mov ebp, dword [esp + 0xc4]
push ebp
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x1c], ecx
call fcn.0047cd80
add esp, 4
test al, al
jne 0x47da5e
mov edx, dword [ebp]
lea eax, [esp + 0x26]
and dl, 0x10
push 2
neg dl
sbb edx, edx
push eax
and edx, 0x14
mov dword [esp + 0x24], 0x48
add edx, 0x22000c
mov byte [esp + 0x28], 7
mov dword [esp + 0x18], edx
call fcn.0047bd30
mov cl, byte [esp + 0xc8]
mov dl, byte [esp + 0xcc]
mov al, byte [esi]
mov byte [esp + 0x28], cl
mov cl, byte [esi + 1]
mov byte [esp + 0x29], dl
mov dl, byte [esi + 2]
mov byte [esp + 0x2b], cl
mov byte [esp + 0x2a], al
mov al, byte [esi + 3]
lea ecx, [esp + 0x2e]
push 2
push ecx
mov byte [esp + 0x34], dl
mov byte [esp + 0x35], al
call fcn.0047bd30
cmp ebx, 4
jbe 0x47d89a
lea ecx, [ebx - 4]
add esi, 4
mov edx, ecx
lea edi, [esp + 0x30]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, 0x39
mov ecx, edx
sub eax, ebx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x47d8a6
push eax
lea eax, [esp + ebx + 0x30]
push eax
jmp 0x47d8a1
lea ecx, [esp + 0x30]
push 0x35
push ecx
call fcn.0047bd30
cmp ebx, 4
jbe 0x47d8b4
sub bl, 4
mov byte [esp + 0x65], bl
jmp 0x47d8b9
mov byte [esp + 0x65], 0
mov dl, byte [esp + 0x2e]
mov al, byte [esp + 0x2f]
mov byte [esp + 0x66], dl
mov edx, dword [ebp + 0x30]
lea ecx, [esp + 0x58]
mov byte [esp + 0x67], al
push ecx
push edx
call fcn.0047c080
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x48]
mov bl, byte [esp + eax + 0x58]
xor bl, cl
mov byte [esp + eax + 0x58], bl
inc eax
cmp eax, 0x10
jb 0x47d8dc
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x48]
push edx
push eax
call fcn.0047c080
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x38]
mov bl, byte [esp + eax + 0x48]
xor bl, cl
mov byte [esp + eax + 0x48], bl
inc eax
cmp eax, 0x10
jb 0x47d903
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x38]
push edx
push eax
call fcn.0047c080
add esp, 8
xor eax, eax
mov cl, byte [esp + eax + 0x28]
mov bl, byte [esp + eax + 0x38]
xor bl, cl
mov byte [esp + eax + 0x38], bl
inc eax
cmp eax, 0x10
jb 0x47d92a
mov eax, dword [ebp + 0x30]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.0047c080
lea ecx, [esp + 0x28]
push ecx
call fcn.00486bc0
mov edi, dword [esp + 0xe4]
add esp, 0xc
lea edx, [esp + 0x14]
test edi, edi
push edx
jne 0x47d997
mov ecx, dword [esp + 0x14]
push 0
push 0
lea eax, [esp + 0x24]
push 0x58
push eax
push ecx
call fcn.0047c370
push ebp
mov esi, eax
call fcn.0047cde0
add esp, 0x1c
mov ax, si
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x74]
push 0x48
push eax
lea ecx, [esp + 0x24]
push 0x58
push ecx
push edx
call fcn.0047c370
mov ebx, eax
add esp, 0x18
test bl, bl
je 0x47d9cf
push ebp
call fcn.0047cde0
add esp, 4
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
cmp dword [esp + 0x14], 0x48
je 0x47d9ee
push ebp
call fcn.0047cde0
add esp, 4
mov ax, 0x1d0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov eax, dword [ebp + 0x30]
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.0047c490
add esp, 8
mov dword [esp + 0x10], eax
test al, al
jne 0x47da50
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd8]
mov eax, edi
mov dword [edx], esi
lea edi, [esp + 0x72]
xor edx, edx
sub edi, ebx
test esi, esi
jbe 0x47da39
mov cl, byte [edi + eax]
inc edx
mov byte [eax], cl
inc eax
dec esi
cmp edx, 4
jb 0x47da28
mov ecx, esi
lea esi, [esp + 0x78]
mov edx, ecx
lea edi, [ebx + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebp
call fcn.0047cde0
mov ax, word [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret