Function at 0x43ae10
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov eax, dword [0x4b8bd0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
lea eax, [ebp - 0x28]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
xor ebx, ebx
test eax, eax
jne 0x43ae5e
push ebx
push ebx
push str.OpenProcessToken_err
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044fef1
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x50]
push ecx
push str.SeDebugPrivilege
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
jne 0x43ae9d
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push str.LookupPrivilegeValue_err
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044fef1
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
push ebx
push ebx
push 0x10
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x28]
push ebx
push eax
mov dword [ebp - 0x14], 1
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
jne 0x43aef9
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
push str.AdjustTokenPrivileges_err
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044fef1
mov esp, ebp
pop ebp
ret 0x10
mov eax, section.ali213_1
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x43af01
sub eax, edx
mov edx, dword [eax + 0x77f001]
lea eax, [eax + 0x77f005]
mov dword [0x4ba7ec], edx
mov dword [0x4ba7f0], eax
call fcn.004026cb
cmp dword [0x4ba758], ebx
jne 0x43af54
push 0x10
push str.ali213_Trainer_Error_Info
push str.HTMLayout
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044fef1
mov esp, ebp
pop ebp
ret 0x10
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push edi
push ebx
mov dword [ebp - 0x80], 0x30
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], 0x402a63
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
call esi
lea ecx, [ebp - 0x80]
push ecx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], str.ali213_wc_0216
mov dword [ebp - 0x54], ebx
call dword [sym.imp.USER32.dll_RegisterClassExW]
mov edx, dword [ebp - 0x6c]
push ebx
push edx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push 1
push 1
push ebx
push ebx
push 0x80000000
push str.ali213_Trainer
push str.ali213_wc_0216
push 0x80000
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x4ba754], eax
cmp dword [0x4ba908], ebx
jne 0x43b0bd
push ebx
push 0x4ba904
push 0x49d7a4
push 0x800
push ebx
call esi
push eax
call sub.DINPUT8.dll_DirectInput8Create
mov esi, dword [sym.imp.USER32.dll_MessageBoxW]
test eax, eax
jns 0x43b00e
mov eax, dword [0x4ba754]
push 0x10
push 0x49835c
push 0x498320
push eax
call esi
mov eax, dword [0x4ba904]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push ebx
push 0x4ba908
push 0x49d644
push eax
call edx
test eax, eax
jns 0x43b03e
mov eax, dword [0x4ba754]
push 0x10
push 0x49835c
push 0x4982d4
push eax
call esi
mov eax, dword [0x4ba908]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0x49c43c
push eax
call edx
test eax, eax
jns 0x43b068
mov eax, dword [0x4ba754]
push 0x10
push 0x49835c
push 0x4982b8
push eax
call esi
mov eax, dword [0x4ba908]
mov edx, dword [0x4ba754]
mov ecx, dword [eax]
push 0xa
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
test eax, eax
jns 0x43b097
mov ecx, dword [0x4ba754]
push 0x10
push 0x49835c
push 0x49829c
push ecx
call esi
mov eax, dword [0x4ba908]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x1c]
call eax
test eax, eax
jns 0x43b0bd
mov ecx, dword [0x4ba754]
push 0x10
push 0x49835c
push 0x498280
push ecx
call esi
mov edx, dword [0x4ba7ec]
mov eax, dword [0x4ba7f0]
push ebx
push ebx
push str.uimain.html
push edx
push eax
call fcn.00402c16
add eax, 4
push eax
call fcn.004544b1
mov ecx, dword [0x4ba7ec]
mov edx, dword [0x4ba7f0]
add esp, 4
push ebx
mov esi, eax
push esi
push str.uimain.html
push ecx
push edx
call fcn.00402c16
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x43b103
push str._ui_
sub eax, edx
push eax
mov eax, dword [0x4ba754]
push esi
push eax
call dword [0x4ba760]
push esi
call fcn.004544a6
mov edx, dword [0x4ba754]
add esp, 4
lea ecx, [ebp - 0x2c]
push ecx
push edx
mov dword [ebp - 0x2c], ebx
call dword [0x4ba7ac]
mov eax, dword [ebp - 0x2c]
cmp eax, ebx
je 0x43b152
push 1
push ebx
push 0x402694
push eax
call dword [0x4ba7b8]
mov eax, dword [0x4ba768]
xor esi, esi
xor edi, edi
cmp eax, ebx
je 0x43b16a
mov ecx, dword [0x4ba754]
push ecx
call eax
mov esi, eax
mov eax, dword [0x4ba76c]
cmp eax, ebx
je 0x43b17f
mov edx, dword [0x4ba754]
push esi
push edx
call eax
mov edi, eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x24]
mov eax, dword [0x4ba754]
push ebx
push edi
push esi
sub ecx, edi
shr ecx, 1
sub edx, esi
push ecx
shr edx, 1
push edx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [0x4ba754]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.00401893
mov edx, dword [0x4ba754]
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0x401b3b
push 0x3e8
push 1
push edx
call esi
mov eax, dword [0x4ba754]
push 0x401b3b
push 0x64
push 2
push eax
call esi
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
cmp eax, 0x12
je 0x43b243
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [ecx]
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x48]
push ecx
call esi
test eax, eax
je 0x43b23d
lea edx, [ebp - 0x48]
push edx
call edi
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [ebp - 0x44], 0x12
jne 0x43b220
mov eax, dword [0x4ba908]
pop edi
pop esi
cmp eax, ebx
je 0x43b269
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
push eax
call edx
mov eax, dword [0x4ba908]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [0x4ba908], ebx
mov eax, dword [0x4ba904]
cmp eax, ebx
je 0x43b280
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [0x4ba904], ebx
mov eax, dword [ebp - 0x6c]
push eax
push str.ali213_wc_0216
call dword [sym.imp.USER32.dll_UnregisterClassW]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x40]
xor ecx, ebp
pop ebx
call fcn.0044fef1
mov esp, ebp
pop ebp
ret 0x10