Function at 0x4ae660
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, reloc.kernel32.dll_GetTempFileNameA
call fcn.004b8fc0
mov eax, dword [0x52bd60]
xor eax, esp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
push edi
mov edi, dword [esp + 0x84]
xor ebp, ebp
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ebp
call fcn.0047caf0
mov ebx, eax
add esp, 4
mov dword [esp + 0x18], ebx
test ebx, ebx
jl 0x4ae748
mov eax, dword [esp + 0x94]
cmp eax, 0xffffffff
jne 0x4ae720
mov dword [esp + 0x94], ebx
mov ecx, dword [edi + 0x10]
push ecx
call fcn.00466960
mov ebp, eax
dec ebp
push edi
and ebp, 7
call fcn.00461c50
mov ecx, ebp
mov edx, 0xff
shl edx, cl
mov cl, byte [esi]
add esp, 8
test cl, dl
je 0x4ae75d
push reloc.kernel32.dll_lstrlenW
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_GetDateFormatW
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
add esp, 0x14
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004b4591
add esp, 0x70
ret
cmp eax, 0xfffffffe
jne 0x4ae72e
mov dword [esp + 0x94], eax
jmp 0x4ae6ca
jge 0x4ae6ca
push reloc.kernel32.dll_DeleteFileW
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_GetNumberFormatW
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
add esp, 0x14
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004b4591
add esp, 0x70
ret
test ebp, ebp
jne 0x4ae763
inc esi
dec eax
mov edx, dword [esp + 0x94]
lea ecx, [ebx + edx + 2]
cmp eax, ecx
jge 0x4ae79e
push reloc.kernel32.dll_FreeEnvironmentStringsA
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_WritePrivateProfileSectionW
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004b4591
add esp, 0x70
ret
cmp byte [esi + eax - 1], 0xbc
je 0x4ae7d4
push reloc.kernel32.dll_ResetEvent
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_VirtualFreeEx
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
mov eax, dword [esp + 0x24]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004b4591
add esp, 0x70
ret
sub eax, ebx
dec eax
mov edi, eax
push reloc.kernel32.dll_CloseThreadpoolCleanupGroupMembers
lea edx, [esi + edi]
push str..crypto_rsa_rsa_pss.c
push edi
mov dword [esp + 0x20], edx
call fcn.00466300
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4ae813
push reloc.kernel32.dll_WaitForMultipleObjectsEx
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_SetEvent
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
add esp, 0x14
jmp 0x4ae9c2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
push edi
push ebx
call fcn.00471c20
add esp, 0x14
test eax, eax
jl 0x4ae9c2
test edi, edi
jle 0x4ae84b
mov eax, ebx
sub esi, ebx
mov ecx, edi
mov edi, edi
mov dl, byte [esi + eax]
xor byte [eax], dl
inc eax
sub ecx, 1
jne 0x4ae840
test ebp, ebp
je 0x4ae85f
mov ecx, 8
sub ecx, ebp
mov eax, 0xff
sar eax, cl
and byte [ebx], al
xor esi, esi
cmp byte [ebx], 0
jne 0x4ae87b
lea eax, [edi - 1]
lea esp, [esp]
cmp esi, eax
jge 0x4ae87b
inc esi
cmp byte [esi + ebx], 0
je 0x4ae870
mov cl, byte [esi + ebx]
inc esi
cmp cl, 1
je 0x4ae8a4
push reloc.kernel32.dll_GetVolumeNameForVolumeMountPointW
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_CreateSemaphoreExW
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
add esp, 0x14
jmp 0x4ae9c2
mov eax, dword [esp + 0x94]
test eax, eax
jl 0x4ae8d7
mov edx, edi
sub edx, esi
cmp edx, eax
je 0x4ae8d7
push reloc.kernel32.dll_ReleaseSemaphore
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_GetNumberFormatW
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
add esp, 0x14
jmp 0x4ae9c2
lea eax, [esp + 0x24]
push eax
call fcn.00485dd0
mov ecx, dword [esp + 0x20]
push 0
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.00485e20
push 8
lea eax, [esp + 0x38]
push 0x509810
push eax
call fcn.00485fd0
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
push ebp
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00485fd0
add esp, 0x28
sub edi, esi
je 0x4ae92f
push edi
add esi, ebx
lea eax, [esp + 0x28]
push esi
push eax
call fcn.00485fd0
add esp, 0xc
push 0
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00486110
lea eax, [esp + 0x30]
push eax
call fcn.00486060
mov esi, dword [esp + 0x24]
add esp, 0x10
mov eax, ebp
lea edi, [esp + 0x3c]
cmp ebp, 4
jb 0x4ae974
lea esp, [esp]
mov ecx, dword [edi]
cmp ecx, dword [esi]
jne 0x4ae998
sub eax, 4
add esi, 4
add edi, 4
cmp eax, 4
jae 0x4ae960
test eax, eax
je 0x4ae9ba
mov dl, byte [esi]
cmp dl, byte [edi]
jne 0x4ae998
cmp eax, 1
jbe 0x4ae9ba
mov cl, byte [esi + 1]
cmp cl, byte [edi + 1]
jne 0x4ae998
cmp eax, 2
jbe 0x4ae9ba
mov dl, byte [esi + 2]
cmp dl, byte [edi + 2]
je 0x4ae9ba
push 0x9e
push str..crypto_rsa_rsa_pss.c
push reloc.kernel32.dll_LocalAlloc
push reloc.kernel32.dll_GetFileAttributesA
push 4
call fcn.00463a30
add esp, 0x14
mov dword [esp + 0x10], 0
jmp 0x4ae9c2
mov dword [esp + 0x10], 1
test ebx, ebx
je 0x4ae709
push ebx
call fcn.004664a0
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b4591
add esp, 0x70
ret