Function at 0x40ecd7
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push 0x447d40
call fcn.00415bf6
add esp, 4
mov dword [ebp - 0x2c], 0
jmp 0x40ecfc
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x1e
jae 0x40f382
cmp dword [0x443e68], 0x2710
jbe 0x40ed17
jmp 0x40f382
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
cmp dword [ecx + 0x443e8a], 0
jg 0x40ed28
jmp 0x40ecf3
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
cmp dword [edx + 0x443e86], 0
jle 0x40ed54
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x443e86]
sub ecx, 1
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov dword [edx + 0x443e86], ecx
jmp 0x40ed76
mov eax, dword [ebp - 0x2c]
push eax
push str.Timer_queue_error:_d
push 0x7fb
push 0x43619c
mov ecx, dword [0x437d14]
push ecx
call fcn.0040c291
add esp, 0x14
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov eax, dword [edx + 0x443e8e]
imul eax, eax, 0x1b
mov ecx, dword [0x443e6c]
mov edx, dword [ecx + eax + 0xd]
sub edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x443e8e]
imul ecx, ecx, 0x1b
mov eax, dword [0x443e6c]
mov dword [eax + ecx + 0xd], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x443e8e]
imul edx, edx, 0x1b
mov eax, dword [0x443e6c]
cmp dword [eax + edx + 0xd], 0
jle 0x40edca
jmp 0x40ecf3
mov ecx, 1
test ecx, ecx
je 0x40f37d
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
cmp dword [edx + 0x443e8a], 0
jg 0x40edeb
jmp 0x40f37d
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x443e8e]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov eax, dword [edx + 0x443e92]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x1b
mov edx, dword [0x443e6c]
add edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0xd], 0
jle 0x40ee28
jmp 0x40f37d
cmp dword [0x443e68], 0x2710
jbe 0x40ee54
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x443e86]
add edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x443e86], edx
jmp 0x40f37d
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x443e8a]
sub edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x443e8a], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
cmp dword [ecx + 0x443e8a], 0
jg 0x40eeb0
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov dword [edx + 0x443e8e], 0xffffffff
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x443e92], 0xffffffff
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov dword [ecx + 0x443e8a], 0
jmp 0x40eeee
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 [0x443e6c]
mov eax, dword [ebp - 0x3c]
mov dword [edx + ecx + 0x17], eax
mov ecx, dword [ebp - 0x3c]
imul ecx, ecx, 0x1b
mov edx, dword [0x443e6c]
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 + 0x443e8e], 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 0x40ef34
mov edx, dword [ebp - 0x24]
and edx, 0xff
cmp edx, 0xff
jne 0x40f173
mov eax, dword [ebp - 0x18]
and eax, 0xff
cmp eax, 0xff
jne 0x40f173
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.00415ca2
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40f050
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
shr dl, 2
and dl, 0x3f
and edx, 0xff
cmp edx, 4
jne 0x40efb2
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.0040f393
add esp, 0x14
jmp 0x40edca
push str.TimerProc_get_memory_error
push 0x835
push 0x4361d4
mov edx, dword [0x437d14]
push edx
call fcn.0040c291
add esp, 0x10
mov eax, dword [0x4461bc]
sub eax, 1
cmp dword [0x443e70], eax
jge 0x40f02d
mov ecx, dword [0x443e78]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [0x443e7c]
mov ecx, dword [ebp - 0x28]
mov dword [eax + edx*4], ecx
mov edx, dword [0x443e70]
add edx, 1
mov dword [0x443e70], edx
mov eax, dword [0x443e78]
add eax, 1
mov dword [0x443e78], eax
mov ecx, dword [0x443e78]
cmp ecx, dword [0x4461bc]
jb 0x40f02b
mov dword [0x443e78], 1
jmp 0x40f04b
push 0x4361f0
push 0x83e
push 0x436204
mov edx, dword [0x437d14]
push edx
call fcn.0040c291
add esp, 0x10
jmp 0x40edca
push 0x30
push 0x444130
mov eax, dword [ebp - 4]
push eax
call fcn.0041ad80
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 [0x443e68]
add ecx, 1
mov dword [0x443e68], 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 [0x447d08]
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 0x40f134
mov ecx, dword [ebp - 4]
push ecx
call fcn.00415cd4
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 0x436248
mov ecx, dword [0x437d14]
push ecx
call fcn.0040c291
add esp, 0x18
push 0
call fcn.0041bfac
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
shr al, 2
and al, 0x3f
and eax, 0xff
cmp eax, 4
jne 0x40f16e
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.0040f393
add esp, 0x14
jmp 0x40f378
mov eax, dword [ebp - 0x24]
and eax, 0xff
cmp eax, 0xff
je 0x40f277
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, 0x443e80
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 0x40f213
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 0x40f272
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x1b
mov ecx, dword [0x443e6c]
mov edx, dword [ebp - 0x28]
mov dword [ecx + eax + 0x13], edx
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0x1b
mov ecx, dword [0x443e6c]
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 0x40f378
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
cmp ecx, 0xff
je 0x40f378
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, 0x443e80
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 0x40f319
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 0x40f378
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x1b
mov edx, dword [0x443e6c]
mov eax, dword [ebp - 0x28]
mov dword [edx + ecx + 0x13], eax
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0x1b
mov edx, dword [0x443e6c]
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 0x40edca
jmp 0x40ecf3
push 0x447d40
call fcn.00415c05
add esp, 4
mov esp, ebp
pop ebp
ret