Function at 0x4020e8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov esi, str.In_the_interim_between_those_two_positions__she_studied_public_health_at_Witswatersrand_Advanced_Technikon_in_1971__and_during_her_time_there__she_won_an_award_from_the_South_African_Institute_of_Public_Health_for_obtaining_the_highest_marks_in_the_country
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
mov edi, dword [ebp + 0x10]
add esp, 0x2c
lea eax, [edi + 1]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
push esi
mov dword [ebp - 4], ebx
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
mov byte [ebx + edi], 0
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
add esp, 0x40
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
add esp, 0x18
xor ebx, ebx
test edi, edi
je 0x4022af
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 4]
mov dword [ebp - 8], eax
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
mov eax, dword [ebp - 4]
add esp, 0x2c
push dword [ebp + 0xc]
lea edi, [ebx + eax]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
xor edx, edx
mov eax, ebx
div ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
push esi
mov al, byte [edx + eax]
xor al, byte [ecx + edi]
mov byte [edi], al
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
add esp, 0x2c
inc ebx
cmp ebx, dword [ebp + 0x10]
jb 0x4021f6
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
add esp, 0x40
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
push esi
call sub.msvcrt.dll_strlen
mov eax, dword [ebp - 4]
add esp, 0x18
pop edi
pop esi
pop ebx
leave
ret