Function at 0x413f80
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x734
mov eax, dword [0x54e758]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
mov edi, dword [ebp + 8]
push str.Global74CD674D_FBFA_462B_B4CD_8762469B19ECAdbkTray
push 1
push 0
mov dword [ebp - 0x6f4], edi
mov dword [ebp - 0x6ec], ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
mov dword [ebp - 0x6f8], esi
test esi, esi
je 0x41424d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41424d
push ebx
lea ecx, [ebp - 0x64]
call fcn.00406690
cmp dword [ebp - 0x50], 8
lea edi, [ebp - 0x64]
lea eax, [ebp - 0xfc]
cmovae edi, dword [ebp - 0x64]
mov dword [ebp - 0x100], eax
test edi, edi
jne 0x414009
xor eax, eax
mov dword [ebp - 0x100], eax
jmp 0x4140e0
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414010
sub ecx, edx
lea eax, [ebp - 0xfc]
sar ecx, 1
push 0x80
push eax
lea eax, [ebp - 0x100]
lea ebx, [ecx + 1]
lea esi, [ebx*4]
mov dword [ebp - 0x6f4], ebx
push esi
push eax
call fcn.004109f0
add esp, 0x10
push 0
push 0
push esi
push dword [ebp - 0x100]
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ebx
push edi
push 0
push 3
call esi
xor ebx, ebx
test eax, eax
sete bl
test eax, eax
jne 0x4140cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4140cc
mov ebx, dword [ebp - 0x6f4]
push 0
push 0
push 0
push 0
push ebx
push edi
push 0
push 3
call esi
mov esi, eax
lea eax, [ebp - 0xfc]
push 0x80
push eax
lea eax, [ebp - 0x100]
push esi
push eax
call fcn.004109f0
add esp, 0x10
push 0
push 0
push esi
push dword [ebp - 0x100]
push ebx
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
neg ebx
sbb ebx, ebx
inc ebx
test ebx, ebx
jne 0x414f1e
mov eax, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x6ec]
push eax
lea ecx, [ebp - 0x7c]
call fcn.00406430
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0xfc]
cmp eax, ecx
je 0x414102
push eax
call fcn.004e3ab1
add esp, 4
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x34]
add eax, 0xc
mov dword [ebp - 0x24], 0
push eax
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
call fcn.00413d80
push 0xc
push str.downloadWeb:
lea ecx, [ebp - 0x34]
call fcn.0040a800
cmp dword [ebp - 0x68], 0x10
lea eax, [ebp - 0x7c]
push dword [ebp - 0x6c]
cmovae eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x34]
push eax
call fcn.0040a800
lea ecx, [ebp - 0x7c]
call fcn.00406fc0
movups xmm0, xmmword [ebp - 0x34]
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], 0
movups xmmword [ebp - 0x7c], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [ebp - 0x6c], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
call fcn.00406fc0
call fcn.004118e0
push ebx
mov ecx, eax
call fcn.0040c930
push ebx
lea ecx, [ebp - 0x4c]
call fcn.00406690
mov eax, dword [ebp - 0x3c]
add eax, eax
mov dword [ebp - 0x10], 0x2716
cmp dword [ebp - 0x38], 8
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push 0
push 0x511ee8
mov dword [ebp - 8], eax
call dword [sym.imp.USER32.dll_FindWindowW]
push 0
push 0x1388
push 1
lea ecx, [ebp - 0x10]
push ecx
push 0
push 0x4a
push eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
call fcn.004118e0
push str.autorun
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.00406690
push 0
lea eax, [ebp - 0x34]
mov ecx, esi
push eax
call fcn.0040c4e0
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.00407010
test esi, esi
jne 0x414210
lea eax, [ebp - 0x7c]
push eax
call fcn.0040f0b0
add esp, 4
mov edi, dword [ebp - 0x6f8]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x4c]
call fcn.00407010
lea ecx, [ebp - 0x7c]
call fcn.00406fc0
lea ecx, [ebp - 0x64]
call fcn.00407010
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b994
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x41431a
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 4
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov esi, dword [ebp - 8]
or edi, 0xffffffff
mov byte [ebp - 0x6e5], al
test esi, esi
je 0x4142ac
mov ecx, edi
lock xadd dword [esi + 4], ecx
jne 0x4142ac
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x4142a6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov al, byte [ebp - 0x6e5]
test al, al
je 0x41430c
lea ecx, [ebp - 0x114]
call fcn.00410a90
mov esi, eax
push str.will_adjust_privilege
push esi
call fcn.004058d0
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 0xc
mov ecx, dword [eax]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, dword [ebp - 8]
test esi, esi
je 0x414301
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x414301
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x414301
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x114]
call fcn.00407850
push ebx
call fcn.004224c0
add esp, 4
jmp 0x414f09
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 4
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov esi, dword [ebp - 8]
or ebx, 0xffffffff
mov byte [ebp - 0x6e5], al
test esi, esi
je 0x41435e
mov ecx, ebx
lock xadd dword [esi + 4], ecx
jne 0x41435e
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x41435e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
cmp byte [ebp - 0x6e5], 0
je 0x4143c4
lea ecx, [ebp - 0x114]
call fcn.00410a90
mov esi, eax
push str.run_in_admin
push esi
call fcn.004058d0
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 0xc
mov ecx, dword [eax]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, dword [ebp - 8]
test esi, esi
je 0x4143b9
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4143b9
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4143b9
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x114]
call fcn.00407850
push 0
push str.adbktray
lea ecx, [ebp - 0x6ed]
call fcn.0040df80
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 8
push eax
mov dword [ebp - 8], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
push edi
push 0
mov ecx, 0x55479c
call fcn.00411b00
call fcn.004118e0
mov edi, dword [ebp - 0x6ec]
mov ecx, eax
push edi
call fcn.0040c930
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 4
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov esi, dword [ebp - 8]
mov byte [ebp - 0x6e5], al
test esi, esi
je 0x41446d
mov ecx, ebx
lock xadd dword [esi + 4], ecx
jne 0x41446d
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x414467
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov al, byte [ebp - 0x6e5]
test al, al
je 0x4144df
lea ecx, [ebp - 0x114]
call fcn.00410a90
mov esi, eax
push str.cmd:
push esi
call fcn.004058d0
test edi, edi
mov ecx, 0x510b98
cmovne ecx, edi
push ecx
push esi
call fcn.004058d0
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 0x14
mov ecx, dword [eax]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, dword [ebp - 8]
test esi, esi
je 0x4144d4
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4144d4
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x4144d4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x114]
call fcn.00407850
mov ecx, dword [0x5547dc]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ecx, ecx
jne 0x414536
push 0x54e0f8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5547dc], 0
jne 0x414529
push 0x34
call fcn.0049b9c8
add esp, 4
test eax, eax
je 0x41451a
mov ecx, eax
call fcn.004266f0
jmp 0x41451c
xor eax, eax
xor edx, edx
lea ecx, [ebp - 8]
lock or dword [ecx], edx
mov dword [0x5547dc], eax
push 0x54e0f8
call edi
mov ecx, dword [0x5547dc]
push reloc.OLEAUT32.dll_SysReAllocString
push str.SOFTWAREADBlockMaster
push str.ADBlockMaster.exe
call fcn.004277c0
push 0
push 0
push 0
push str.adbk
lea eax, [ebp - 0x64]
push str.http:__s.91toolbox.com_adbk_pidpidtypetypeactionactionappappappverappvermidmidmid2mid2modvermodver
push eax
call fcn.00427860
add esp, 0x18
cmp dword [eax + 0x14], 8
jb 0x41456e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x6fc]
call fcn.0040d6e0
lea ecx, [ebp - 0x64]
call fcn.00407010
call fcn.00411a00
push dword [ebp - 0x6fc]
mov ecx, eax
push str.operate
call fcn.00425bc0
push dword [ebp - 0x6f4]
call fcn.00432ed0
lea eax, [ebp - 0x198]
push eax
call fcn.0042ede0
add esp, 8
lea ecx, [ebp - 0x198]
push str.skin
call fcn.0042b7b0
lea ecx, [ebp - 0x198]
call fcn.004153b0
push eax
call fcn.00433150
push 1
push str.adblocktray.zip
call fcn.00433210
mov esi, dword [0x5547e0]
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 7
mov word [ebp - 0x34], ax
test esi, esi
jne 0x414647
push 0x54e114
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5547e0], esi
jne 0x41463a
push 0x34
call fcn.0049b9c8
add esp, 4
test eax, eax
je 0x41462b
mov ecx, eax
call fcn.0040c150
jmp 0x41462d
xor eax, eax
xor edx, edx
lea ecx, [ebp - 8]
lock or dword [ecx], edx
mov dword [0x5547e0], eax
push 0x54e114
call edi
mov esi, dword [0x5547e0]
xor eax, eax
mov dword [ebp - 0x38], 7
push 8
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x4c]
push 0x512190
push eax
mov dword [ebp - 0x3c], 4
call fcn.004dcf40
xor eax, eax
add esp, 0xc
mov word [ebp - 0x44], ax
mov ecx, esi
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0040c4d0
mov edx, dword [ebp - 0x38]
cmp edx, 8
jb 0x4146bd
mov ecx, dword [ebp - 0x4c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4146b3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f3d
push edx
push ecx
call fcn.0049b6ec
add esp, 8
mov eax, dword [ebp - 0x20]
lea edi, [ebp - 0x34]
cmp eax, 8
cmovae edi, dword [ebp - 0x34]
cmp dword [ebp - 0x24], 4
jne 0x414706
movzx ecx, word [edi]
mov esi, 0x74
mov edx, 4
mov eax, str.task
cmp ecx, esi
jb 0x414703
sub edi, eax
cmp cx, si
ja 0x414703
cmp edx, 1
je 0x414762
movzx ecx, word [eax + edi + 2]
add eax, 2
dec edx
movzx esi, word [eax]
cmp cx, si
jae 0x4146eb
mov eax, dword [ebp - 0x20]
cmp eax, 8
lea edi, [ebp - 0x34]
cmovae edi, dword [ebp - 0x34]
cmp dword [ebp - 0x24], 3
jne 0x414749
movzx ecx, word [edi]
mov esi, 0x73
mov edx, 3
mov eax, 0x5121a8
cmp ecx, esi
jb 0x414749
sub edi, eax
cmp cx, si
ja 0x414749
cmp edx, 1
je 0x414762
movzx ecx, word [eax + edi + 2]
add eax, 2
dec edx
movzx esi, word [eax]
cmp cx, si
jae 0x414731
lea eax, [ebp - 0x34]
push 0x5121b0
push eax
call fcn.00410980
add esp, 8
test al, al
je 0x414864
mov ecx, dword [0x5547e4]
test ecx, ecx
jne 0x4147b7
push 0x54e130
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5547e4], 0
jne 0x4147a6
push 4
call fcn.0049b9c8
add esp, 4
test eax, eax
je 0x414797
mov ecx, eax
call fcn.0040cda0
jmp 0x414799
xor eax, eax
xor edx, edx
lea ecx, [ebp - 8]
lock or dword [ecx], edx
mov dword [0x5547e4], eax
push 0x54e130
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x5547e4]
call fcn.0040cf70
test eax, eax
jne 0x414864
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 4
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
lea ecx, [ebp - 0xc]
mov bl, al
call fcn.00407190
test bl, bl
je 0x414826
lea ecx, [ebp - 0x114]
call fcn.00410a90
mov esi, eax
push str.user_do_not_autorun__exit
push esi
call fcn.004058d0
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 0xc
mov ecx, dword [eax]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0xc]
call fcn.00407190
lea ecx, [ebp - 0x114]
call fcn.00407850
call fcn.00411a00
sub esp, 0x28
mov ecx, esp
push 0
push str.autoitem
push 1
push 0
mov dword [ecx + 0x24], 0
mov ecx, eax
push str.autooff
call fcn.00425e80
lea ecx, [ebp - 0x34]
call fcn.00407010
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or ebx, 0xffffffff
jmp 0x414e96
push dword [ebp - 0x6ec]
call fcn.00422630
add esp, 4
test eax, eax
jne 0x414909
call fcn.00411a00
sub esp, 0x28
mov ecx, esp
push 0
push str.operate
push 0
push 0
mov dword [ecx + 0x24], 0
mov ecx, eax
push str.no_active
call fcn.00425e80
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 4
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
lea ecx, [ebp - 0xc]
mov bl, al
call fcn.00407190
test bl, bl
je 0x41484e
lea ecx, [ebp - 0x114]
call fcn.00410a90
mov esi, eax
push str.CheckEnableAutoRun_False__exit
push esi
call fcn.004058d0
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 0xc
mov ecx, dword [eax]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0xc]
call fcn.00407190
lea ecx, [ebp - 0x114]
call fcn.00407850
jmp 0x41484e
call fcn.00411970
mov ecx, eax
call fcn.00421890
test eax, eax
je 0x414b41
xor eax, eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 7
mov word [ebp - 0x64], ax
call fcn.004118e0
push 0x512190
lea ecx, [ebp - 0x4c]
mov esi, eax
call fcn.00406690
lea eax, [ebp - 0x64]
mov ecx, esi
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0040c4d0
mov edx, dword [ebp - 0x38]
cmp edx, 8
jb 0x41498e
mov ecx, dword [ebp - 0x4c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414984
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f42
push edx
push ecx
call fcn.0049b6ec
add esp, 8
xor eax, eax
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 7
mov word [ebp - 0x4c], ax
call fcn.004118e0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.0040c4b0
cmp dword [eax + 0x14], 8
jb 0x4149ba
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x6ec]
call fcn.0040d6e0
mov edx, dword [ebp - 8]
cmp edx, 8
jb 0x414a00
mov ecx, dword [ebp - 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4149f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f47
push edx
push ecx
call fcn.0049b6ec
add esp, 8
xor eax, eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 7
mov word [ebp - 0x1c], ax
call fcn.00411970
mov ecx, dword [ebp - 0x6ec]
mov esi, eax
cmp dword [ecx - 4], 1
jle 0x414a3b
push dword [ecx - 0xc]
lea ecx, [ebp - 0x6ec]
call fcn.00404d40
mov ecx, dword [ebp - 0x6ec]
push ecx
mov ecx, esi
call fcn.00421e60
call fcn.00411970
mov ecx, eax
call fcn.00421c10
mov edx, dword [ebp - 0x6ec]
test eax, eax
mov eax, ebx
setne byte [ebp - 0x6e5]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x414a75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x50]
cmp edx, 8
jb 0x414aaf
mov ecx, dword [ebp - 0x64]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414aa5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f47
push edx
push ecx
call fcn.0049b6ec
add esp, 8
cmp byte [ebp - 0x6e5], 0
je 0x414b41
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 4
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
lea ecx, [ebp - 0xc]
mov bl, al
call fcn.00407190
test bl, bl
je 0x414b1e
lea ecx, [ebp - 0x114]
call fcn.00410a90
mov esi, eax
push str.update__exit
push esi
call fcn.004058d0
lea eax, [ebp - 0xc]
push eax
call fcn.0040faf0
add esp, 0xc
mov ecx, dword [eax]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0xc]
call fcn.00407190
lea ecx, [ebp - 0x114]
call fcn.00407850
mov edi, dword [ebp - 0x6f8]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x34]
call fcn.00407010
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or ebx, 0xffffffff
jmp 0x414e9c
mov edi, dword [0x55477c]
xorps xmm0, xmm0
add edi, 0x10
mov dword [ebp - 0x734], 0x511ed8
push edi
movups xmmword [ebp - 0x730], xmm0
mov dword [ebp - 0x720], 0
mov dword [ebp - 0x71c], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x5547d0]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esi + 8]
push 4
inc ecx
mov dword [ebp - 0x6f4], eax
push ecx
push dword [esi]
call fcn.004e5c8b
add esp, 0xc
test eax, eax
je 0x414be5
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.004e5c8b
add esp, 0xc
test eax, eax
je 0x414be5
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
lea edx, [ecx*4]
mov ecx, dword [esi]
add ecx, edx
je 0x414bd6
mov eax, dword [ebp - 0x6f4]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add eax, edx
je 0x414be2
lea ecx, [ebp - 0x734]
mov dword [eax], ecx
inc dword [esi + 8]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x6e4]
call fcn.0041b390
lea ecx, [ebp - 0x6e4]
call fcn.0041bed0
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edx, 1
mov dword [ebp - 0x6ec], edx
xor esi, esi
test edx, edx
je 0x414c52
nop dword [eax]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x718]
push eax
call edi
test eax, eax
jne 0x414c52
mov eax, dword [ebp - 0x734]
lea ecx, [ebp - 0x734]
push esi
inc esi
mov edx, dword [eax + 4]
call edx
test eax, eax
jne 0x414c20
mov dword [ebp - 0x6ec], eax
push 0
push 0
push 0
lea eax, [ebp - 0x718]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
mov edx, dword [ebp - 0x6ec]
cmp eax, 0xffffffff
je 0x414c15
test eax, eax
je 0x414cfe
mov eax, dword [ebp - 0x734]
lea ecx, [ebp - 0x718]
push ecx
lea ecx, [ebp - 0x734]
call dword [eax]
test eax, eax
jne 0x414cab
lea eax, [ebp - 0x718]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x718]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [ebp - 0x714]
cmp eax, 0x118
ja 0x414cc6
je 0x414ce8
cmp eax, 0xf
je 0x414ce8
cmp eax, 0xa0
jmp 0x414ccb
cmp eax, 0x200
je 0x414ce8
mov ecx, 1
xor eax, eax
test ecx, ecx
mov edx, ecx
mov dword [ebp - 0x6ec], edx
cmove eax, esi
mov esi, eax
jmp 0x414c15
mov edx, dword [ebp - 0x6ec]
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x414c15
mov eax, dword [0x55477c]
add eax, 0x10
push eax
mov dword [ebp - 0x6f4], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [0x5547d0]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [edi + 8]
xor esi, esi
test edx, edx
jle 0x414de1
mov ecx, dword [edi]
nop
cmp dword [ecx], eax
je 0x414d41
inc esi
add ecx, 4
cmp esi, edx
jl 0x414d30
jmp 0x414de1
cmp esi, 0xffffffff
je 0x414de1
test esi, esi
js 0x414de1
cmp esi, edx
jge 0x414de1
lea eax, [edx - 1]
cmp esi, eax
je 0x414d9d
mov eax, dword [edi]
sub edx, esi
shl edx, 2
lea ecx, [eax + esi*4]
lea eax, [edx - 4]
push eax
lea eax, [ecx + 4]
push eax
push edx
push ecx
call fcn.00413d00
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
sub edx, esi
shl edx, 2
lea ecx, [eax + esi*4]
lea eax, [edx - 4]
push eax
lea eax, [ecx + 4]
push eax
push edx
push ecx
call fcn.00413d00
mov edx, dword [edi + 8]
add esp, 0x20
push 4
lea eax, [edx - 1]
push eax
push dword [edi]
call fcn.004e5c8b
mov ecx, eax
add esp, 0xc
mov eax, dword [edi + 8]
test ecx, ecx
jne 0x414dbb
cmp eax, 1
jne 0x414dbd
mov dword [edi], ecx
push 4
dec eax
push eax
push dword [edi + 4]
call fcn.004e5c8b
mov ecx, eax
add esp, 0xc
mov eax, dword [edi + 8]
test ecx, ecx
jne 0x414dda
cmp eax, 1
jne 0x414ddd
mov dword [edi + 4], ecx
dec eax
mov dword [edi + 8], eax
push dword [ebp - 0x6f4]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call esi
lea ecx, [ebp - 0x6e4]
call fcn.0041b6b0
mov eax, dword [ebp - 0x724]
test eax, eax
je 0x414e17
push eax
call fcn.004e3ab1
add esp, 4
mov dword [ebp - 0x724], 0
mov eax, dword [ebp - 0x730]
mov dword [ebp - 0x720], 0
mov dword [ebp - 0x71c], 0
test eax, eax
je 0x414e48
push eax
call fcn.004e3ab1
add esp, 4
mov dword [ebp - 0x730], 0
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x72c], 0
mov dword [ebp - 0x728], 0
cmp edx, 8
jb 0x414e96
mov ecx, dword [ebp - 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x414e8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f4c
push edx
push ecx
call fcn.0049b6ec
add esp, 8
mov edi, dword [ebp - 0x6f8]
cmp dword [0x5547e0], 0
je 0x414ed1
push 0x54e114
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x5547e0]
test ecx, ecx
je 0x414eca
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x5547e0], 0
push 0x54e114
call esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x198]
call fcn.004224a0
mov edx, dword [ebp - 0x6fc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x414efe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x6ed]
call fcn.004058b0
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049b994
mov esp, ebp
pop ebp
ret 0x10
push 0x80
lea eax, [ebp - 0xfc]
push eax
push dword [ebp - 0x100]
call fcn.00410a70
add esp, 0xc
call fcn.00411630
call fcn.004e0859
call fcn.004e0859
call fcn.004e0859
call fcn.004e0859
int3