Function at 0x40bec7
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push 0x46d6a0
call fcn.00412de6
add esp, 4
mov dword [ebp - 0x2c], 0
jmp 0x40beec
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x1e
jae 0x40c572
cmp dword [0x467be8], 0x2710
jbe 0x40bf07
jmp 0x40c572
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
cmp dword [ecx + 0x467c0a], 0
jg 0x40bf18
jmp 0x40bee3
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
cmp dword [edx + 0x467c06], 0
jle 0x40bf44
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x467c06]
sub ecx, 1
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov dword [edx + 0x467c06], ecx
jmp 0x40bf66
mov eax, dword [ebp - 0x2c]
push eax
push str.Timer_queue_error:_d
push 0x7fb
push 0x459cac
mov ecx, dword [0x45b824]
push ecx
call fcn.00409481
add esp, 0x14
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov eax, dword [edx + 0x467c0e]
imul eax, eax, 0x1b
mov ecx, dword [0x467bec]
mov edx, dword [ecx + eax + 0xd]
sub edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x467c0e]
imul ecx, ecx, 0x1b
mov eax, dword [0x467bec]
mov dword [eax + ecx + 0xd], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x467c0e]
imul edx, edx, 0x1b
mov eax, dword [0x467bec]
cmp dword [eax + edx + 0xd], 0
jle 0x40bfba
jmp 0x40bee3
mov ecx, 1
test ecx, ecx
je 0x40c56d
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
cmp dword [edx + 0x467c0a], 0
jg 0x40bfdb
jmp 0x40c56d
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x467c0e]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov eax, dword [edx + 0x467c12]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x1b
mov edx, dword [0x467bec]
add edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0xd], 0
jle 0x40c018
jmp 0x40c56d
cmp dword [0x467be8], 0x2710
jbe 0x40c044
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x467c06]
add edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x467c06], edx
jmp 0x40c56d
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x467c0a]
sub edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x467c0a], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
cmp dword [ecx + 0x467c0a], 0
jg 0x40c0a0
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov dword [edx + 0x467c0e], 0xffffffff
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x467c12], 0xffffffff
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov dword [ecx + 0x467c0a], 0
jmp 0x40c0de
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x17]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0xc]
imul ecx, ecx, 0x1b
mov edx, dword [0x467bec]
mov eax, dword [ebp - 0x3c]
mov dword [edx + ecx + 0x17], eax
mov ecx, dword [ebp - 0x3c]
imul ecx, ecx, 0x1b
mov edx, dword [0x467bec]
mov eax, dword [ebp - 0xc]
mov dword [edx + ecx + 0x13], eax
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 0x467c0e], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x11]
mov byte [ebp - 0x24], dl
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x12]
mov byte [ebp - 0x18], cl
cmp dword [ebp - 0x2c], 0
je 0x40c124
mov edx, dword [ebp - 0x24]
and edx, 0xff
cmp edx, 0xff
jne 0x40c363
mov eax, dword [ebp - 0x18]
and eax, 0xff
cmp eax, 0xff
jne 0x40c363
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
or dl, 2
mov eax, dword [ebp - 0x30]
mov byte [eax], dl
mov ecx, dword [ebp - 0x30]
xor edx, edx
mov dx, word [ecx + 2]
mov dword [ebp - 0x20], edx
mov word [ebp - 8], 0x39
mov eax, dword [ebp - 8]
and eax, 0xffff
push eax
call fcn.00412e92
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40c240
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
shr dl, 2
and dl, 0x3f
and edx, 0xff
cmp edx, 4
jne 0x40c1a2
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 9]
push ecx
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 8]
push eax
mov cx, word [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 4]
push ecx
call fcn.0040c583
add esp, 0x14
jmp 0x40bfba
push str.TimerProc_get_memory_error
push 0x835
push 0x459ce4
mov edx, dword [0x45b824]
push edx
call fcn.00409481
add esp, 0x10
mov eax, dword [0x469f3c]
sub eax, 1
cmp dword [0x467bf0], eax
jge 0x40c21d
mov ecx, dword [0x467bf8]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [0x467bfc]
mov ecx, dword [ebp - 0x28]
mov dword [eax + edx*4], ecx
mov edx, dword [0x467bf0]
add edx, 1
mov dword [0x467bf0], edx
mov eax, dword [0x467bf8]
add eax, 1
mov dword [0x467bf8], eax
mov ecx, dword [0x467bf8]
cmp ecx, dword [0x469f3c]
jb 0x40c21b
mov dword [0x467bf8], 1
jmp 0x40c23b
push 0x459d00
push 0x83e
push 0x459d14
mov edx, dword [0x45b824]
push edx
call fcn.00409481
add esp, 0x10
jmp 0x40bfba
push 0x30
push 0x467eb0
mov eax, dword [ebp - 4]
push eax
call fcn.00420e40
add esp, 0xc
mov ecx, dword [ebp - 0x30]
xor edx, edx
mov dl, byte [ecx + 8]
add edx, 0x3e8
mov eax, dword [ebp - 4]
mov word [eax + 0x20], dx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 4]
add eax, 0x30
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x28]
mov dword [ecx + 5], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 8]
mov byte [eax + 4], dl
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 9]
mov dword [eax], edx
mov eax, dword [ebp - 4]
sub eax, 0x30
mov dword [ebp - 4], eax
mov ecx, dword [0x467be8]
add ecx, 1
mov dword [0x467be8], ecx
mov edx, dword [ebp - 8]
and edx, 0xffff
push edx
mov eax, dword [ebp - 4]
push eax
push 0xffe7
mov ecx, dword [ebp - 0x20]
imul ecx, ecx, 0x1ee
mov edx, dword [0x46d668]
mov eax, dword [edx + ecx + 0xb8]
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40c324
mov ecx, dword [ebp - 4]
push ecx
call fcn.00412ec4
add esp, 4
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x20]
push eax
push str.TimerProc_send_msg_to_pno:_d_error:_d
push 0x856
push 0x459d58
mov ecx, dword [0x45b824]
push ecx
call fcn.00409481
add esp, 0x18
push 0
call fcn.0042014d
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
shr al, 2
and al, 0x3f
and eax, 0xff
cmp eax, 4
jne 0x40c35e
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 9]
push edx
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 8]
push ecx
mov dx, word [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 4]
push edx
call fcn.0040c583
add esp, 0x14
jmp 0x40c568
mov eax, dword [ebp - 0x24]
and eax, 0xff
cmp eax, 0xff
je 0x40c467
mov ecx, dword [ebp - 0x30]
mov dl, byte [ebp - 0x24]
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x11], 0xff
mov ecx, dword [ebp - 0x24]
and ecx, 0xff
imul ecx, ecx, 0x16
add ecx, 0x467c00
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0xe]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0x12]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0xa]
add ecx, 1
mov edx, dword [ebp - 0x38]
mov dword [edx + 0xa], ecx
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0xa], 1
jg 0x40c403
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [ecx + 0x13], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x17], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 2]
mov dword [edx + 0xd], ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0xe], eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x28]
mov dword [ecx + 0x12], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 2]
mov dword [eax + 6], edx
jmp 0x40c462
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x1b
mov ecx, dword [0x467bec]
mov edx, dword [ebp - 0x28]
mov dword [ecx + eax + 0x13], edx
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0x1b
mov ecx, dword [0x467bec]
mov edx, dword [ebp - 0x28]
mov dword [ecx + eax + 0x17], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x13], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x17], eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
mov eax, dword [ecx + 2]
sub eax, dword [edx + 6]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0xd], eax
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x12], eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 2]
mov dword [ecx + 6], eax
jmp 0x40c568
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
cmp ecx, 0xff
je 0x40c568
mov edx, dword [ebp - 0x30]
mov al, byte [ebp - 0x18]
mov byte [edx + 1], al
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0x12], 0xff
mov edx, dword [ebp - 0x18]
and edx, 0xff
imul edx, edx, 0x16
add edx, 0x467c00
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0xe]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x12]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0xa]
add edx, 1
mov eax, dword [ebp - 0x38]
mov dword [eax + 0xa], edx
mov ecx, dword [ebp - 0x38]
cmp dword [ecx + 0xa], 1
jg 0x40c509
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x13], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [ecx + 0x17], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 2]
mov dword [eax + 0xd], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0xe], ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x12], eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 2]
mov dword [ecx + 6], eax
jmp 0x40c568
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x1b
mov edx, dword [0x467bec]
mov eax, dword [ebp - 0x28]
mov dword [edx + ecx + 0x13], eax
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0x1b
mov edx, dword [0x467bec]
mov eax, dword [ebp - 0x28]
mov dword [edx + ecx + 0x17], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1c]
mov dword [ecx + 0x13], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x17], ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov ecx, dword [edx + 2]
sub ecx, dword [eax + 6]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0xd], ecx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x12], ecx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 2]
mov dword [edx + 6], ecx
jmp 0x40bfba
jmp 0x40bee3
push 0x46d6a0
call fcn.00412df5
add esp, 4
mov esp, ebp
pop ebp
ret