Function at 0x40381e
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [esp], str.User32.dll
call sub.kernel32.dll_LoadLibraryA
sub esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x403a26
mov dword [esp + 4], str.PeekMessageW
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403664], eax
mov dword [esp + 4], str.MessageBoxA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403668], eax
mov dword [esp + 4], str.GetAsyncKeyState
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x40366c], eax
mov dword [esp + 4], str.MessageBeep
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403670], eax
mov dword [esp + 4], str.wsprintfA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403674], eax
mov dword [esp + 4], str.PeekMessageW
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403678], eax
mov dword [esp + 4], str.CallWindowProcA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x40367c], eax
mov dword [esp + 4], str.FindWindowA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403680], eax
mov dword [esp + 4], str.GetWindowLongA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403684], eax
mov dword [esp + 4], str.SetWindowLongA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403688], eax
mov dword [esp + 4], str.SetTimer
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x40368c], eax
mov dword [esp + 4], str.KillTimer
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403690], eax
mov dword [esp + 4], str.DefWindowProcA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403694], eax
mov dword [esp + 4], str.RegisterClassExA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403698], eax
mov dword [esp + 4], str.ShowWindow
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x40369c], eax
mov dword [esp + 4], str.UpdateWindow
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036a0], eax
mov dword [esp + 4], str.CreateWindowExA
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036a4], eax
mov dword [esp + 4], str.GetWindowThreadProcessId
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036d4], eax
mov dword [esp], str.Kernel32.dll
call sub.kernel32.dll_LoadLibraryA
sub esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x403c28
mov dword [esp + 4], str.Sleep
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036a8], eax
mov dword [esp + 4], str.CreateThread
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036ac], eax
mov dword [esp + 4], str.GetCurrentProcess
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036b0], eax
mov dword [esp + 4], str.ReadProcessMemory
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036b4], eax
mov dword [esp + 4], str.WriteProcessMemory
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036b8], eax
mov dword [esp + 4], str.VirtualProtectEx
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036bc], eax
mov dword [esp + 4], str.CloseHandle
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036c0], eax
mov dword [esp + 4], str.GetPrivateProfileIntA
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036c4], eax
mov dword [esp + 4], str.GetModuleHandleA
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036c8], eax
mov dword [esp + 4], str.GetLastError
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036cc], eax
mov dword [esp + 4], str.GetCurrentThreadId
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036d0], eax
mov dword [esp + 4], str.WideCharToMultiByte
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036d8], eax
mov dword [esp + 4], str.OpenThread
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036e4], eax
mov dword [esp + 4], str.SuspendThread
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036e8], eax
mov dword [esp + 4], str.ResumeThread
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036ec], eax
mov dword [esp + 4], str.EnterCriticalSection
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036f0], eax
mov dword [esp + 4], str.LeaveCriticalSection
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036f4], eax
mov dword [esp + 4], str.InitializeCriticalSection
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036f8], eax
mov dword [esp], str.msvcrt.dll
call sub.kernel32.dll_LoadLibraryA
sub esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x403cac
mov dword [esp + 4], str.memcpy
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036dc], eax
mov dword [esp + 4], str.strcmp
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036e0], eax
mov dword [esp + 4], 0x4082bc
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x4036fc], eax
mov dword [esp + 4], str.sqrt
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sub.kernel32.dll_GetProcAddress
sub esp, 8
mov dword [0x403700], eax
leave
ret