Function at 0x450d54
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x898
push ebx
push esi
push edi
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x684], 0x11112222
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x44c], 0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 4], 0
cmp dword [ebp + 8], 0x18
jne 0x450dff
mov dword [ebp - 0x474], 1
jmp 0x450e10
cmp dword [ebp + 8], 0x19
jne 0x450e10
mov dword [ebp - 4], 1
lea edi, [ebp - 0x30]
xor eax, eax
mov ecx, 9
rep stosd dword es:[edi], eax
mov dword [ebp - 0x30], 0x24
mov dword [ebp - 0x2c], 0x10003
mov dword [ebp - 0x28], 8
lea eax, [ebp - 0x44c]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0x10004
mov dword [ebp - 0x18], 4
lea eax, [ebp - 0x448]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0x43a
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
je 0x451733
lea edi, [ebp - 0x438]
xor eax, eax
mov ecx, 0x100
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x10]
push eax
push 0x47f5b8
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x438]
push eax
call fcn.00453060
add esp, 4
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0x104
jae 0x450ee3
mov eax, dword [ebp - 0x450]
lea eax, [eax*2 + 4]
mov dword [ebp - 0x680], eax
push 4
push 0x1000
push 0x200
push 0
mov eax, dword [ebp - 0x464]
push eax
call dword [0x462070]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x451721
mov dword [ebp - 0x688], 0
lea eax, [ebp - 0x888]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [ebp - 0x688], 0
lea eax, [ebp - 0x688]
push eax
push 0x200
lea eax, [ebp - 0x888]
push eax
push 0x47f5c0
push 0x47f5cc
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov dword [ebp - 0x88c], eax
cmp dword [ebp - 0x88c], 0
jne 0x450fcb
mov dword [ebp - 0x688], 0
lea eax, [ebp - 0x688]
push eax
push 0x200
lea eax, [ebp - 0x888]
push eax
push 0x47f5d8
push 0x47f5ec
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov dword [ebp - 0x88c], eax
mov dword [ebp - 0x45c], 0
cmp dword [ebp - 0x88c], 0
je 0x4510c7
cmp dword [0x462208], 0
je 0x450ffe
mov dword [ebp - 0x45c], 5
jmp 0x4510c7
cmp dword [0x462204], 0
je 0x45101a
mov dword [ebp - 0x45c], 3
jmp 0x4510c7
xor eax, eax
mov al, byte [ebp - 0x888]
cmp eax, 0xe8
jne 0x451056
cmp dword [0x45e03c], 0
je 0x451047
push str._r_nI32read_failed__previous_3
call fcn.00452380
add esp, 4
mov dword [ebp - 0x45c], 1
jmp 0x4510c7
xor eax, eax
mov al, byte [ebp - 0x888]
cmp eax, 0xe9
jne 0x451092
cmp dword [0x45e03c], 0
je 0x451083
push str._r_nI32read_failed__previous_2
call fcn.00452380
add esp, 4
mov dword [ebp - 0x45c], 1
jmp 0x4510c7
xor eax, eax
mov al, byte [ebp - 0x888]
cmp eax, 0x68
jne 0x4510c7
cmp dword [0x45e03c], 0
je 0x4510bd
push str._r_nI32read_failed__previous_1
call fcn.00452380
add esp, 4
mov dword [ebp - 0x45c], 1
cmp dword [ebp - 0x88c], 0
je 0x451707
push 0x40
push 0x1000
push 0x200
push 0
mov eax, dword [ebp - 0x464]
push eax
call dword [0x462070]
mov dword [ebp - 0x458], eax
cmp dword [ebp - 0x458], 0
je 0x451702
cmp dword [ebp - 0x45c], 0
je 0x4515af
mov eax, dword [ebp + 8]
push eax
push str._r_nPNF_I32___d_
call fcn.00452380
add esp, 8
call fcn.00450b0d
test eax, eax
jne 0x451134
mov dword [ebp + 8], 0
mov eax, dword [ebp + 8]
push eax
push str._r_nPNF_I32A___d_
call fcn.00452380
add esp, 8
cmp dword [0x464fc0], 0xffffffff
jne 0x451157
call fcn.00450b85
cmp dword [0x464fc0], 0
je 0x45116b
mov dword [ebp + 8], 0
call fcn.00450bbc
mov dword [ebp - 0x46c], eax
cmp dword [ebp - 0x46c], 0
je 0x451199
mov dword [0x464fc4], 1
mov dword [ebp + 8], 1
jmp 0x4511a3
mov dword [0x464fc4], 0
cmp dword [ebp + 8], 0
je 0x451292
call fcn.00450a0b
test eax, eax
je 0x451270
cmp dword [ebp - 4], 0
je 0x4511f0
push 0x47f678
push 0x47f68c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
mov dword [ebp - 0x444], 1
jmp 0x45126b
cmp dword [ebp - 0x474], 0
je 0x45121f
push 0x47f698
push 0x47f6a4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
jmp 0x45126b
cmp dword [0x462214], 0
je 0x45124e
push str.NtTestAlert
push 0x47f6bc
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
jmp 0x45126b
push str.NtContinue
push 0x47f6d4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
jmp 0x45128d
push str.NtQuerySystemInformation
push 0x47f6fc
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
jmp 0x4512b9
push str.NtCreateSemaphore
push 0x47f71c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
mov dword [ebp - 0x444], 1
cmp dword [ebp - 0x890], 0
je 0x4515aa
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub dword [ebp - 0x680], 4
mov ax, word [ebp - 0x680]
mov word [ebp - 0x348], ax
add dword [ebp - 0x680], 2
mov ax, word [ebp - 0x680]
mov word [ebp - 0x346], ax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x898], 0
mov edi, dword [ebp + 0x10]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x894], eax
dec dword [ebp - 0x894]
cmp dword [ebp - 0x894], 0
je 0x45137e
mov eax, dword [ebp - 0x894]
mov ecx, dword [ebp + 0x10]
movsx eax, byte [eax + ecx]
cmp eax, 0x5c
jne 0x451373
mov eax, dword [ebp - 0x894]
inc eax
mov dword [ebp - 0x898], eax
mov dword [ebp - 0x894], 0
jmp 0x451379
dec dword [ebp - 0x894]
jmp 0x451334
mov eax, dword [ebp - 0x898]
add eax, dword [ebp + 0x10]
mov edi, eax
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov edx, edi
lea edi, [ebp - 0x2a8]
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00450b0d
test eax, eax
je 0x451489
mov word [ebp - 0x2e4], 0x18
mov word [ebp - 0x2e2], 0x1a
mov dword [ebp - 0x478], 0x164
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x478]
mov dword [ebp - 0x2e0], eax
push str.ADVAPI32.DLL
lea eax, [ebp - 0x2d4]
push eax
call fcn.004530c0
add esp, 8
mov word [ebp - 0x294], 0x10
mov word [ebp - 0x292], 0x12
mov dword [ebp - 0x478], 0x1b4
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x478]
mov dword [ebp - 0x290], eax
push str.CPTLWA32
lea eax, [ebp - 0x284]
push eax
call fcn.004530c0
add esp, 8
mov eax, dword [ebp - 0x450]
add eax, eax
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x43c]
mov word [ebp - 0x258], ax
add dword [ebp - 0x43c], 2
mov eax, dword [ebp - 0x43c]
mov word [ebp - 0x256], ax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x478]
mov dword [ebp - 0x250], eax
lea eax, [ebp - 8]
push eax
push 0x200
lea eax, [ebp - 0x438]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x444], 0
jne 0x4514c7
call fcn.00450b0d
test eax, eax
jne 0x4514fb
lea eax, [ebp - 0x468]
push eax
mov eax, dword [ebp - 0x458]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x890]
push eax
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x464]
push eax
call fcn.0044fd08
add esp, 0x18
jmp 0x45152a
lea eax, [ebp - 0x468]
push eax
mov eax, dword [ebp - 0x458]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x890]
push eax
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x464]
push eax
call fcn.0045026d
add esp, 0x18
cmp dword [ebp - 0x468], 0
je 0x4515aa
lea eax, [ebp - 8]
push eax
push 0x200
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x458]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x67c], 0xe9
mov eax, dword [ebp - 0x458]
sub eax, dword [ebp - 0x890]
sub eax, 5
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x67b], eax
lea eax, [ebp - 8]
push eax
push 5
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x890]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0xc], eax
jmp 0x451702
push str.LdrLoadDll
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x890], eax
cmp dword [ebp - 0x890], 0
je 0x451702
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub dword [ebp - 0x680], 2
mov ax, word [ebp - 0x680]
mov word [ebp - 0x24e], ax
add dword [ebp - 0x680], 2
mov ax, word [ebp - 0x680]
mov word [ebp - 0x24c], ax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x24a], eax
lea eax, [ebp - 8]
push eax
push 0x200
lea eax, [ebp - 0x438]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x468]
push eax
mov eax, dword [ebp - 0x458]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x890]
push eax
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x464]
push eax
call fcn.00450737
add esp, 0x18
cmp dword [ebp - 0x468], 0
je 0x4516f8
lea eax, [ebp - 8]
push eax
push 0x200
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x458]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x67c], 0xe9
mov eax, dword [ebp - 0x458]
sub eax, dword [ebp - 0x890]
sub eax, 5
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x67b], eax
lea eax, [ebp - 8]
push eax
push 5
lea eax, [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x890]
push eax
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0xc], eax
jmp 0x451702
mov dword [0x462204], 0x79
jmp 0x451721
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.0044f132
add esp, 8
mov dword [ebp - 0x684], 0x64006400
mov eax, dword [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x45173d
mov dword [ebp - 0x684], 0xff11
mov eax, dword [ebp - 0x684]
jmp 0x451748
pop edi
pop esi
pop ebx
leave
ret