Function at 0x43cc70
Capabilities:
Open clipboard

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x689360
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push esi
push edi
mov eax, dword [0x725fec]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], eax
test ecx, ecx
jne 0x43ccb8
lea eax, [esi + 0x304]
mov dword [ebp - 0x38], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call fcn.00507135
push 0x50
mov dword [ebp - 0x3c], eax
call fcn.004fb4ab
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x43cced
mov ecx, eax
call fcn.00453240
mov ebx, eax
mov dword [ebp - 0x34], eax
jmp 0x43ccf2
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
mov ecx, ebx
call fcn.0050c4a2
mov dword [ebx + 0x4c], 2
call fcn.004fc414
mov ecx, eax
test ecx, ecx
je 0x43db86
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x38]
xor ebx, ebx
mov dword [ebp - 4], 1
mov dword [ebp - 0x24], ebx
cmp dword [eax + 8], ebx
jl 0x43cf2e
mov eax, dword [eax + 4]
mov edx, dword [eax + ebx*4]
test edx, edx
jne 0x43cd4e
xor ecx, ecx
jmp 0x43cd62
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43cd53
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x30]
call fcn.00403bb0
mov esi, dword [ebp - 0x30]
cmp dword [esi - 0xc], 0x50
jle 0x43ce2d
mov ecx, dword [esi - 0x10]
lea edi, [esi - 0x10]
test ecx, ecx
je 0x43cd8c
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x43cd98
call fcn.004fc414
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push 0x50
push esi
lea ecx, [ebp - 0x18]
call fcn.00405ee0
or dword [ebp - 0x2c], 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x18]
lea esi, [eax - 0x10]
cmp esi, edi
je 0x43cdff
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x43cdf0
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43cdf0
push esi
call fcn.004060e0
add esp, 4
mov dword [ebp - 0x28], eax
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x43cde8
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
add eax, 0x10
mov dword [ebp - 0x30], eax
jmp 0x43cdfc
push dword [eax - 0xc]
lea ecx, [ebp - 0x30]
push eax
call fcn.00403bb0
mov ebx, dword [ebp - 0x24]
mov byte [ebp - 4], 1
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43ce18
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push 3
push 0x6e55ec
lea ecx, [ebp - 0x30]
call fcn.00417860
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
push 0x6e2d98
push 0x6e55e8
lea ecx, [ebp - 0x30]
call fcn.0041a760
push 0x6e2d98
push 0x6e1fd8
lea ecx, [ebp - 0x30]
call fcn.0041a760
push 0x6e2d98
push 0x6e5484
lea ecx, [ebp - 0x30]
call fcn.0041a760
push 0x6e2d98
lea ecx, [ebp - 0x30]
call fcn.0041e3b0
push 0x1c
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x14], esi
mov edi, dword [ebp - 0x30]
test esi, esi
je 0x43ced5
mov ecx, esi
call fcn.00432c90
mov byte [ebp - 4], 4
lea eax, [ebx + 0x1f4]
mov dword [esi], vtable.CMenuXPText.0
mov dword [esi + 8], eax
test edi, edi
jne 0x43cea8
xor ecx, ecx
jmp 0x43cebf
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ceb0
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [esi + 0x10]
call fcn.00403bb0
mov ebx, dword [ebp - 0x24]
mov dword [esi + 0x14], 0
jmp 0x43ced7
xor esi, esi
mov eax, dword [ebp - 0x34]
mov ecx, 0x100
mov byte [ebp - 4], 1
mov edx, 0x140
push esi
cmp dword [eax + 0x30], 0
mov dword [eax + 0x30], 0
cmove edx, ecx
mov ecx, dword [eax + 0x34]
mov dword [eax + 0x34], 0
mov eax, edx
push dword [esi + 8]
or eax, 0x20
test ecx, ecx
mov ecx, dword [ebp - 0x34]
cmove eax, edx
push eax
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [ebp - 0x38]
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, dword [eax + 8]
jle 0x43cd40
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x34]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jne 0x43d3de
call fcn.004fc414
mov ecx, eax
test ecx, ecx
je 0x43db90
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x20]
add eax, 0x304
cmp dword [ebp - 0x38], eax
jne 0x43d0c0
mov ebx, dword [0x734140]
test ebx, ebx
je 0x43cf81
lock inc dword [ebx + 4]
mov ebx, dword [0x734140]
mov ecx, dword [0x73413c]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ebx
push str.EnableClipboardHistory
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 7
push eax
call fcn.0042ae40
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 8
call fcn.0042cc10
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
test al, al
je 0x43cfd4
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43cfce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0xd], 1
jmp 0x43cfed
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43cfe9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0xd], 0
mov byte [ebp - 4], 9
test ebx, ebx
je 0x43d016
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x43d016
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
or eax, 0xffffffff
lock xadd dword [ebx + 8], eax
jne 0x43d016
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
je 0x43d0ad
mov edx, 0x1da
call fcn.00406490
mov byte [ebp - 4], 0xa
mov ecx, dword [eax]
lea ebx, [esi - 0x10]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x43d08a
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x43d07b
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x43d07b
push edx
call fcn.004060e0
add esp, 4
mov dword [ebp - 0x18], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x43d073
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x18]
lea esi, [eax + 0x10]
mov dword [ebp - 0x24], esi
jmp 0x43d08a
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x24]
call fcn.00403bb0
mov esi, dword [ebp - 0x24]
mov byte [ebp - 4], 6
or eax, 0xffffffff
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d178
mov ecx, dword [edx]
push edx
jmp 0x43d173
mov edx, 0x1db
call fcn.00406490
mov byte [ebp - 4], 0xb
jmp 0x43d035
mov byte [ebp - 4], 0xc
call fcn.004fc414
mov ecx, eax
test ecx, ecx
je 0x43db9a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
or eax, 8
push 0x1dc
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], eax
call fcn.00403830
mov eax, dword [ebp - 0x28]
lea edx, [esi - 0x10]
mov dword [ebp - 0x18], edx
lea ebx, [eax - 0x10]
cmp ebx, edx
je 0x43d153
cmp dword [edx + 0xc], 0
lea esi, [edx + 0xc]
jl 0x43d144
mov ecx, dword [ebx]
cmp ecx, dword [edx]
jne 0x43d144
push ebx
call fcn.004060e0
add esp, 4
mov dword [ebp - 0x14], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x43d13c
mov esi, dword [ebp - 0x18]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x14]
lea esi, [eax + 0x10]
mov dword [ebp - 0x24], esi
jmp 0x43d153
push dword [eax - 0xc]
lea ecx, [ebp - 0x24]
push eax
call fcn.00403bb0
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
and eax, 0xfffffff7
mov byte [ebp - 4], 6
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], eax
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x43d178
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x1c
call fcn.004fb4ab
mov ebx, eax
add esp, 4
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x40], ebx
test ebx, ebx
je 0x43d284
mov edx, dword [0x734140]
mov dword [ebp - 0x28], edx
test edx, edx
je 0x43d1ac
lock inc dword [edx + 4]
mov edx, dword [0x734140]
mov dword [ebp - 0x28], edx
mov ecx, dword [0x73413c]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], edx
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x2c]
or eax, 1
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
push str.EnableClipboardHistory
push eax
call fcn.0042ae40
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xf
call fcn.0042cc10
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
test al, al
je 0x43d20e
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d208
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0xd], 1
jmp 0x43d227
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d223
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0xd], 0
mov ecx, ebx
call fcn.00432c90
xor eax, eax
mov dword [ebp - 4], 0x10
cmp byte [ebp - 0xd], al
mov ecx, 0x3ef
mov dword [ebx], vtable.CMenuXPText.0
cmove eax, ecx
mov dword [ebx + 8], eax
lea eax, [ebx + 0x10]
test esi, esi
jne 0x43d256
xor ecx, ecx
jmp 0x43d272
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43d260
sub ecx, edx
lea eax, [ebx + 0x10]
sar ecx, 1
push ecx
push esi
mov ecx, eax
call fcn.00403bb0
mov dword [ebx + 0x14], 0
jmp 0x43d291
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], edx
mov ebx, dword [0x734140]
test ebx, ebx
je 0x43d2a5
lock inc dword [ebx + 4]
mov ebx, dword [0x734140]
mov ecx, dword [0x73413c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ebx
push str.EnableClipboardHistory
lea eax, [ebp - 0x14]
mov dword [ebp - 4], 0x12
push eax
call fcn.0042ae40
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x13
call fcn.0042cc10
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
test al, al
je 0x43d2ff
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d2f5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x141
lea eax, [edx - 0x40]
jmp 0x43d31e
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d314
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x140
mov eax, 0x100
mov ecx, dword [ebp - 0x34]
cmp dword [ecx + 0x30], 0
cmove edx, eax
mov eax, ecx
mov ecx, dword [eax + 0x34]
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0x18]
push eax
push dword [eax + 8]
mov eax, edx
or eax, 0x20
test ecx, ecx
mov ecx, dword [ebp - 0x34]
cmove eax, edx
push eax
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov dword [ebp - 4], 0x15
test ebx, ebx
je 0x43d385
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x43d385
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
or eax, 0xffffffff
lock xadd dword [ebx + 8], eax
jne 0x43d385
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [ebp - 4], 6
test byte [ebp - 0x2c], 1
je 0x43d3be
mov byte [ebp - 4], 0x16
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x43d3be
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x43d3be
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
or eax, 0xffffffff
lock xadd dword [ebx + 8], eax
jne 0x43d3be
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43d51c
mov ecx, dword [esi]
push esi
jmp 0x43d517
lea eax, [esi + 0x304]
cmp dword [ebp - 0x38], eax
jne 0x43d51f
push 0x1c
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x40], esi
test esi, esi
je 0x43d421
mov ecx, esi
call fcn.00432c90
mov dword [esi], vtable.CMenuXPSeparator.0
mov byte [esi + 0xc], 1
jmp 0x43d423
xor esi, esi
push esi
push 0
push 0x900
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_AppendMenuW]
push 0x1c
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x40], esi
mov byte [ebp - 4], 0x17
test esi, esi
je 0x43d4b8
mov edx, 0x1dd
lea ecx, [ebp - 0x18]
call fcn.00406490
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [eax]
or ecx, 2
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
call fcn.00432c90
mov dword [ebp - 4], 0x19
lea eax, [esi + 0x10]
mov dword [esi], vtable.CMenuXPText.0
mov dword [esi + 8], 0x9e
test ebx, ebx
jne 0x43d48c
xor ecx, ecx
jmp 0x43d4a3
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43d491
sub ecx, edx
lea eax, [esi + 0x10]
sar ecx, 1
push ecx
push ebx
mov ecx, eax
call fcn.00403bb0
mov ebx, dword [ebp - 0x34]
mov dword [esi + 0x14], 0
jmp 0x43d4ba
xor esi, esi
cmp dword [ebx + 0x30], 0
mov eax, 0x100
mov ecx, dword [ebx + 0x34]
mov edx, 0x140
cmove edx, eax
mov dword [ebx + 0x34], 0
mov eax, edx
mov dword [ebx + 0x30], 0
push esi
push dword [esi + 8]
or eax, 0x20
test ecx, ecx
cmove eax, edx
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov dword [ebp - 4], 1
test byte [ebp - 0x2c], 2
je 0x43d51c
mov edx, dword [ebp - 0x18]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d51c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x43d52a
xor edx, edx
jmp 0x43d52d
mov edx, dword [eax + 0x20]
push 1
push 1
push 1
lea ecx, [ebp - 0x54]
call fcn.004216c0
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
add esp, 0xc
push dword [esi + 0x20]
call ebx
mov ecx, dword [ebp - 0x34]
push 0
push esi
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push 0x182
call fcn.00509fc9
mov esi, eax
mov eax, dword [ebp - 0x34]
push 1
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 4]
cmp esi, 0x9e
jne 0x43d614
mov eax, dword [ebp - 0x20]
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x43d595
call dword [sym.imp.USER32.dll_EmptyClipboard]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov eax, dword [ebp - 0x20]
xor esi, esi
cmp dword [eax + 0x30c], esi
jl 0x43d5d0
mov ebx, eax
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [ebx + 0x308]
push dword [eax + esi*4]
call fcn.00480420
inc esi
add esp, 4
cmp esi, dword [ebx + 0x30c]
jle 0x43d5b0
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
mov esi, dword [ebp - 0x20]
push dword [esi + 0x308]
call fcn.00480420
add esp, 4
mov dword [esi + 0x310], 0
mov dword [esi + 0x30c], 0xffffffff
mov dword [esi + 0x308], 0
or esi, 0xffffffff
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x43db40
xor eax, eax
jmp 0x43db43
cmp esi, 0x3ef
jne 0x43d6e4
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], 0
test esi, esi
jne 0x43d65b
push 0x734184
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x6e5488
mov ecx, 0x734160
call fcn.004ff6d3
mov ecx, 0x73417c
mov dword [eax], 1
mov eax, dword [0x73417c]
call dword [eax + 0x14]
mov eax, dword [ebp - 0x20]
push dword [eax + 0x20]
call ebx
call fcn.004fc414
mov ecx, eax
test ecx, ecx
je 0x43dba4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, 0x6dcdc0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x1c]
test eax, 0xffff0000
jne 0x43d69b
movzx eax, ax
push eax
call fcn.00403830
jmp 0x43d6a7
push 0
push 0x6dcdc0
call fcn.00403bb0
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
push eax
push esi
mov byte [ebp - 4], 0x1d
call fcn.0043aa50
mov byte [ebp - 4], 1
or esi, 0xffffffff
mov edx, dword [ebp - 0x1c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43d60d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x43db43
cmp esi, 0x1f4
jb 0x43d5ff
mov eax, dword [ebp - 0x38]
lea ecx, [esi - 0x1f4]
mov dword [ebp - 0x28], ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*4]
lea ecx, [ebp - 0x1c]
call fcn.00403d10
mov esi, dword [ebp - 0x3c]
mov byte [ebp - 4], 0x1e
test esi, esi
jne 0x43d719
xor eax, eax
jmp 0x43d71c
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x43d88b
push dword [esi + 0x20]
call ebx
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x733f5c]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ebx
test ecx, ecx
jne 0x43d881
push 0x734038
mov dword [ebp - 0x40], 0x734038
call fcn.0063fb1c
add esp, 4
test eax, eax
je 0x43d76d
push eax
call fcn.0063f6f2
add esp, 4
mov byte [ebp - 4], 0x1f
cmp dword [0x733f5c], 0
jne 0x43d859
push 0x3c
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x14], esi
test esi, esi
je 0x43d851
mov ebx, dword [0x73402c]
test ebx, ebx
je 0x43d7a9
lock inc dword [ebx + 4]
mov ebx, dword [0x73402c]
mov eax, dword [0x734028]
mov dword [esi], 0
mov dword [esi + 4], 0
test ebx, ebx
je 0x43d7c3
lock inc dword [ebx + 4]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], vtable.CSimpleStrArray.0
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0xa
mov dword [esi + 0x1c], vtable.CSimpleStrArray.0
mov dword [esi + 0x24], 0xffffffff
mov dword [esi + 0x20], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0xa
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov byte [ebp - 4], 0x24
test ebx, ebx
je 0x43d84c
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x43d84c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
or eax, 0xffffffff
lock xadd dword [ebx + 8], eax
jne 0x43d84c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ebx, dword [ebp - 0x18]
jmp 0x43d853
xor esi, esi
mov dword [0x733f5c], esi
push 0x734038
mov byte [ebp - 4], 0x25
call fcn.0063fb41
add esp, 4
test eax, eax
je 0x43d877
push eax
call fcn.0063f6f2
add esp, 4
mov byte [ebp - 4], 0x1e
mov ecx, dword [0x733f5c]
push 1
push ebx
call fcn.00419fc0
jmp 0x43d8a3
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
lea eax, [ecx + 0x348]
mov ecx, dword [ecx + 0x20]
push eax
call fcn.00469860
add esp, 4
mov ecx, dword [0x733f5c]
test ecx, ecx
jne 0x43d9e3
push 0x734038
mov dword [ebp - 0x40], 0x734038
call fcn.0063fb1c
add esp, 4
test eax, eax
je 0x43d8d2
push eax
call fcn.0063f6f2
add esp, 4
mov byte [ebp - 4], 0x26
cmp dword [0x733f5c], 0
jne 0x43d9bb
push 0x3c
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
test esi, esi
je 0x43d9b3
mov ebx, dword [0x73402c]
test ebx, ebx
je 0x43d90e
lock inc dword [ebx + 4]
mov ebx, dword [0x73402c]
mov eax, dword [0x734028]
mov dword [esi], 0
mov dword [esi + 4], 0
test ebx, ebx
je 0x43d928
lock inc dword [ebx + 4]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], vtable.CSimpleStrArray.0
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0xa
mov dword [esi + 0x1c], vtable.CSimpleStrArray.0
mov dword [esi + 0x24], 0xffffffff
mov dword [esi + 0x20], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0xa
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov byte [ebp - 4], 0x2b
test ebx, ebx
je 0x43d9b5
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x43d9b5
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
or eax, 0xffffffff
lock xadd dword [ebx + 8], eax
jne 0x43d9b5
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
jmp 0x43d9b5
xor esi, esi
mov dword [0x733f5c], esi
push 0x734038
mov byte [ebp - 4], 0x2c
call fcn.0063fb41
add esp, 4
test eax, eax
je 0x43d9d9
push eax
call fcn.0063f6f2
add esp, 4
mov byte [ebp - 4], 0x1e
mov ecx, dword [0x733f5c]
mov eax, dword [ecx + 0x30]
mov dword [ecx + 0x34], eax
mov ecx, dword [0x733f58]
test ecx, ecx
jne 0x43daaf
push 0x734038
mov dword [ebp - 0x40], 0x734038
call fcn.0063fb1c
add esp, 4
test eax, eax
je 0x43da18
push eax
call fcn.0063f6f2
add esp, 4
mov byte [ebp - 4], 0x2d
cmp dword [0x733f58], 0
jne 0x43da87
push 0x198
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 0x2e
test esi, esi
je 0x43da80
sub esp, 8
mov ecx, esp
call fcn.004231e0
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [0x73402c]
test eax, eax
je 0x43da68
lock inc dword [eax + 4]
mov eax, dword [0x734028]
mov dword [ecx], eax
mov eax, dword [0x73402c]
mov dword [ecx + 4], eax
mov ecx, esi
call fcn.0041ae00
jmp 0x43da82
xor eax, eax
mov dword [0x733f58], eax
push 0x734038
mov byte [ebp - 4], 0x2f
call fcn.0063fb41
add esp, 4
test eax, eax
je 0x43daa5
push eax
call fcn.0063f6f2
add esp, 4
mov byte [ebp - 4], 0x1e
mov ecx, dword [0x733f58]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x38]
mov byte [ecx], 1
mov dword [ecx + 0x178], 0
mov eax, dword [ecx + 0x17c]
mov dword [ecx + 0x180], eax
mov eax, dword [ecx + 0x188]
mov dword [ecx + 0x18c], eax
lea eax, [ebx + 0x304]
mov dword [ecx + 0x14], 0
cmp esi, eax
jne 0x43db14
push dword [ebp - 0x28]
mov ecx, esi
call fcn.0047ccf0
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.0047cbf0
mov edx, dword [ebp - 0x1c]
lea eax, [ebx + 0x348]
mov ecx, dword [ebx + 0x20]
push eax
call fcn.00469860
add esp, 4
mov byte [ebp - 4], 1
or esi, 0xffffffff
mov edx, dword [ebp - 0x1c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43db35
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x43d602
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x43db56
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x20]
call ebx
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], esi
dec esi
test esi, esi
jg 0x43db72
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.00403b60
push 0x80004005
call fcn.00403b60
push 0x80004005
call fcn.00403b60
push 0x80004005
call fcn.00403b60
int3