Function at 0x47d600
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.0043ac60
add esp, 0x10
mov dword [ebp - 0x204], eax
xor eax, eax
mov edx, dword [ebp - 0x204]
test edx, edx
js 0x47d850
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.004952c0
add esp, 0x10
test esi, esi
je 0x47d8a9
cmp ebx, 0xffffffff
je 0x47d8b0
sub esp, 0xc
lea eax, [ebp - 0x120]
push 0
push edi
push ebx
push esi
push eax
call fcn.00495390
add esp, 0x20
test eax, eax
je 0x47d863
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x47d839
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.00495230
add esp, 0x10
test eax, eax
je 0x47d863
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495370
add esp, 0x10
test eax, eax
je 0x47d87f
push eax
lea eax, [ebp - 0x10]
push 4
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495370
add esp, 0x10
test eax, eax
je 0x47d87f
push eax
lea eax, [ebp - 0x1f0]
push 0
push edi
push eax
call fcn.004952f0
add esp, 0x10
test eax, eax
je 0x47d87f
mov ebx, dword [ebp - 0x208]
cmp ebx, dword [ebp - 0x204]
jg 0x47d858
sub esp, 0xc
lea eax, [ebp - 0x1f0]
push eax
call fcn.004951e0
add esp, 0xc
push ebx
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0x10
cmp dword [ebp + 0x18], 1
jle 0x47d81d
mov dword [ebp - 0x20c], 1
push eax
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00495230
add esp, 0x10
test eax, eax
je 0x47d863
push eax
mov eax, dword [ebp - 0x204]
push eax
lea eax, [ebp - 0x1f0]
push edi
push eax
call fcn.00495370
add esp, 0x10
test eax, eax
je 0x47d87f
lea eax, [ebp - 0x1f0]
push ecx
push 0
push edi
push eax
call fcn.004952f0
add esp, 0x10
test eax, eax
je 0x47d87f
sub esp, 0xc
lea eax, [ebp - 0x1f0]
push eax
call fcn.004951e0
add esp, 0x10
test ebx, ebx
jle 0x47d801
xor edx, edx
mov al, byte [edx + edi]
xor byte [edx + esi], al
inc edx
cmp edx, ebx
jne 0x47d7f6
mov edx, dword [ebp - 0x20c]
mov eax, dword [ebp + 0x18]
inc edx
mov dword [ebp - 0x20c], edx
cmp dword [ebp - 0x20c], eax
jne 0x47d783
sub dword [ebp - 0x208], ebx
je 0x47d839
mov eax, dword [ebp - 0x200]
add esi, ebx
inc eax
mov dword [ebp - 0x200], eax
jmp 0x47d69a
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.004951e0
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 0x47d752
sub esp, 0xc
lea eax, [ebp - 0x120]
push eax
call fcn.004951e0
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.004951e0
lea eax, [ebp - 0x1f0]
mov dword [esp], eax
call fcn.004951e0
xor eax, eax
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor ebx, ebx
jmp 0x47d657
sub esp, 0xc
push esi
call sub.msvcrt.dll_strlen
add esp, 0x10
mov ebx, eax
jmp 0x47d657