Function at 0x405077
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push 0x4363c0
call fcn.0040c776
add esp, 4
mov dword [ebp - 0x2c], 0
jmp 0x40509c
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x1e
jae 0x405722
cmp dword [0x42e510], 0x2710
jbe 0x4050b7
jmp 0x405722
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
cmp dword [ecx + 0x42e532], 0
jg 0x4050c8
jmp 0x405093
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
cmp dword [edx + 0x42e52e], 0
jle 0x4050f4
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x42e52e]
sub ecx, 1
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov dword [edx + 0x42e52e], ecx
jmp 0x405116
mov eax, dword [ebp - 0x2c]
push eax
push str.Timer_queue_error:_d
push 0x7fb
push 0x42b334
mov ecx, dword [0x42cdac]
push ecx
call fcn.00402631
add esp, 0x14
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov eax, dword [edx + 0x42e536]
imul eax, eax, 0x1b
mov ecx, dword [0x42e514]
mov edx, dword [ecx + eax + 0xd]
sub edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x42e536]
imul ecx, ecx, 0x1b
mov eax, dword [0x42e514]
mov dword [eax + ecx + 0xd], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x42e536]
imul edx, edx, 0x1b
mov eax, dword [0x42e514]
cmp dword [eax + edx + 0xd], 0
jle 0x40516a
jmp 0x405093
mov ecx, 1
test ecx, ecx
je 0x40571d
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
cmp dword [edx + 0x42e532], 0
jg 0x40518b
jmp 0x40571d
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov ecx, dword [eax + 0x42e536]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov eax, dword [edx + 0x42e53a]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x1b
mov edx, dword [0x42e514]
add edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0xd], 0
jle 0x4051c8
jmp 0x40571d
cmp dword [0x42e510], 0x2710
jbe 0x4051f4
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x42e52e]
add edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x42e52e], edx
jmp 0x40571d
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov edx, dword [ecx + 0x42e532]
sub edx, 1
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x42e532], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
cmp dword [ecx + 0x42e532], 0
jg 0x405250
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x16
mov dword [edx + 0x42e536], 0xffffffff
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x16
mov dword [eax + 0x42e53a], 0xffffffff
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x16
mov dword [ecx + 0x42e532], 0
jmp 0x40528e
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 [0x42e514]
mov eax, dword [ebp - 0x3c]
mov dword [edx + ecx + 0x17], eax
mov ecx, dword [ebp - 0x3c]
imul ecx, ecx, 0x1b
mov edx, dword [0x42e514]
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 + 0x42e536], 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 0x4052d4
mov edx, dword [ebp - 0x24]
and edx, 0xff
cmp edx, 0xff
jne 0x405513
mov eax, dword [ebp - 0x18]
and eax, 0xff
cmp eax, 0xff
jne 0x405513
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.0040c822
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4053f0
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
shr dl, 2
and dl, 0x3f
and edx, 0xff
cmp edx, 4
jne 0x405352
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.00405733
add esp, 0x14
jmp 0x40516a
push str.TimerProc_get_memory_error
push 0x835
push 0x42b36c
mov edx, dword [0x42cdac]
push edx
call fcn.00402631
add esp, 0x10
mov eax, dword [0x430864]
sub eax, 1
cmp dword [0x42e518], eax
jge 0x4053cd
mov ecx, dword [0x42e520]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [0x42e524]
mov ecx, dword [ebp - 0x28]
mov dword [eax + edx*4], ecx
mov edx, dword [0x42e518]
add edx, 1
mov dword [0x42e518], edx
mov eax, dword [0x42e520]
add eax, 1
mov dword [0x42e520], eax
mov ecx, dword [0x42e520]
cmp ecx, dword [0x430864]
jb 0x4053cb
mov dword [0x42e520], 1
jmp 0x4053eb
push 0x42b388
push 0x83e
push 0x42b39c
mov edx, dword [0x42cdac]
push edx
call fcn.00402631
add esp, 0x10
jmp 0x40516a
push 0x30
push 0x42e7d8
mov eax, dword [ebp - 4]
push eax
call fcn.00411910
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 [0x42e510]
add ecx, 1
mov dword [0x42e510], 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 [0x436388]
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 0x4054d4
mov ecx, dword [ebp - 4]
push ecx
call fcn.0040c854
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 0x42b3e0
mov ecx, dword [0x42cdac]
push ecx
call fcn.00402631
add esp, 0x18
push 0
call fcn.00411f8c
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
shr al, 2
and al, 0x3f
and eax, 0xff
cmp eax, 4
jne 0x40550e
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.00405733
add esp, 0x14
jmp 0x405718
mov eax, dword [ebp - 0x24]
and eax, 0xff
cmp eax, 0xff
je 0x405617
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, 0x42e528
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 0x4055b3
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 0x405612
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x1b
mov ecx, dword [0x42e514]
mov edx, dword [ebp - 0x28]
mov dword [ecx + eax + 0x13], edx
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0x1b
mov ecx, dword [0x42e514]
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 0x405718
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
cmp ecx, 0xff
je 0x405718
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, 0x42e528
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 0x4056b9
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 0x405718
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x1b
mov edx, dword [0x42e514]
mov eax, dword [ebp - 0x28]
mov dword [edx + ecx + 0x13], eax
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0x1b
mov edx, dword [0x42e514]
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 0x40516a
jmp 0x405093
push 0x4363c0
call fcn.0040c785
add esp, 4
mov esp, ebp
pop ebp
ret