Function at 0x471da0
Capabilities:
Encode data using xor

Disassembly:
mov eax, reloc.kernel32.dll_GetStringTypeA
call fcn.004b8fc0
mov eax, dword [0x52bd60]
xor eax, esp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x34]
push ebp
mov ebp, dword [esp + 0x30]
dec ebp
lea edx, [ebp - 0x29]
cmp ebx, edx
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
jle 0x471e05
push reloc.kernel32.dll_GetShortPathNameA
push str..crypto_rsa_rsa_oaep.c
push reloc.kernel32.dll_CreateWaitableTimerA
push reloc.kernel32.dll_CreateEventW
push 4
call fcn.00463a30
add esp, 0x14
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004b4591
add esp, 0x20
ret
cmp ebp, 0x29
jge 0x471e33
push reloc.kernel32.dll_GetProcessIoCounters
push str..crypto_rsa_rsa_oaep.c
push reloc.kernel32.dll_ResetEvent
push reloc.kernel32.dll_CreateEventW
push 4
call fcn.00463a30
add esp, 0x14
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004b4591
add esp, 0x20
ret
push esi
mov byte [edi], 0
lea esi, [edi + 1]
push 0
add edi, 0x15
call fcn.0047ef00
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x50]
push 0
push edi
push eax
push ecx
call fcn.004862a0
mov edx, ebp
sub edx, ebx
sub edx, 0x29
push edx
lea eax, [edi + 0x14]
push 0
push eax
call fcn.004b9070
mov edx, dword [esp + 0x34]
mov ecx, edi
sub ecx, ebx
lea eax, [ecx + ebp]
push ebx
mov byte [eax - 0x15], 1
push edx
add eax, 0xffffffec
push eax
call fcn.004b88c0
push reloc.kernel32.dll_SetConsoleCursorPosition
push esi
call fcn.00469630
add esp, 0x38
test eax, eax
jle 0x471ec5
push reloc.kernel32.dll_AcquireSRWLockShared
add ebp, 0xffffffec
push str..crypto_rsa_rsa_oaep.c
push ebp
call fcn.00466300
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x471eda
push reloc.kernel32.dll_GetFinalPathNameByHandleW
push str..crypto_rsa_rsa_oaep.c
push reloc.kernel32.dll_SetEvent
push reloc.kernel32.dll_CreateEventW
push 4
call fcn.00463a30
add esp, 0x14
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004b4591
add esp, 0x20
ret
call fcn.0047ef00
push eax
push reloc.kernel32.dll_SetConsoleCursorPosition
push esi
push ebp
push ebx
call fcn.00471c20
add esp, 0x14
test eax, eax
jl 0x471ec5
test ebp, ebp
jle 0x471f0b
mov ecx, ebx
mov eax, edi
sub ecx, edi
mov edx, ebp
lea ecx, [ecx]
mov bl, byte [ecx + eax]
xor byte [eax], bl
inc eax
sub edx, 1
jne 0x471f00
call fcn.0047ef00
push eax
push ebp
push edi
lea eax, [esp + 0x24]
push reloc.kernel32.dll_SetConsoleCursorPosition
push eax
call fcn.00471c20
add esp, 0x14
test eax, eax
jl 0x471ec5
lea ecx, [esp + 0x18]
lea edi, [esp + 0x19]
lea ebp, [esp + 0x1a]
lea edx, [esp + 0x1b]
sub ecx, esi
sub edi, esi
sub ebp, esi
sub edx, esi
lea ebx, [esp + 0x1c]
sub ebx, esi
mov eax, esi
mov dword [esp + 0x10], ebx
mov esi, 4
nop
movzx ebx, byte [ecx + eax]
xor byte [eax], bl
movzx ebx, byte [edi + eax]
xor byte [eax + 1], bl
movzx ebx, byte [eax + ebp]
xor byte [eax + 2], bl
movzx ebx, byte [edx + eax]
xor byte [eax + 3], bl
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx + eax]
xor byte [eax + 4], bl
add eax, 5
sub esi, 1
jne 0x471f50
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004664a0
mov ecx, dword [esp + 0x30]
add esp, 4
lea eax, [esi + 1]
pop esi
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b4591
add esp, 0x20
ret