Function at 0x47d060
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
push esi
call fcn.00486bc0
mov ebp, dword [esp + 0x1c]
add esp, 4
test ebp, ebp
je 0x47d2c4
mov al, byte [esi + 1]
and al, 0xf
cmp al, 0xf
je 0x47d08f
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 1]
cmp eax, 3
ja case.default.0x47d09f
jmp dword [eax*4 + 0x47d350]
xor eax, eax
mov dl, byte [eax + esi + 8]
mov byte [eax + esi], dl
inc eax
cmp eax, 0x40
jb 0x47d0a8
push esi
push ebp
call fcn.0047c080
add esp, 8
xor eax, eax
mov cl, byte [eax + esi + 0x10]
mov dl, byte [eax + esi]
xor dl, cl
mov byte [eax + esi], dl
inc eax
cmp eax, 0x10
jb 0x47d0c1
lea edi, [esi + 0x10]
push edi
push ebp
call fcn.0047c080
mov ecx, 0xfffffff0
add esp, 8
mov eax, edi
sub ecx, esi
mov dl, byte [eax + 0x10]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
lea edx, [ecx + eax]
cmp edx, 0x10
jb 0x47d0e9
lea edi, [esi + 0x20]
push edi
push ebp
call fcn.0047c080
mov ecx, 0xffffffe0
add esp, 8
mov eax, edi
sub ecx, esi
mov dl, byte [eax + 0x10]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
lea edx, [ecx + eax]
cmp edx, 0x10
jb 0x47d111
lea eax, [esi + 0x30]
push eax
push ebp
call fcn.0047c080
mov al, byte [esi + 6]
mov cl, byte [esi + 0x3e]
add esp, 8
cmp al, cl
jne case.0x47d300.4
mov cl, byte [esi + 7]
mov dl, byte [esi + 0x3f]
cmp cl, dl
jne case.0x47d300.4
mov dl, byte [esp + 0x20]
mov cl, byte [esi + 0x3c]
cmp dl, cl
jne case.0x47d300.4
and al, 3
cmp al, 3
je 0x47d2c4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
xor eax, eax
mov cl, byte [eax + esi + 8]
mov byte [eax + esi], cl
inc eax
cmp eax, 0x30
jb 0x47d170
push esi
push ebp
call fcn.0047c080
add esp, 8
xor eax, eax
mov dl, byte [eax + esi + 0x10]
mov bl, byte [eax + esi]
xor bl, dl
mov byte [eax + esi], bl
inc eax
cmp eax, 0x10
jb 0x47d189
lea edi, [esi + 0x10]
push edi
push ebp
call fcn.0047c080
mov ecx, 0xfffffff0
add esp, 8
mov eax, edi
sub ecx, esi
mov dl, byte [eax + 0x10]
mov bl, byte [eax]
xor bl, dl
mov byte [eax], bl
inc eax
lea edx, [eax + ecx]
cmp edx, 0x10
jb 0x47d1b1
lea eax, [esi + 0x20]
push eax
push ebp
call fcn.0047c080
mov al, byte [esi + 6]
mov cl, byte [esi + 0x2e]
add esp, 8
cmp al, cl
jne case.0x47d300.4
mov cl, byte [esi + 7]
mov dl, byte [esi + 0x2f]
cmp cl, dl
jne case.0x47d300.4
mov dl, byte [esp + 0x20]
mov cl, byte [esi + 0x2c]
cmp dl, cl
jne case.0x47d300.4
and al, 3
cmp al, 2
je 0x47d2c4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
xor eax, eax
mov cl, byte [eax + esi + 8]
mov byte [eax + esi], cl
inc eax
cmp eax, 0x20
jb 0x47d210
push esi
push ebp
call fcn.0047c080
add esp, 8
xor eax, eax
mov dl, byte [eax + esi + 0x10]
mov bl, byte [eax + esi]
xor bl, dl
mov byte [eax + esi], bl
inc eax
cmp eax, 0x10
jb 0x47d229
lea eax, [esi + 0x10]
push eax
push ebp
call fcn.0047c080
mov al, byte [esi + 6]
mov cl, byte [esi + 0x1e]
add esp, 8
cmp al, cl
jne case.0x47d300.4
mov cl, byte [esi + 7]
mov dl, byte [esi + 0x1f]
cmp cl, dl
jne case.0x47d300.4
mov dl, byte [esp + 0x20]
mov cl, byte [esi + 0x1c]
cmp dl, cl
jne case.0x47d300.4
and al, 3
cmp al, 1
je 0x47d2c4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
xor eax, eax
mov cl, byte [eax + esi + 8]
mov byte [eax + esi], cl
inc eax
cmp eax, 0x10
jb 0x47d278
push esi
push ebp
call fcn.0047c080
mov al, byte [esi + 6]
mov cl, byte [esi + 0xe]
add esp, 8
cmp al, cl
jne case.0x47d300.4
mov dl, byte [esi + 7]
mov cl, byte [esi + 0xf]
cmp dl, cl
jne case.0x47d300.4
mov cl, byte [esp + 0x20]
mov dl, byte [esi + 0xc]
cmp cl, dl
jne case.0x47d300.4
test al, 3
je 0x47d2c4
pop edi
pop esi
pop ebp
mov ax, 0x1d02
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d10
pop ebx
ret
mov cl, byte [esi + 4]
mov al, byte [esi + 5]
xor edx, edx
mov dl, byte [esi + 1]
mov edi, edx
add edx, ecx
mov cl, byte [esi + 3]
add eax, edx
mov dl, byte [esi + 2]
add eax, ecx
add edx, eax
xor eax, eax
mov al, byte [esi]
and edx, 0xff
xor edx, eax
je 0x47d2f6
pop edi
pop esi
pop ebp
mov ax, 0x1d0d
pop ebx
ret
mov eax, edi
and eax, 0xf
cmp eax, 7
ja case.default.0x47d300
jmp dword [eax*4 + 0x47d360]
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d41
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d04
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d0a
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d15
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d42
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1d3f
pop ebx
ret
pop edi
pop esi
pop ebp
mov ax, 0x1dff
pop ebx
ret