Function at 0x402980
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51f3e8
mov eax, dword fs:[0]
push eax
sub esp, 0x2a8
mov eax, dword [0x5673f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0040efc2
mov eax, dword [esi + 0xb8]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push eax
mov eax, dword [esi + 0x20]
push 1
push 0x80
push eax
call edi
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x20]
push eax
xor ebx, ebx
push ebx
push 0x80
push ecx
call edi
call fcn.00416271
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x48]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4029f2
sub eax, edx
jne 0x402a03
push esi
call fcn.00402810
call fcn.00416271
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x48]
mov ecx, str._dontcopy
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a33
test dl, dl
je 0x402a2f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a33
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a13
xor eax, eax
jmp 0x402a38
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x402a4a
push ebx
push ebx
push 0x549514
mov ecx, esi
call fcn.00409a7b
push esi
call fcn.00402750
xor eax, eax
push 0x104
lea edi, [esi + 0xc0]
mov ecx, 0x96
rep stosd dword es:[edi], eax
mov byte [esi + 0x438], al
mov dword [esi + 0x32c], ebx
mov byte [esi + 0x444], al
mov edx, dword [0x54954c]
mov eax, dword [0x549550]
lea ecx, [ebp - 0x218]
push ecx
push 0xffffffffffffffff
mov dword [ebp - 0x18], edx
lea edx, [ebp - 0x18]
push edx
push ebx
push ebx
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x2b0]
push eax
push str.kernel32.dll
push 1
mov dword [ebp - 0x2b0], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExA]
cmp dword [ebp - 0x2b0], ebx
jne 0x402ac2
xor eax, eax
jmp 0x402ad1
lea ecx, [ebp - 0x2b0]
push ecx
call fcn.004025d0
add esp, 4
push 0x100
lea edx, [esi + 0x445]
push ebx
push edx
mov dword [0x56ee24], eax
call fcn.004fc760
push 0x100
lea eax, [esi + 0x330]
push ebx
push eax
call fcn.004fc760
mov ecx, dword [esi + 0x20]
add esp, 0x18
push ebx
push 0x3e8
push 1
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.00404e40
lea edx, [esi + 0x43c]
push edx
push ebx
push esi
push 0x4023d0
push ebx
push ebx
call fcn.004fb6da
lea eax, [esi + 0x440]
push eax
push ebx
push esi
push 0x4025b0
push ebx
push ebx
call fcn.004fb6da
add esp, 0x30
push 0x1a
push str.__TotalInjector_v.1.92__r_n
lea ecx, [esi + 0x430]
call fcn.00402040
push ebx
mov ecx, esi
call fcn.00409d1f
lea ecx, [ebp - 0x2ac]
push ecx
mov dword [ebp - 0x2ac], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push 0x25
push str._r_n_
lea ecx, [esi + 0x430]
call fcn.00406420
push 0x13c
call fcn.00406674
mov edi, eax
add esp, 4
mov dword [ebp - 0x2b4], edi
mov dword [ebp - 4], ebx
cmp edi, ebx
je 0x402bd2
push ebx
push 0x81
mov ecx, edi
call fcn.00406a11
mov byte [ebp - 4], 1
lea ecx, [edi + 0xc0]
mov dword [edi], vtable.ProcList.0
call fcn.0040965b
mov dword [edi + 0xc0], vtable.CListCtrl.0
mov ecx, edi
xor ebx, ebx
jmp 0x402bd4
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x434], ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x160]
push ebx
push 0x81
call eax
mov ecx, dword [esi + 0x434]
push ebx
call fcn.0040e188
mov ecx, dword [esi + 0x434]
mov dword [ecx + 0xb8], esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004fa984
mov esp, ebp
pop ebp
ret