Function at 0x416410
Capabilities:
Access peb ldr_data
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45b215
mov eax, dword fs:[0]
push eax
sub esp, 0x508
push ebx
push esi
push edi
mov eax, dword [0x46f1b0]
xor eax, esp
push eax
lea eax, [esp + 0x518]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
xor edi, edi
mov dword [eax], edi
mov edx, dword [0x471864]
mov eax, dword [edx + 0xc]
mov ecx, 0x471864
call eax
add eax, 0x10
mov dword [esp + 0x94], eax
mov dword [esp + 0x520], edi
mov edx, dword [0x471864]
mov eax, dword [edx + 0xc]
mov ecx, 0x471864
call eax
add eax, 0x10
mov dword [esp + 0x90], eax
push 2
push 0x882
push 0x45edac
mov byte [esp + 0x52c], 1
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x84]
call fcn.00402830
mov byte [esp + 0x520], 2
mov edx, dword [0x471864]
mov eax, dword [edx + 0xc]
mov ecx, 0x471864
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0x520], 3
mov edx, dword [0x471864]
mov eax, dword [edx + 0xc]
mov ecx, 0x471864
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x520], 4
mov edx, dword [0x471864]
mov eax, dword [edx + 0xc]
mov ecx, 0x471864
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
push 2
push 0x882
push 0x45edac
mov byte [esp + 0x52c], 5
call fcn.00433609
add esp, 0xc
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x34]
mov esi, eax
call fcn.00402d80
mov edx, dword [esp + 0x30]
cmp dword [edx - 0xc], edi
jne 0x416564
cmp esi, edi
jne 0x41654a
xor eax, eax
jmp 0x416559
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416550
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00402b60
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00409fa0
add esp, 8
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x524], 6
call fcn.00402d80
mov byte [esp + 0x520], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4165b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x38], edi
mov byte [esp + 0x520], 8
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4165e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp + 8]
xor esi, esi
push 0x45eb60
lea ecx, [esp + 0x24]
mov dword [ebx + 0x88], esi
call fcn.00402830
push esi
lea ecx, [esp + 0x24]
push ecx
lea edi, [esp + 0x38]
mov byte [esp + 0x528], 9
call fcn.0043413f
mov byte [ebx + 0x44], al
mov byte [esp + 0x520], 8
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41663d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebx + 0x44], 0
je 0x416700
lea ecx, [esp + 0x34]
call fcn.00402b00
mov edi, dword [ebx + 0x30]
mov dword [esp + 0x38], esi
dec edi
mov dword [esp + 0x20], edi
test edi, edi
jl 0x416700
cmp edi, dword [ebx + 0x30]
jae 0x4166f6
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ecx + edi*4]
lea eax, [ecx + edi*4]
lea eax, [esp + 0x30]
mov dword [esp + 0x18], edx
test eax, eax
je 0x416657
mov edx, dword [esp + 0x34]
mov esi, dword [edx - 0xc]
test esi, esi
jle 0x4166dd
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x4166f6
mov bl, byte [eax]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
lea edi, [esi + 1]
sub eax, edi
or eax, ecx
jge 0x4166bb
push edi
lea ecx, [esp + 0x38]
call fcn.00402fc0
mov edx, dword [esp + 0x34]
mov byte [esi + edx], bl
test edi, edi
jl 0x4166f6
mov eax, dword [esp + 0x34]
cmp edi, dword [eax - 8]
jg 0x4166f6
mov ebx, dword [ebp + 8]
mov dword [eax - 0xc], edi
mov ecx, dword [esp + 0x34]
mov byte [edi + ecx], 0
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00402a40
jmp 0x416657
push 0x80070057
call fcn.00401000
lea ecx, [esp + 0x30]
call fcn.00434094
mov eax, dword [ebx + 0x48]
lea esi, [ebx + 0x48]
xor edi, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x54], esi
cmp eax, edi
je 0x416728
push eax
call fcn.0043eef1
add esp, 4
mov dword [esi], edi
push 2
push 0x882
push 0x45edac
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x8c]
call fcn.00402830
push 1
push 0x2aac
push 0x45e8a0
mov byte [esp + 0x52c], 0xa
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x80]
call fcn.00402830
mov byte [esp + 0x520], 0xb
mov eax, dword [0x471864]
mov edx, dword [eax + 0xc]
mov ecx, 0x471864
call edx
add eax, 0x10
mov dword [esp + 0x60], eax
mov byte [esp + 0x520], 0xc
mov eax, dword [0x471864]
mov edx, dword [eax + 0xc]
mov ecx, 0x471864
call edx
add eax, 0x10
mov dword [esp + 0x64], eax
mov byte [esp + 0x520], 0xd
mov eax, dword [0x471864]
mov edx, dword [eax + 0xc]
mov ecx, 0x471864
call edx
add eax, 0x10
mov dword [esp + 0x6c], eax
push 2
push 0x882
push 0x45edac
mov byte [esp + 0x52c], 0xe
call fcn.00433609
mov esi, eax
add esp, 0xc
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x64]
call fcn.00402d80
mov ecx, dword [esp + 0x60]
cmp dword [ecx - 0xc], edi
jne 0x416834
cmp esi, edi
jne 0x41681a
xor eax, eax
jmp 0x416829
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416820
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x68]
call fcn.00402b60
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x84]
call fcn.00409fa0
add esp, 8
push eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x524], 0xf
call fcn.00402d80
mov byte [esp + 0x520], 0xe
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416887
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x68], edi
mov byte [esp + 0x520], 0x11
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4168b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x12
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4168de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x38], 0
setge al
test al, al
je 0x416a1c
mov edi, edi
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x38]
push ecx
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00409dc0
mov byte [esp + 0x520], 0x13
mov eax, dword [eax]
mov esi, dword [esp + 0x3c]
lea ebx, [eax - 0x10]
add esi, 0xfffffff0
cmp ebx, esi
je 0x4169b6
cmp dword [esi + 0xc], 0
jl 0x4169a8
mov ecx, dword [ebx]
cmp ecx, dword [esi]
jne 0x4169a8
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [ebx + 0xc], 0
lea ecx, [ebx + 0xc]
jl 0x416952
cmp eax, dword [ebx]
jne 0x416952
mov edi, ebx
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x416986
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x416bb6
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [ebx + 4]
inc eax
push eax
add ebx, 0x10
push ebx
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0043f4e5
add esp, 0x10
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x41699f
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0x10
mov dword [esp + 0x3c], edi
jmp 0x4169b6
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.00402b60
mov byte [esp + 0x520], 0x12
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4169de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._t__r_n
lea eax, [esp + 0x40]
call fcn.0041f6d0
mov ebx, eax
mov eax, str._t__r_n
call fcn.004282b0
mov ecx, dword [esp + 0x38]
test ecx, ecx
setg al
test al, al
je 0x416a0f
mov edx, dword [esp + 0x3c]
cmp dword [edx - 0xc], 0
jg 0x416a40
test ecx, ecx
setge al
test al, al
jne 0x4168f0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x416bc5
cmp byte [eax + 0x61], 0
jne 0x416bc5
mov edi, dword [ebp + 8]
inc dword [edi + 0x88]
jmp 0x416bc8
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x34]
call fcn.00434287
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x24]
push ecx
lea ebx, [esi + 0x2c]
mov byte [esp + 0x524], 0x14
call fcn.0041b470
mov ebx, eax
test ebx, ebx
jne 0x416a80
push esi
lea ecx, [esp + 0x28]
call fcn.004178c0
mov ebx, eax
test ebx, ebx
je 0x416b95
mov eax, dword [esp + 0x54]
mov edi, dword [eax + 4]
cmp edi, dword [eax + 8]
jb 0x416aa0
mov esi, dword [esp + 0x54]
lea eax, [edi + 1]
call fcn.00415d00
test al, al
je 0x416bbb
mov eax, dword [esp + 0x54]
mov edx, dword [eax]
lea edi, [edx + edi*4]
test edi, edi
je 0x416aaf
mov dword [edi], ebx
mov esi, 1
add dword [eax + 4], esi
cmp byte [ebx + 0x61], 0
mov dword [esp + 0x20], ebx
je 0x416aca
mov eax, dword [ebp + 8]
add dword [eax + 0x88], esi
push ebx
call fcn.00413560
test al, al
je 0x416b25
cmp byte [ebx + 0x1c], 0
jne 0x416b1b
mov eax, dword [ebx + 0x6c]
xor cl, cl
sub eax, esi
je 0x416b05
sub eax, esi
jne 0x416b16
lea eax, [ebx + 0x80]
push eax
call fcn.004342e2
lea ecx, [ebx + 0x70]
push ecx
mov edi, eax
call fcn.004342e2
cmp edi, eax
sete cl
jmp 0x416b16
lea edx, [ebx + 0x80]
push edx
call fcn.004342e2
test eax, eax
setg cl
test cl, cl
sete al
test al, al
je 0x416b25
add dword [esp + 0x2c], esi
jmp 0x416b95
mov edx, dword [esp + 0x64]
mov esi, dword [edx - 0xc]
test esi, esi
jle 0x416b85
mov edi, dword [esp + 0x60]
cmp dword [edi - 0xc], 0
jl 0x4166f6
mov al, byte [edi]
mov byte [esp + 0x17], al
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
lea edi, [esi + 1]
sub eax, edi
or eax, ecx
jge 0x416b66
push edi
lea ecx, [esp + 0x68]
call fcn.00402fc0
mov edx, dword [esp + 0x64]
mov cl, byte [esp + 0x17]
mov byte [esi + edx], cl
test edi, edi
jl 0x4166f6
cmp edi, dword [edx - 8]
jg 0x4166f6
mov dword [edx - 0xc], edi
mov byte [edi + edx], 0
mov ebx, dword [ebx]
mov eax, dword [ebx - 0xc]
push eax
push ebx
lea ecx, [esp + 0x6c]
call fcn.00402a40
mov byte [esp + 0x520], 0x12
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4168d2
call fcn.004031c0
push 0x8007000e
call fcn.00401000
mov edi, dword [ebp + 8]
cmp dword [esp + 0x2c], 0
mov ebx, dword [edi + 0x4c]
mov byte [esp + 0x1f], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], 0
jle 0x4174cb
push 5
push 0x28be
push 0x45f82c
mov byte [esp + 0x23], 0
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
call fcn.00402830
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x1b]
mov byte [esp + 0x524], 0x15
call fcn.00429031
mov esi, eax
mov byte [esp + 0x524], 0x12
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416c4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x416c57
mov dword [edi + 0x40], esi
lea ecx, [esp + 0x9c]
push ecx
call fcn.004032d0
lea eax, [esp + 0xdc]
lea edx, [esp + 0x9c]
push eax
mov byte [esp + 0x524], 0x16
mov dword [esp + 0x78], edx
call fcn.00403af0
mov byte [esp + 0x520], 0x17
mov dword [esp + 0x24], 0
test ebx, ebx
jbe 0x417348
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx + 4]
jae 0x4166f6
mov ecx, dword [ecx]
mov edi, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
lea edx, [esp + 0x98]
push edx
mov dword [esp + 0x30], edi
call fcn.0042a4fe
add esp, 4
lea ecx, [edi + 0x64]
push eax
mov byte [esp + 0x524], 0x18
call fcn.00402d80
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416d09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x68]
cmp dword [ecx - 0xc], 0
mov esi, dword [ecx - 0x10]
lea eax, [ecx - 0x10]
je 0x416d5f
cmp dword [eax + 0xc], 0
lea edx, [eax + 0xc]
jge 0x416d3a
cmp dword [ecx - 8], 0
jl 0x4166f6
mov dword [ecx - 0xc], 0
mov ecx, dword [edi + 0x68]
mov byte [ecx], 0
jmp 0x416d5f
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416d50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
add eax, 0x10
mov dword [edi + 0x68], eax
push edi
call fcn.00413560
test al, al
je 0x4172cb
mov esi, dword [esp + 0x2c]
cmp byte [esi + 0x1c], 0
jne 0x416db7
mov eax, dword [esi + 0x6c]
xor cl, cl
sub eax, 1
je 0x416da4
sub eax, 1
jne 0x416db2
lea ecx, [esi + 0x80]
push ecx
call fcn.004342e2
add esi, 0x70
push esi
mov edi, eax
call fcn.004342e2
cmp edi, eax
sete cl
jmp 0x416db2
sub esi, 0xffffff80
push esi
call fcn.004342e2
test eax, eax
setg cl
test cl, cl
sete al
test al, al
je 0x4172cb
push 0x11
push 0xacb
push 0x460fac
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x88]
call fcn.00402830
mov byte [esp + 0x520], 0x19
mov edx, dword [0x4729fc]
test edx, edx
jne 0x416e28
push 0x9c
call fcn.004402d1
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x520], 0x1a
test eax, eax
je 0x416e17
push eax
call fcn.0042868c
jmp 0x416e19
xor eax, eax
mov byte [esp + 0x520], 0x19
mov dword [0x4729fc], eax
mov edx, eax
mov edi, dword [esp + 0x2c]
add edi, 0x20
push edi
lea ecx, [esp + 0x88]
call fcn.00428d4c
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x416e67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1f], 0
jne 0x416e7d
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetEvent]
mov byte [esp + 0x1f], 1
call fcn.0041b260
cmp dword [esp + 0x20], 0
mov esi, eax
jne 0x417018
test esi, esi
je 0x417018
lea edx, [esp + 0x78]
push edx
mov dword [esp + 0x2c], 0
call fcn.00429d2d
lea eax, [esp + 0x2c]
add esp, 4
push eax
lea eax, [esp + 0x7c]
call fcn.00433aea
add esp, 4
test al, al
jne 0x416ec5
xor ebx, ebx
jmp 0x416ec9
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416ee9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
je 0x416f48
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x2c], 0
call fcn.00429d2d
lea edx, [esp + 0x2c]
add esp, 4
push edx
lea eax, [esp + 0x74]
call fcn.00433aea
add esp, 4
test al, al
jne 0x416f1b
xor ebx, ebx
jmp 0x416f1f
mov bl, byte [esp + 0x28]
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416f3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, 0x10
je 0x417018
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
lea ecx, [esp + 0xdc]
push eax
mov eax, ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x164], esi
call fcn.00403e50
lea ecx, [esp + 0x44]
push ecx
call fcn.0042954a
add esp, 4
push eax
lea ecx, [esp + 0xf4]
mov byte [esp + 0x524], 0x1b
call fcn.00402d80
mov eax, dword [esp + 0x144]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0xe0]
push edx
push 0x8005
push 0x8001
push eax
call esi
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416fd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x144]
lea ecx, [esp + 0xe0]
push ecx
push 0x8002
push 0x8001
push edx
mov byte [esp + 0xf0], 1
call esi
mov eax, dword [esp + 0x144]
test eax, eax
je 0x417018
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov eax, dword [esp + 0x144]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push edi
lea ecx, [esp + 0xf4]
call fcn.00402d80
mov edx, dword [esp + 0x144]
lea ecx, [esp + 0xe0]
push ecx
push 0x8005
push 0x8001
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x2c]
push eax
push esi
call fcn.00411cf0
inc dword [esp + 0x20]
test al, al
je 0x417192
lea ecx, [esp + 0x5c]
push ecx
call fcn.0042963e
add esp, 4
mov byte [esp + 0x520], 0x1c
mov edx, dword [esp + 0x5c]
cmp dword [edx - 0xc], 0
je 0x41708f
push 2
push 0x45f060
lea ecx, [esp + 0x64]
call fcn.00402a40
lea eax, [esp + 0x4c]
push esi
push eax
lea ecx, [esp + 0x64]
call fcn.00409fa0
mov esi, eax
push 0xf
push 0x234e
push 0x460fc0
mov byte [esp + 0x534], 0x1d
call fcn.00433609
add esp, 0x14
push eax
lea ecx, [esp + 0x90]
call fcn.00402830
mov byte [esp + 0x520], 0x1e
mov edx, dword [0x4729fc]
test edx, edx
jne 0x417111
push 0x9c
call fcn.004402d1
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x520], 0x1f
test eax, eax
je 0x417100
push eax
call fcn.0042868c
jmp 0x417102
xor eax, eax
mov byte [esp + 0x520], 0x1e
mov dword [0x4729fc], eax
mov edx, eax
push esi
lea ecx, [esp + 0x90]
call fcn.00428d4c
mov byte [esp + 0x520], 0x1d
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417149
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x1c
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417171
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x4172bf
lea ecx, [esp + 0x58]
push ecx
call fcn.0042968e
add esp, 4
mov byte [esp + 0x520], 0x20
mov edx, dword [esp + 0x58]
cmp dword [edx - 0xc], 0
je 0x4171c1
push 2
push 0x45f060
lea ecx, [esp + 0x60]
call fcn.00402a40
lea eax, [esp + 0x48]
push esi
push eax
lea ecx, [esp + 0x60]
call fcn.00409fa0
mov esi, eax
push 0x11
push 0x103c
push 0x460fd0
mov byte [esp + 0x534], 0x21
call fcn.00433609
add esp, 0x14
push eax
lea ecx, [esp + 0x54]
call fcn.00402830
mov byte [esp + 0x520], 0x22
mov edx, dword [0x4729fc]
test edx, edx
jne 0x417240
push 0x9c
call fcn.004402d1
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x520], 0x23
test eax, eax
je 0x41722f
push eax
call fcn.0042868c
jmp 0x417231
xor eax, eax
mov byte [esp + 0x520], 0x22
mov dword [0x4729fc], eax
mov edx, eax
push esi
lea ecx, [esp + 0x54]
call fcn.00428d4c
mov byte [esp + 0x520], 0x21
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417272
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x20
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41729a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0x10]
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
mov dword [ecx], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4172cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x40]
push ecx
call fcn.0042a4fe
add esp, 4
mov esi, dword [esp + 0x2c]
push eax
lea ecx, [esi + 0x68]
mov byte [esp + 0x524], 0x24
call fcn.00402d80
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417315
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 8]
test byte [ecx + 0x40], 2
je 0x417335
mov eax, dword [esp + 0x18]
dec eax
cmp dword [esp + 0x24], eax
je 0x41732f
cmp byte [esi + 0x61], 0
je 0x417335
push esi
call fcn.004189f0
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x18]
jb 0x416ca0
push 1
push 0x2aac
push 0x45e8a0
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x54]
call fcn.00402830
push 0x11
push 0xacb
push 0x460fac
mov byte [esp + 0x52c], 0x25
call fcn.00433609
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
call fcn.00402830
mov bl, 0x26
mov byte [esp + 0x520], bl
mov eax, dword [0x4729fc]
test eax, eax
jne 0x4173d1
push 0x9c
call fcn.004402d1
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x520], 0x27
test eax, eax
je 0x4173c3
push eax
call fcn.0042868c
jmp 0x4173c5
xor eax, eax
mov byte [esp + 0x520], bl
mov dword [0x4729fc], eax
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x1c]
mov edx, eax
call fcn.00428d4c
mov byte [esp + 0x520], 0x25
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417409
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x17
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417431
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x174], 0
je 0x41745f
mov ecx, dword [esp + 0x144]
push 0
push 0
push 2
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov edx, dword [esp + 0x174]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [esp + 0xdc]
call fcn.00403cf0
mov byte [esp + 0x520], 0x12
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
mov dword [esp + 0x9c], 0x45e8a8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4174c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1f], 0
jne 0x4174d5
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.DLL_SetEvent]
lea edx, [esp + 0x44]
push edx
call fcn.0042963e
add esp, 4
mov esi, eax
push 8
push 0x1955
push 0x45f838
mov byte [esp + 0x52c], 0x28
call fcn.00433609
lea ecx, [esp + 0x58]
add esp, 0xc
push ecx
mov ecx, esi
mov edx, eax
call fcn.0040e600
add esp, 4
lea edx, [esp + 0x48]
push 0x45f834
push edx
mov ecx, eax
mov byte [esp + 0x528], 0x29
call fcn.0040a060
mov esi, eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x52c], 0x2a
call fcn.00429d2d
mov ecx, dword [eax]
mov eax, dword [esp + 0x4c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
setne bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41756a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x4175ab
lea ecx, [esp + 0x18]
push 0x45ef38
push ecx
mov ecx, esi
call fcn.0040a060
add esp, 8
lea eax, [esp + 0x18]
call fcn.00436d38
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4175ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x29
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4175d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x28
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4175fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x12
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417623
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x44]
push ecx
call fcn.0042968e
add esp, 4
mov esi, eax
push 0xe
push 0xe3d
push 0x45f844
mov byte [esp + 0x52c], 0x2b
call fcn.00433609
lea edx, [esp + 0x58]
add esp, 0xc
push edx
mov ecx, esi
mov edx, eax
call fcn.0040e600
add esp, 4
lea ecx, [esp + 0x48]
push 0x45f834
push ecx
mov ecx, eax
mov byte [esp + 0x528], 0x2c
call fcn.0040a060
mov esi, eax
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x52c], 0x2d
call fcn.00429d2d
mov eax, dword [eax]
add esp, 0xc
cmp dword [eax - 0xc], 0
mov eax, dword [esp + 0x40]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4176b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x4176f9
lea ecx, [esp + 0x18]
push 0x45ef38
push ecx
mov ecx, esi
call fcn.0040a060
add esp, 8
lea eax, [esp + 0x18]
call fcn.00436d38
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4176f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x2c
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417721
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x2b
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417749
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0x12
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417771
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
mov byte [esp + 0x520], 8
mov eax, dword [esp + 0x6c]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4177a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4177c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4177e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41780a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41782a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41784a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x520], 0
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417875
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x520], 0xffffffff
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4178a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
mov ecx, dword [esp + 0x518]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10