Function at 0x4dcfe0
Capabilities:
Capture webcam image
Create process on windows
Get graphical window text
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x11c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x13c]
mov ebp, ecx
mov dword [edi], 0
call fcn.004e48d0
mov ecx, dword [ebp + 0xf0]
mov esi, dword [esp + 0x134]
test ecx, ecx
mov ebx, eax
je 0x4dd031
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x130]
push edi
push eax
push esi
push edx
call fcn.004a0c60
cmp dword [edi], 0
jne 0x4dee90
cmp esi, 0x8087
ja 0x4decb1
je 0x4dda92
cmp esi, 0x8059
ja 0x4dd966
je 0x4dd7df
cmp esi, 0x400
ja 0x4dd1e1
je 0x4dd0a5
sub esi, 0x6f
je 0x4dd08a
dec esi
jne case.default.0x4decd2
push 0x11
mov ecx, ebp
call fcn.004df0a0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
push 0
mov ecx, ebp
call fcn.004df0a0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, dword [ebp + 0xf0]
xor ebx, ebx
test ecx, ecx
je 0x4dd1d2
call fcn.004a15b0
mov ebx, eax
lea eax, [esp + 0xe8]
push eax
mov ecx, ebp
call fcn.004daa00
xor edi, edi
cmp eax, edi
je 0x4dd0d6
add eax, 4
jmp 0x4dd0d8
xor eax, eax
mov ecx, dword [eax]
push ebx
push ecx
lea ecx, [esp + 0x30]
call fcn.00510650
lea ecx, [esp + 0xe8]
call fcn.0050fe40
mov eax, dword [0x553dd0]
lea esi, [esp + 0x28]
mov ebp, dword [sym.imp.SHELL32.dll_SHGetMalloc]
lea edx, [esp + 0x2c]
neg esi
sbb esi, esi
and esi, edx
cmp eax, edi
jne 0x4dd117
push 0x553dd0
call ebp
jmp 0x4dd11d
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov eax, dword [0x553dd0]
mov ecx, dword [0x55dbd4]
mov dword [0x55dbd4], edi
push ecx
mov edx, dword [eax]
push eax
call dword [edx + 0x14]
mov eax, dword [0x553dd0]
cmp eax, edi
je 0x4dd154
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test eax, eax
jne 0x4dd14f
mov dword [0x553dd0], eax
jmp 0x4dd154
mov eax, dword [0x553dd0]
mov ecx, dword [esi]
mov dword [0x55dbd4], edi
cmp ecx, edi
je 0x4dd1c9
cmp eax, edi
jne 0x4dd16d
push 0x553dd0
call ebp
jmp 0x4dd173
mov edx, dword [eax]
push eax
call dword [edx + 4]
mov eax, dword [0x553dd0]
mov edx, dword [esi]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ebp, eax
mov eax, dword [esi]
cmp eax, edi
je 0x4dd1b0
mov eax, dword [0x553dd0]
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, dword [esi]
mov ecx, ebp
mov edx, ecx
mov edi, eax
shr ecx, 2
mov dword [0x55dbd4], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
mov eax, dword [0x553dd0]
cmp eax, edi
je 0x4dd1c9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test eax, eax
jne 0x4dd1c9
mov dword [0x553dd0], edi
lea ecx, [esp + 0x28]
call fcn.0050fe40
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
cmp esi, 0x804a
jne case.default.0x4decd2
mov edx, dword [ebp + 0x22c]
push 0
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x419
push edx
call esi
mov edx, dword [ebp + 0x22c]
lea ecx, [esp + 0xcc]
push ecx
push eax
push 0x41d
push edx
call esi
mov edx, dword [ebp + 0x22c]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
push 1
push 0x804a
push 0x403
push edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
call esi
mov ecx, dword [ebp + 0x22c]
lea eax, [esp + 0x4c]
push eax
push ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
xor edi, edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edi
call fcn.004d8230
mov edx, dword [0x546560]
push edi
lea eax, [esp + 0x18]
push edi
push eax
mov ecx, ebp
mov dword [esp + 0x20], edx
call fcn.004dbe30
mov eax, dword [esp + 0x14]
cmp dword [eax - 8], edi
jne 0x4dd2cf
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dd2b7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dd2b7
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea ecx, [esp + 0x28]
call fcn.004d8290
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
push edi
push eax
lea ecx, [esp + 0x38]
call fcn.005106b0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x34]
neg eax
sbb eax, eax
lea edx, [esp + 0x24]
and eax, ecx
lea ecx, [esp + 0x3c]
push edx
push ecx
mov eax, dword [eax]
lea ecx, [esp + 0x30]
push eax
call fcn.004d82d0
test al, al
je 0x4dd77a
lea esi, [ebp + 0x61c]
mov ecx, esi
call fcn.0050dae0
push 4
mov dword [ebp + 0x69c], ebp
mov dword [ebp + 0x668], 0xe0
call fcn.00531ba5
add esp, 4
cmp eax, edi
je 0x4dd335
mov dword [eax], edi
mov edi, eax
mov ebx, dword [esp + 0x3c]
lea ecx, [esp + 0x54]
mov dword [esp + 0x48], 0
call fcn.00420df0
test ebx, ebx
je 0x4dd369
cmp word [ebx], 0
jne 0x4dd369
mov eax, dword [0x554ad4]
test eax, eax
mov dword [esp + 0x48], eax
je 0x4dd381
mov edx, dword [eax]
push eax
call dword [edx + 4]
jmp 0x4dd381
mov eax, dword [0x554ad4]
lea edx, [esp + 0x48]
push edx
push 0x542354
mov ecx, dword [eax]
push 0
push ebx
push eax
call dword [ecx + 0x14]
lea ecx, [esp + 0x54]
call fcn.00424c80
mov ecx, edi
call fcn.0045f6e0
mov eax, dword [esp + 0x48]
mov ecx, edi
push eax
call fcn.00424ca0
lea ecx, [esp + 0x48]
call fcn.0045f6e0
mov edx, dword [ebp + 4]
mov ecx, dword [0x55e474]
mov dword [esp + 0x54], edx
lea eax, [esp + 0x54]
lea edx, [esp + 0xc4]
xor ebx, ebx
push eax
push edx
mov dword [esp + 0x60], ebx
call fcn.00483e70
mov eax, dword [eax]
mov dword [eax + 0x10], esi
mov eax, dword [ebp + 0x67c]
cmp eax, ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
jne 0x4dd3fb
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov dword [ebp + 0x67c], eax
mov eax, dword [ebp + 0x67c]
push esi
push eax
call fcn.004e8840
mov ebx, dword [sym.imp.USER32.dll_AppendMenuW]
add esp, 8
test eax, eax
jle 0x4dd427
mov ecx, dword [ebp + 0x67c]
push 0
push 0
push 0x800
push ecx
call ebx
lea eax, [esp + 0x30]
mov ecx, dword [esp + 0x24]
neg eax
sbb eax, eax
lea edx, [esp + 0x34]
mov edi, dword [edi]
and eax, edx
push ecx
mov eax, dword [eax]
push eax
call dword [sym.imp.SHELL32.dll_ILClone]
push eax
push edi
mov ecx, esi
call fcn.0050af00
mov edx, dword [ebp + 0x67c]
xor edi, edi
push edi
push edi
push 0x800
push edx
call ebx
mov dword [esp + 0x18], edi
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push esi
push 0x899
push ecx
mov dword [esp + 0x24], eax
mov ecx, esp
push str.Quick_Links
call fcn.00412740
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x67c]
push eax
push 0x10
push ecx
call fcn.004e85e0
add esp, 0x18
push esi
push 0x89a
push ecx
mov edx, esp
push 0x29
push edx
call fcn.004bc8d0
mov eax, dword [esp + 0x2c]
add esp, 8
push 0x8059
push edi
push eax
call fcn.004e85e0
add esp, 0x18
push esi
push 0x89b
push ecx
mov ecx, esp
push 0x2b
push ecx
call fcn.004bc8d0
mov edx, dword [esp + 0x2c]
add esp, 8
push 0x805b
push edi
push edx
call fcn.004e85e0
add esp, 0x18
push esi
push 0x89c
push ecx
mov eax, esp
push 0x88
push eax
call fcn.004bc8d0
mov ecx, dword [esp + 0x2c]
add esp, 8
push 0x805c
push edi
push ecx
call fcn.004e85e0
add esp, 0x18
push esi
push 0x89d
push ecx
mov edx, esp
push 0x2a
push edx
call fcn.004bc8d0
mov eax, dword [ebp + 0x67c]
add esp, 8
push 0x805a
push edi
push eax
call fcn.004e85e0
mov ecx, dword [ebp + 0x67c]
push ecx
call fcn.004864e0
mov eax, dword [ebp + 0x224]
mov edx, dword [ebp + 0x270]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
add esp, 0x1c
mov dword [ebp + 0x640], edi
mov dword [ebp + 0x63c], edx
push edi
push eax
mov dword [ebp + 0x69c], ebp
call ebx
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
push edi
push 0x128
push ecx
push edx
push eax
mov ecx, esi
call fcn.0050b770
mov esi, eax
mov eax, dword [ebp + 0x628]
cmp eax, edi
je 0x4dd595
mov esi, eax
mov ecx, dword [ebp + 0x224]
push 5
push ecx
call ebx
mov ecx, ebp
call fcn.004eb6b0
cmp esi, 0x898
jl 0x4dd757
cmp esi, 0x1068
jge 0x4dd757
mov edx, dword [ebp + 0x6a8]
xor eax, eax
test edx, edx
jle 0x4dd757
mov ecx, dword [ebp + 0x6a0]
cmp dword [ecx], esi
je 0x4dd5e6
inc eax
add ecx, 4
cmp eax, edx
jl 0x4dd5d5
jmp 0x4dd757
cmp eax, 0xffffffff
je 0x4dd757
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x6a4]
mov ecx, dword [eax + edx*4]
lea esi, [eax + edx*4]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x84]
lea edx, [esi + 4]
push edx
call fcn.00405440
lea eax, [esi + 8]
lea ecx, [esp + 0x88]
push eax
call fcn.00405440
lea ecx, [esi + 0xc]
push ecx
lea ecx, [esp + 0x90]
call fcn.00405440
add esi, 0x10
lea ecx, [esp + 0x90]
push esi
call fcn.00405440
mov edx, dword [0x546560]
mov eax, str.WREWTEWTSFSDFSADSF
test eax, eax
mov dword [esp + 0x38], edx
je 0x4dd692
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x4dd692
push esi
lea ecx, [esp + 0x3c]
call fcn.00405530
test eax, eax
je 0x4dd692
mov ecx, dword [esp + 0x38]
inc esi
push esi
push str.WREWTEWTSFSDFSADSF
push ecx
call fcn.00405400
add esp, 0xc
lea ecx, [esp + 0x38]
push 0xffffffffffffffff
call fcn.00405bb0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x88]
push edx
push eax
call fcn.00531809
mov edx, dword [0x546564]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x38]
sete bl
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dd6db
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dd6db
mov edx, dword [esp + 0x38]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
test bl, bl
je 0x4dd703
mov eax, dword [esp + 0x84]
push 0
push eax
call fcn.0053183e
mov ecx, dword [ebp + 4]
add esp, 4
push eax
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4dd727
mov edx, dword [ebp + 0x628]
lea eax, [esp + 0x80]
push edx
sub esp, 0x14
mov ecx, esp
push eax
call fcn.004a6800
mov ecx, dword [ebp + 0xf0]
call fcn.004a6a60
lea ecx, [esp + 0x90]
call fcn.00405700
lea ecx, [esp + 0x8c]
call fcn.00405700
lea ecx, [esp + 0x88]
call fcn.00405700
lea ecx, [esp + 0x84]
call fcn.00405700
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4dd768
lea ecx, [esp + 0x18]
call fcn.00447180
lea ecx, [esp + 0xdc]
call fcn.004add10
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x30]
call fcn.0050fe40
mov eax, dword [esp + 0x14]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dd7b2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dd7b2
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea ecx, [esp + 0x28]
call fcn.004d8290
mov eax, dword [ebp + 0x22c]
push 0
push 0x804a
push 0x403
push eax
call esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, dword [0x546560]
push 0
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], ecx
push 0
push edx
mov ecx, ebp
call fcn.004dbe30
mov eax, dword [0x55a1fc]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, 5
jae 0x4dd826
mov eax, dword [esp + 0x18]
push 5
push 0
push 0
push eax
push str.explore
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x4dd924
lea ecx, [esp + 0xf0]
call fcn.00529a80
mov ecx, dword [esp + 0x18]
push 0
push ecx
lea ecx, [esp + 0x30]
call fcn.005106b0
lea eax, [esp + 0x28]
mov ecx, dword [0x546560]
neg eax
sbb eax, eax
lea edx, [esp + 0x2c]
and eax, edx
mov edx, 0x553d9c
test edx, edx
mov eax, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x124], eax
je 0x4dd8bd
mov eax, edx
shr eax, 0x10
jne 0x4dd884
xor ecx, ecx
mov cx, dx
push ecx
lea ecx, [esp + 0x18]
call fcn.00413c90
jmp 0x4dd8bd
push 0x553d9c
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
test esi, esi
je 0x4dd8bd
push esi
lea ecx, [esp + 0x18]
call fcn.00405530
test eax, eax
je 0x4dd8bd
mov edi, dword [esp + 0x14]
lea ecx, [esi + esi]
mov eax, ecx
mov esi, 0x553d9c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
push ecx
push 0x4000
push ecx
mov ecx, esp
push 0x548484
call fcn.00412740
mov edx, dword [ebp + 4]
lea ecx, [esp + 0xfc]
push edx
call fcn.00529b10
mov eax, dword [esp + 0x14]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dd90f
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4dd90f
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea ecx, [esp + 0x28]
call fcn.0050fe40
lea ecx, [esp + 0xf0]
call fcn.00529ad0
mov eax, dword [esp + 0x18]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je case.default.0x4decd2
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg case.default.0x4decd2
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
add esi, 0xffff7fa6
cmp esi, 0xf
ja case.default.0x4decd2
xor eax, eax
mov al, byte [esi + 0x4deeb4]
jmp dword [eax*4 + 0x4deea0]
mov ecx, ebp
call fcn.004dc5b0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, dword [0x546560]
push 0
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ecx
push 0
push edx
mov ecx, ebp
call fcn.004dbe30
push 0
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
push eax
call fcn.00405440
mov ecx, ebp
call fcn.004e2e90
mov eax, dword [esp + 0x20]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dee8b
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dee8b
mov edx, dword [esp + 0x20]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, dword [ebp + 0xf0]
push 0x8069
call fcn.004a5e80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov eax, dword [0x546560]
push 0
lea ecx, [esp + 0x20]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x28], eax
call fcn.004dbe30
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je case.default.0x4decd2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg case.default.0x4decd2
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, ebp
call fcn.004dff80
mov ecx, dword [ebp + 0x220]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x8087
push 0x419
push ecx
call esi
lea edx, [esp + 0xcc]
push edx
push eax
mov eax, dword [ebp + 0x220]
push 0x41d
push eax
call esi
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x220]
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], edx
push eax
push ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
call dword [sym.imp.USER32.dll_CreatePopupMenu]
lea edx, [esp + 0xa4]
mov edi, eax
push 0x36
push edx
mov dword [esp + 0x28], edi
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
push eax
mov eax, dword [ebp + 0x210]
neg eax
sbb eax, eax
push 1
and al, 0xf8
add eax, 8
push eax
push edi
call esi
mov eax, dword [esp + 0xa4]
mov edx, dword [0x546564]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4ddb66
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4ddb66
mov edx, dword [esp + 0xa4]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea eax, [esp + 0xc0]
push 0x37
push eax
call fcn.004bc8d0
mov ecx, dword [ebp + 0x20c]
mov eax, dword [eax]
add esp, 8
neg ecx
sbb ecx, ecx
push eax
and ecx, 8
push 2
push ecx
push edi
call esi
mov eax, dword [esp + 0xc0]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4ddbbf
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4ddbbf
mov eax, dword [esp + 0xc0]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
lea ecx, [esp + 0xac]
push 0x38
push ecx
call fcn.004bc8d0
mov edx, dword [ebp + 0x208]
mov eax, dword [eax]
add esp, 8
neg edx
sbb edx, edx
push eax
and edx, 8
push 3
push edx
push edi
call esi
mov eax, dword [esp + 0xac]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4ddc18
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4ddc18
mov edx, dword [esp + 0xac]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea eax, [esp + 0xa0]
push 0x9e
push eax
call fcn.004bc8d0
mov ecx, dword [ebp + 0x218]
mov eax, dword [eax]
add esp, 8
neg ecx
sbb ecx, ecx
push eax
and ecx, 8
push 4
push ecx
push edi
call esi
mov eax, dword [esp + 0xa0]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4ddc74
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4ddc74
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
push 0x553d98
push 0
push 0x800
push edi
call esi
lea ecx, [esp + 0xb8]
push 0x39
push ecx
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
push eax
push 0x805e
push 0
push edi
call esi
mov eax, dword [esp + 0xb8]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4ddcd3
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4ddcd3
mov eax, dword [esp + 0xb8]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
lea ecx, [esp + 0xbc]
push 0x87
push ecx
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
push eax
push 0xe120
push 0
push edi
call esi
mov eax, dword [esp + 0xbc]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4ddd26
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4ddd26
mov eax, dword [esp + 0xbc]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
lea ecx, [esp + 0x3c]
push 0x9c41
push ecx
call fcn.004bc8d0
mov eax, dword [0x546560]
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, 0x800
mov edx, dword [eax - 0xc]
lea ebx, [eax - 0xc]
cmp edx, 1
jg 0x4ddd56
cmp dword [eax - 4], ecx
jge 0x4dddb9
mov eax, dword [eax - 8]
cmp eax, 0x800
mov dword [esp + 0x24], eax
jle 0x4ddd66
mov ecx, eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00405530
test eax, eax
je 0x4dddb9
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
lea esi, [ebx + 0xc]
lea ecx, [eax + eax + 2]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [ecx - 8], eax
mov eax, dword [0x546564]
cmp ebx, eax
je 0x4dddb5
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dddb5
push ebx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x264]
push 0x800
push eax
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea ecx, [esp + 0x18]
call fcn.004055c0
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [esp + 0x20]
mov dword [ecx - 8], eax
mov edx, dword [esp + 0x18]
mov word [edx + eax*2], si
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov edx, dword [ecx - 8]
push eax
neg edx
sbb edx, edx
push 0x40
and edx, 0xfffffffd
add edx, 3
or dh, 4
push edx
push esi
push edi
call dword [sym.imp.USER32.dll_InsertMenuW]
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push str.Fav_Filter
push 0x546aec
call fcn.0048dbb0
add esp, 0x14
cmp eax, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], esi
jle 0x4de442
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ecx, esi
mov eax, dword [0x546560]
push ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
push 0x547b34
push eax
call fcn.00405cb0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x50]
push ecx
push edx
lea eax, [esp + 0xc8]
push str.Fav_Filter
push eax
call fcn.0048def0
mov ecx, dword [esp + 0x2c]
mov esi, eax
add esp, 0x1c
mov eax, dword [esi]
cmp ecx, eax
je 0x4ddedc
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4ddeac
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4ddeb3
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4ddec3
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00405870
jmp 0x4ddedc
lea ecx, [esp + 0x10]
call fcn.00412670
mov esi, dword [esi]
mov dword [esp + 0x10], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0xb4]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4ddf0d
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4ddf0d
mov eax, dword [esp + 0xb4]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
mov ecx, dword [esp + 0x10]
push 0x5c
push 3
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.00518490
add esp, 0x10
test eax, eax
je 0x4de378
lea eax, [esp + 0x80]
mov ecx, 7
mov edx, dword [0x546560]
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x4ddf37
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
xor edi, edi
lea esi, [esp + 0x80]
mov ecx, dword [esp + 0x10]
mov eax, dword [0x546560]
push 0x5c
push edi
lea edx, [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x24], eax
call fcn.00518490
mov eax, dword [esi]
mov ecx, dword [esp + 0x24]
add esp, 0x10
cmp eax, ecx
je 0x4ddfc0
mov edx, dword [eax - 0xc]
test edx, edx
jge 0x4ddf90
mov edx, dword [0x546564]
add eax, 0xfffffff4
cmp eax, edx
jne 0x4ddf97
mov eax, dword [ecx - 0xc]
test eax, eax
jge 0x4ddfa5
mov eax, dword [ecx - 8]
push ecx
push eax
mov ecx, esi
call fcn.00405870
jmp 0x4ddfbc
mov ecx, esi
call fcn.00412670
mov eax, dword [esp + 0x14]
mov dword [esi], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [esp + 0x14]
mov eax, dword [0x546564]
lea edx, [ecx - 0xc]
cmp edx, eax
je 0x4ddfe6
add ecx, 0xfffffff4
push ecx
call ebx
test eax, eax
jg 0x4ddfe6
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
inc edi
add esi, 4
cmp edi, 3
jl 0x4ddf54
mov ecx, dword [0x546560]
mov edx, 0x54732c
test edx, edx
mov dword [esp + 0x14], ecx
jne 0x4de010
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
xor eax, eax
jmp 0x4de01d
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x54732c
call esi
push 0x54732c
push eax
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x1c]
push eax
mov eax, dword [eax - 8]
push eax
call fcn.004059f0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x64]
call fcn.00405440
lea ecx, [esp + 0x14]
call fcn.00405700
mov edx, dword [0x546560]
mov eax, 0x546f04
test eax, eax
mov dword [esp + 0x7c], edx
je 0x4de066
push 0x546f04
call esi
push 0x546f04
push eax
mov eax, dword [esp + 0x68]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x8c]
call fcn.004059f0
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x5c]
push edx
call fcn.00405440
lea ecx, [esp + 0x7c]
call fcn.00405700
mov eax, dword [0x546560]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x60]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x7c]
push edx
call fcn.004059f0
lea eax, [esp + 0x70]
lea ecx, [esp + 0x78]
push eax
call fcn.00405440
lea ecx, [esp + 0x70]
call fcn.00405700
mov ecx, dword [0x546560]
mov edx, 0x546f04
test edx, edx
mov dword [esp + 0x64], ecx
jne 0x4de0ed
xor eax, eax
jmp 0x4de0f4
push 0x546f04
call esi
push 0x546f04
push eax
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x6c]
push eax
mov eax, dword [eax - 8]
push eax
call fcn.004059f0
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x6c]
call fcn.00405440
lea ecx, [esp + 0x64]
call fcn.00405700
mov edx, dword [0x546560]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], edx
push eax
mov eax, dword [eax - 8]
push eax
mov eax, dword [esp + 0x70]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x7c]
call fcn.004059f0
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x74]
push edx
call fcn.00405440
lea ecx, [esp + 0x6c]
call fcn.00405700
mov eax, dword [0x546560]
mov ecx, 0x546f04
test ecx, ecx
mov dword [esp + 0xc4], eax
jne 0x4de17e
xor eax, eax
jmp 0x4de185
push 0x546f04
call esi
push 0x546f04
push eax
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0xcc]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.004059f0
lea eax, [esp + 0xc4]
lea ecx, [esp + 0x9c]
push eax
call fcn.00405440
lea ecx, [esp + 0xc4]
call fcn.00405700
mov ecx, dword [0x546560]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x4c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0xa0]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x58]
push eax
call fcn.004059f0
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x58]
call fcn.00405440
lea ecx, [esp + 0x4c]
call fcn.00405700
mov eax, dword [esp + 0x9c]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4de233
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de233
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x74]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de25e
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de25e
mov edx, dword [esp + 0x74]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x68]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de289
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de289
mov edx, dword [esp + 0x68]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x78]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de2b4
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de2b4
mov edx, dword [esp + 0x78]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x5c]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de2df
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de2df
mov edx, dword [esp + 0x5c]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x60]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de30a
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de30a
mov edx, dword [esp + 0x60]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add ecx, 0x3e8
push eax
push ecx
push 0x400
push esi
push edx
call dword [sym.imp.USER32.dll_InsertMenuW]
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
inc esi
lea ecx, [eax - 0xc]
mov dword [esp + 0x24], esi
cmp ecx, edx
je 0x4de35f
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x4de35f
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea esi, [esp + 0x9c]
mov edi, 7
sub esi, 4
mov ecx, esi
call fcn.00405700
dec edi
jne 0x4de36b
mov eax, dword [esp + 0x44]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de3ab
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4de3b1
mov edx, dword [esp + 0x44]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
jmp 0x4de3b1
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x10]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de3dc
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4de3dc
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de407
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4de407
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
inc ecx
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x4dde4c
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4de43e
mov edi, dword [esp + 0x20]
push 0x553d98
push 0
push 0xc00
push eax
push edi
call dword [sym.imp.USER32.dll_InsertMenuW]
jmp 0x4de442
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x220]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0x8087
push 0x403
push eax
call ebx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0x50]
push 0x12a
push edx
push eax
push edi
call fcn.0052b0d0
mov ecx, dword [ebp + 0x220]
push 0
push 0x8087
push 0x403
push ecx
mov esi, eax
call ebx
test esi, esi
je 0x4dec35
cmp esi, 3
jne 0x4de4b1
mov eax, dword [ebp + 0x208]
xor edx, edx
test eax, eax
sete dl
mov dword [ebp + 0x208], edx
jmp 0x4de531
cmp esi, 4
jne 0x4de4cb
mov ecx, dword [ebp + 0x218]
xor eax, eax
test ecx, ecx
sete al
mov dword [ebp + 0x218], eax
jmp 0x4de531
cmp esi, 2
jne 0x4de4e5
mov eax, dword [ebp + 0x20c]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp + 0x20c], ecx
jmp 0x4de531
cmp esi, 1
jne 0x4de4ff
mov eax, dword [ebp + 0x210]
xor edx, edx
test eax, eax
sete dl
mov dword [ebp + 0x210], edx
jmp 0x4de531
cmp esi, 0x805e
jne 0x4de517
mov eax, dword [ebp + 4]
push 0
push esi
push 0x111
push eax
call ebx
jmp 0x4de531
cmp esi, 0xe120
jne 0x4de531
mov ecx, dword [ebp + 0x264]
push 0x553d98
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, ebp
call fcn.004e4520
push 0
mov ecx, ebp
call fcn.004ea200
mov ecx, ebp
call fcn.004e4870
cmp esi, 0x40
jne 0x4de7d2
mov eax, dword [0x546560]
mov ecx, 0x800
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
mov edx, dword [eax - 0xc]
lea ebx, [eax - 0xc]
cmp edx, 1
jg 0x4de573
cmp dword [eax - 4], ecx
jge 0x4de5d6
mov eax, dword [eax - 8]
cmp eax, 0x800
mov dword [esp + 0x30], eax
jle 0x4de583
mov ecx, eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00405530
test eax, eax
je 0x4de5d6
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
lea esi, [ebx + 0xc]
lea ecx, [eax + eax + 2]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov dword [ecx - 8], eax
mov eax, dword [0x546564]
cmp ebx, eax
je 0x4de5d2
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4de5d2
push ebx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [ebp + 0x264]
push 0x800
push eax
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea ecx, [esp + 0x10]
call fcn.004055c0
mov eax, dword [esp + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
call edi
mov ecx, dword [esp + 0x10]
push ecx
mov dword [ecx - 8], eax
mov edx, dword [esp + 0x14]
mov esi, esp
mov word [edx + eax*2], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x4de630
mov dword [esi], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x4de64e
mov ecx, dword [0x546560]
mov dword [esi], ecx
mov eax, dword [esp + 0x14]
test eax, eax
mov ebx, eax
je 0x4de645
push eax
call edi
push ebx
push eax
mov ecx, esi
call fcn.00405870
lea edx, [esp + 0xac]
mov ecx, ebp
push edx
call fcn.004ea520
mov ecx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esi]
cmp ecx, eax
je 0x4de6ad
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4de67d
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4de684
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4de694
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x18]
call fcn.00405870
jmp 0x4de6ad
lea ecx, [esp + 0x10]
call fcn.00412670
mov esi, dword [esi]
mov dword [esp + 0x10], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0xa8]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de6e2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4de6e2
mov edx, dword [esp + 0xa8]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4de773
mov ebx, dword [ebp + 0x210]
mov ecx, dword [ebp + 0x20c]
push eax
mov eax, dword [ebp + 0x208]
xor edx, edx
push eax
test ebx, ebx
sete dl
push ecx
push edx
lea eax, [esp + 0x2c]
push str._d_d_d_s
push eax
call fcn.00405cb0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push str.Fav_Filter
push 0x546aec
call fcn.0048dbb0
add esp, 0x2c
mov esi, eax
lea ecx, [esp + 0x10]
push esi
push 0x547b34
push ecx
call fcn.00405cb0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
push 0
push edx
push eax
push str.Fav_Filter
call fcn.0048dec0
inc esi
push 0
push esi
push str.Fav_Filter
push 0x546aec
call fcn.0048db30
add esp, 0x2c
mov eax, dword [esp + 0x1c]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de7a2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4de7a2
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4debd5
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4debd5
mov edx, dword [esp + 0x10]
jmp 0x4debc9
cmp esi, 0x3e8
jl 0x4debd5
cmp esi, 0x4b0
jg 0x4debd5
mov eax, dword [0x546560]
add esi, 0xfffffc18
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], eax
push esi
lea eax, [esp + 0x20]
push 0x547b34
push eax
call fcn.00405cb0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0xc4]
push str.Fav_Filter
push eax
call fcn.0048def0
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 0x1c
mov esi, dword [edi]
cmp eax, esi
je 0x4de8a7
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4de84c
mov ecx, dword [0x546564]
add eax, 0xfffffff4
cmp eax, ecx
jne 0x4de853
mov eax, dword [esi - 0xc]
test eax, eax
jge 0x4de88e
mov ebx, dword [esi - 8]
lea ecx, [esp + 0x10]
push ebx
call fcn.00405660
test eax, eax
je 0x4de8a7
mov edi, dword [esp + 0x10]
lea eax, [ebx + ebx]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov dword [ecx - 8], ebx
mov edx, dword [esp + 0x10]
mov word [edx + eax], 0
jmp 0x4de8a7
lea ecx, [esp + 0x10]
call fcn.00412670
mov edi, dword [edi]
mov dword [esp + 0x10], edi
add edi, 0xfffffff4
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0xb0]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de8dc
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4de8dc
mov edx, dword [esp + 0xb0]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea eax, [esp + 0x80]
mov ecx, 7
mov edx, dword [0x546560]
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x4de8e8
xor edi, edi
lea ebx, [esp + 0x80]
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x10]
mov eax, dword [0x546560]
push 0x5c
push edi
lea edx, [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x24], eax
call fcn.00518490
mov ecx, dword [ebx]
mov eax, dword [esp + 0x24]
add esp, 0x10
cmp ecx, eax
je 0x4de9b0
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4de943
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4de94a
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4de995
mov esi, eax
mov eax, dword [eax - 8]
push eax
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.00405660
test eax, eax
je 0x4de9ac
mov eax, dword [esp + 0x30]
mov edi, dword [ebx]
lea ecx, [eax + eax]
mov dword [esp + 0x30], ecx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx]
mov edi, dword [esp + 0x24]
mov dword [ecx - 8], eax
mov edx, dword [ebx]
mov eax, dword [esp + 0x30]
mov word [edx + eax], 0
mov eax, dword [esp + 0x14]
jmp 0x4de9b0
mov ecx, ebx
call fcn.00412670
mov eax, dword [esp + 0x14]
mov dword [ebx], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x14]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4de9db
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4de9db
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
inc edi
add ebx, 4
cmp edi, 4
mov dword [esp + 0x24], edi
jl 0x4de903
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4deb3f
mov ecx, dword [esp + 0x80]
push ecx
call fcn.0053183e
mov edx, dword [esp + 0x88]
neg eax
sbb eax, eax
push edx
inc eax
mov dword [ebp + 0x210], eax
call fcn.0053183e
mov dword [ebp + 0x20c], eax
mov eax, dword [esp + 0x90]
push eax
call fcn.0053183e
lea ebx, [ebp + 0x21c]
mov dword [ebp + 0x208], eax
mov eax, dword [esp + 0x98]
add esp, 0xc
mov ecx, dword [ebx]
cmp ecx, eax
je 0x4deac4
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4dea66
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4dea6d
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4deaaa
mov edi, dword [eax - 8]
mov ecx, ebx
push edi
mov esi, eax
mov dword [esp + 0x34], edi
call fcn.00405660
test eax, eax
je 0x4deac4
lea eax, [edi + edi]
mov edi, dword [ebx]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x30]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx]
mov dword [ecx - 8], edx
mov ecx, dword [ebx]
mov word [ecx + eax], 0
jmp 0x4deac4
mov ecx, ebx
call fcn.00412670
mov eax, dword [esp + 0x8c]
mov dword [ebx], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp + 0xf0]
mov dword [ebp + 0x214], 1
mov edx, dword [ebp + 0x208]
add eax, 0x164
mov dword [eax], edx
mov ecx, dword [ebp + 0x20c]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 0x210]
mov dword [eax + 8], edx
mov ecx, dword [ebp + 0x214]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp + 0x218]
lea ecx, [ebp + 0x21c]
mov dword [eax + 0x10], edx
push ecx
lea ecx, [eax + 0x14]
call fcn.004129b0
mov edx, dword [esp + 0x8c]
mov eax, dword [ebp + 0x264]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [ebp + 0x214]
push 0
push 0
push ecx
mov ecx, dword [ebp + 0xf0]
call fcn.004a7af0
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea esi, [esp + 0x9c]
mov ebx, 7
mov eax, dword [esi - 4]
mov ecx, dword [0x546564]
sub esi, 4
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4deb7c
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4deb7c
mov eax, dword [esi]
sub eax, 0xc
push eax
call fcn.00531732
add esp, 4
dec ebx
jne 0x4deb51
mov eax, dword [esp + 0x10]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4debaa
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4debaa
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4debd5
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4debd5
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [ebp + 0xf0]
mov ecx, dword [ebp + 0x208]
add eax, 0x164
mov dword [eax], ecx
mov edx, dword [ebp + 0x20c]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x210]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x214]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp + 0x218]
lea edx, [ebp + 0x21c]
mov dword [eax + 0x10], ecx
push edx
lea ecx, [eax + 0x14]
call fcn.004129b0
mov eax, dword [ebp + 0x264]
push 0x105
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_RedrawWindow]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dec64
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dec64
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x3c]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4dec93
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4dec93
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
test edi, edi
je case.default.0x4decd2
push edi
call dword [sym.imp.USER32.dll_DestroyMenu]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
cmp esi, 0xa773
ja 0x4dedb1
je 0x4ded6d
add esi, 0xffff7b75
cmp esi, 3
ja case.default.0x4decd2
jmp dword [esi*4 + 0x4deec4]
push 0
push 0x7029
push 0x111
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
push 0
push 0x702a
push 0x111
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
push 0
push 0x702b
push 0x111
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
push 0
push 0x702c
push 0x111
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, dword [ebp + 0x420]
xor eax, eax
test ecx, ecx
sete al
push 0
mov dword [ebp + 0x420], eax
push eax
mov eax, dword [ebp + 0x40]
push str.show_tree
push eax
call fcn.0048db30
mov ecx, dword [ebp + 0x420]
add esp, 0x10
push ecx
mov ecx, ebp
call fcn.004ecc60
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
sub esi, 0xa775
je 0x4dee78
sub esi, 0x10a92
je 0x4deddd
sub esi, 2
jne case.default.0x4decd2
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov ecx, dword [ebp + 4]
mov edx, dword [0x546560]
lea eax, [esp + 0x20]
mov dword [esp + 0x20], edx
push eax
push 1
push 0
push ecx
call fcn.004e4940
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x20]
jne 0x4dee3e
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je case.default.0x4decd2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg case.default.0x4decd2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je case.default.0x4decd2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg case.default.0x4decd2
mov edx, dword [esp + 0x20]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10
push 1
mov ecx, ebp
call fcn.004ea880
test eax, eax
je 0x4dee8b
mov dword [edi], 1
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret 0x10