Function at 0x40ba30
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0x4462f4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x45f4cc], eax
test eax, eax
jne 0x40ba5e
push str.Module:_kernel32.dll__Function:_GetModuleHandle_Failed
call fcn.0040d967
push 0
call fcn.0040d967
pop ecx
pop ecx
xor eax, eax
pop ebp
ret
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x449430
push eax
call edi
mov dword [0x45f4d8], eax
test eax, eax
jne 0x40ba90
push str.Function:_VirtualAlloc__kernel32.DLL:_GetProcAddress_Failed
call fcn.0040d967
push 0
call fcn.0040d967
pop ecx
pop ecx
xor eax, eax
jmp 0x40bf98
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push esi
mov esi, dword [ebp + 8]
push 0x451570
push 1
push 0x451541
push eax
push esi
mov dword [0x4514b8], eax
mov dword [0x4514f4], eax
call ebx
test eax, eax
jne 0x40bad8
push dword [0x4514f4]
push str.ReadProcessMemory_Error_VirtualAlloc_address:__p
call fcn.0040d967
push 0
call fcn.0040d967
add esp, 0xc
jmp 0x40bf94
push 0x4494b0
push dword [0x45f4cc]
call edi
mov dword [0x45f4dc], eax
test eax, eax
jne 0x40bb05
push str.Function:_CreateFileA__kernel32.dll:_GetProcAddress_Failed
call fcn.0040d967
push 0
call fcn.0040d967
pop ecx
jmp 0x40bf93
push 0x451570
push 1
push 0x451542
push eax
push esi
mov dword [0x4514bc], eax
mov dword [0x4514f8], eax
call ebx
test eax, eax
jne 0x40bb30
push dword [0x4514f8]
push str.ReadProcessMemory_Error_CreateFileA_address:__p
jmp 0x40bac4
push 0x449528
push dword [0x45f4cc]
call edi
mov dword [0x45f4e0], eax
test eax, eax
jne 0x40bb4d
push str.Function:_WriteProcessMemory__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x451543
push eax
push esi
mov dword [0x4514c0], eax
mov dword [0x4514fc], eax
call ebx
test eax, eax
jne 0x40bb7b
push dword [0x4514fc]
push str.ReadProcessMemory_Error_WriteProcessMemory_address:__p
jmp 0x40bac4
push 0x4495bc
push dword [0x45f4cc]
call edi
mov dword [0x45f4e4], eax
test eax, eax
jne 0x40bb9b
push str.Function:_GetModuleHandleA__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x451544
push eax
push esi
mov dword [0x4514c4], eax
mov dword [0x451500], eax
call ebx
test eax, eax
jne 0x40bbc9
push dword [0x451500]
push str.ReadProcessMemory_Error_GetModuleHandleA_address:__p
jmp 0x40bac4
push 0x449648
push str.kernelbase.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call edi
mov ecx, eax
mov dword [0x45f4e8], ecx
test ecx, ecx
jne 0x40bc0b
push 0x449648
push dword [0x45f4cc]
call edi
mov ecx, eax
mov dword [0x45f4e8], ecx
test ecx, ecx
jne 0x40bc0b
push str.Function:_WaitForDebugEvent__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
mov eax, dword [0x44f0bc]
push 0
push 0
mov dword [0x4514c8], ecx
mov dword [0x451578], eax
mov dword [0x4515d4], ecx
mov dword [0x45db54], 1
call fcn.0040a72b
pop ecx
pop ecx
mov ecx, dword [0x4508cc]
test ecx, ecx
jne 0x40bc4a
push str.WaitForDebugEvent_RETN_search_string_not_found_
jmp 0x40bf8e
sub ecx, dword [0x4503c4]
mov eax, dword [0x4514c8]
push 0x451570
push 1
add eax, ecx
mov dword [0x451584], ecx
push 0x451545
push eax
push esi
mov dword [0x4515ac], eax
mov dword [0x451504], eax
call ebx
test eax, eax
jne 0x40bc8b
push dword [0x451504]
push str.ReadProcessMemory_Error_WaitForDebugEvent_address:__p
jmp 0x40bac4
push 0x451574
push 1
push 0x44f0a9
push dword [0x451504]
push esi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x40bcb8
push dword [0x451504]
push str.WriteProcessMemory_Error_WaitForDebugEvent_address:__p
jmp 0x40bac4
push str.CreateThread
push dword [0x45f4cc]
call edi
mov dword [0x45f4ec], eax
test eax, eax
jne 0x40bcd8
push str.Function:_CreateThread__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x451546
push eax
push esi
mov dword [0x4514cc], eax
mov dword [0x451508], eax
call ebx
test eax, eax
jne 0x40bd06
push dword [0x451508]
push str.ReadProcessMemory_Error_CreateThread_address:__p
jmp 0x40bac4
push str.OutputDebugStringA
push dword [0x45f4cc]
call edi
mov dword [0x45f4f0], eax
test eax, eax
jne 0x40bd26
push str.Function:_OutputDebugStringA__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x45154d
push eax
push esi
mov dword [0x4514d0], eax
mov dword [0x451524], eax
call ebx
test eax, eax
jne 0x40bd54
push dword [0x451524]
push str.ReadProcessMemory_Error_OutputDebugStringA_address:__p
jmp 0x40bac4
push 0x451574
push 1
push 0x44f0b1
push dword [0x451524]
push esi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x40bd81
push dword [0x451524]
push str.WriteProcessMemory_Error_OutputDebugStringA_address:__p
jmp 0x40bac4
cmp dword [0x45db1c], 0
je 0x40be05
push str.OpenMutexA
push dword [0x45f4cc]
call edi
mov dword [0x45f4f4], eax
test eax, eax
jne 0x40bdaa
push str.Function:_OpenMutexA__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x45154a
push eax
push esi
mov dword [0x4514d4], eax
mov dword [0x451518], eax
call ebx
test eax, eax
jne 0x40bdd8
push dword [0x451518]
push str.ReadProcessMemory_Error_OpenMutexA_address:__p
jmp 0x40bac4
push 0x451574
push 1
push 0x44f0ae
push dword [0x451518]
push esi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x40be05
push dword [0x451518]
push str.WriteProcessMemory_Error_OpenMutexA_address:__p
jmp 0x40bac4
push str.CreateFileMappingA
push dword [0x45f4cc]
call edi
mov dword [0x45f504], eax
test eax, eax
jne 0x40be25
push str.Function:_CreateFileMappingA__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x45154f
push eax
push esi
mov dword [0x4514e4], eax
mov dword [0x45152c], eax
call ebx
test eax, eax
jne 0x40be53
push dword [0x45152c]
push str.ReadProcessMemory_Error_CreateFileMappingA_address:__p
jmp 0x40bac4
push 0x4499c4
push dword [0x45f4cc]
call edi
mov dword [0x45f508], eax
test eax, eax
jne 0x40be73
push str.Function:_GetModuleFileNameA__kernel32.dll:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x451550
push eax
push esi
mov dword [0x4514e8], eax
mov dword [0x451530], eax
call ebx
test eax, eax
jne 0x40bea1
push dword [0x451530]
push str.ReadProcessMemory_Error_GetModuleFileNameA_address:__p
jmp 0x40bac4
cmp dword [0x45db58], 0
je 0x40bf11
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x45f384], eax
test eax, eax
jne 0x40bec8
push str.Module:_ntdll.dll__Function:_GetModuleHandle_Failed
jmp 0x40baf3
push str.LdrLoadDll
push eax
call edi
mov dword [0x45f4f8], eax
test eax, eax
jne 0x40bee3
push str.Function:_LdrLoadDll__NTDLL.DLL:_GetProcAddress_Failed
jmp 0x40baf3
push 0x451570
push 1
push 0x45154b
push eax
push esi
mov dword [0x4514d8], eax
mov dword [0x45151c], eax
call ebx
test eax, eax
jne 0x40bf78
push dword [0x45151c]
push str.ReadProcessMemory_Error_LdrLoadDll_address:__p
jmp 0x40bac4
push esi
call fcn.0040507a
pop ecx
test eax, eax
jne 0x40bf23
call fcn.0040b648
jmp 0x40bf94
mov ecx, dword [0x45f408]
test ecx, ecx
jne 0x40bf40
push str.No_.pdata_section_found_in_PE_header_
call fcn.0040d967
mov dword [esp], str.This_doesnt_appear_to_be_an_Armadillo_protected_program_
jmp 0x40bf8e
mov eax, dword [0x45f3a0]
test eax, eax
jne 0x40bf50
push str.No_.text_section_found_in_PE_header_
jmp 0x40bf8e
mov edx, dword [0x45f41c]
mov dword [0x451490], eax
mov eax, dword [0x45f3a4]
mov dword [0x451494], eax
cmp edx, dword [0x45f3b0]
jb 0x40bf7d
mov eax, dword [0x45f40c]
add eax, ecx
cmp edx, eax
ja 0x40bf7d
xor eax, eax
inc eax
jmp 0x40bf96
push str.This_doesnt_appear_to_be_an_Armadillo_protected_program_
call fcn.0040d967
mov dword [esp], str.The_EP_is_not_within_the_range_of_PE_section_.text1
call fcn.0040d967
pop ecx
xor eax, eax
pop esi
pop ebx
pop edi
pop ebp
ret