Function at 0x47d540
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x218
mov edi, dword [ebp + 0x1c]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
push edi
call fcn.0043aba0
add esp, 0x10
mov dword [ebp - 0x204], eax
xor eax, eax
mov edx, dword [ebp - 0x204]
test edx, edx
js 0x47d790
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.00495200
add esp, 0x10
test esi, esi
je 0x47d7e9
cmp ebx, 0xffffffff
je 0x47d7f0
sub esp, 0xc
lea eax, [ebp - 0x120]
push 0
push edi
push ebx
push esi
push eax
call fcn.004952d0
add esp, 0x20
test eax, eax
je 0x47d7a3
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x47d779
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x200], 1
lea edi, [ebp - 0x50]
mov eax, dword [ebp - 0x200]
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x200]
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, dword [ebp - 0x200]
shr eax, 8
mov byte [ebp - 0xe], al
mov al, byte [ebp - 0x200]
mov byte [ebp - 0xd], al
lea eax, [ebp - 0x120]
push ebx
push ebx
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495170
add esp, 0x10
test eax, eax
je 0x47d7a3
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.004952b0
add esp, 0x10
test eax, eax
je 0x47d7bf
push eax
lea eax, [ebp - 0x10]
push 4
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.004952b0
add esp, 0x10
test eax, eax
je 0x47d7bf
push eax
lea eax, [ebp - 0x1f0]
push 0
push edi
push eax
call fcn.00495230
add esp, 0x10
test eax, eax
je 0x47d7bf
mov ebx, dword [ebp - 0x208]
cmp ebx, dword [ebp - 0x204]
jg 0x47d798
sub esp, 0xc
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495120
add esp, 0xc
push ebx
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0x10
cmp dword [ebp + 0x18], 1
jle 0x47d75d
mov dword [ebp - 0x20c], 1
push eax
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495170
add esp, 0x10
test eax, eax
je 0x47d7a3
push eax
mov eax, dword [ebp - 0x204]
push eax
lea eax, [ebp - 0x1f0]
push edi
push eax
call fcn.004952b0
add esp, 0x10
test eax, eax
je 0x47d7bf
lea eax, [ebp - 0x1f0]
push ecx
push 0
push edi
push eax
call fcn.00495230
add esp, 0x10
test eax, eax
je 0x47d7bf
sub esp, 0xc
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495120
add esp, 0x10
test ebx, ebx
jle 0x47d741
xor edx, edx
mov al, byte [edx + edi]
xor byte [edx + esi], al
inc edx
cmp edx, ebx
jne 0x47d736
mov edx, dword [ebp - 0x20c]
mov eax, dword [ebp + 0x18]
inc edx
mov dword [ebp - 0x20c], edx
cmp dword [ebp - 0x20c], eax
jne 0x47d6c3
sub dword [ebp - 0x208], ebx
je 0x47d779
mov eax, dword [ebp - 0x200]
add esi, ebx
inc eax
mov dword [ebp - 0x200], eax
jmp 0x47d5da
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.00495120
mov eax, 1
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x204]
jmp 0x47d692
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.00495120
xor eax, eax
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.00495120
lea eax, [ebp - 0x1f0]
mov dword [esp], eax
call fcn.00495120
xor eax, eax
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor ebx, ebx
jmp 0x47d597
sub esp, 0xc
push esi
call sub.msvcrt.dll_strlen
add esp, 0x10
mov ebx, eax
jmp 0x47d597