Function at 0x4e8840
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x80
mov eax, dword [0x546560]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, str.Quick_Links
push ebp
push esi
test ecx, ecx
push edi
mov dword [esp + 0x14], eax
je 0x4e88af
mov edx, ecx
shr edx, 0x10
jne 0x4e887a
xor eax, eax
mov ax, cx
lea ecx, [esp + 0x14]
push eax
call fcn.00413c90
jmp 0x4e88af
push str.Quick_Links
call ebx
mov esi, eax
test esi, esi
je 0x4e88af
push esi
lea ecx, [esp + 0x18]
call fcn.00405530
test eax, eax
je 0x4e88af
mov edi, dword [esp + 0x14]
lea ecx, [esi + esi]
mov edx, ecx
mov esi, str.Quick_Links
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x546560]
mov ecx, str._State
test ecx, ecx
mov dword [esp + 0x28], eax
jne 0x4e88c5
xor eax, eax
jmp 0x4e88cc
push str._State
call ebx
push str._State
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.004059f0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
call fcn.00405440
lea ecx, [esp + 0x28]
call fcn.00405700
mov ecx, dword [esp + 0x24]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push str.Disable
push ecx
call fcn.0048dbb0
mov ecx, dword [0x546564]
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 0x14
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4e8946
add eax, 0xfffffff4
push eax
call ebp
test eax, eax
jg 0x4e8946
mov eax, dword [esp + 0x24]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
test esi, esi
je 0x4e8982
mov eax, dword [esp + 0x14]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4e8975
add eax, 0xfffffff4
push eax
call ebp
test eax, eax
jg 0x4e8975
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push ecx
mov edx, dword [eax - 0xc]
mov ecx, esp
test edx, edx
jl 0x4e89a4
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
push eax
call edi
jmp 0x4e89b6
mov edx, dword [0x546560]
mov dword [ecx], edx
mov eax, dword [esp + 0x18]
push eax
call fcn.00405920
lea ecx, [esp + 0x14]
push ecx
call fcn.0048e930
mov edx, dword [esp + 0x18]
add esp, 8
mov eax, dword [edx - 8]
test eax, eax
jne 0x4e8aa3
mov eax, dword [0x546560]
push ecx
mov ecx, 0x54b218
mov esi, esp
test ecx, ecx
mov dword [esp + 0x2c], eax
jne 0x4e89eb
xor eax, eax
jmp 0x4e89f2
push 0x54b218
call ebx
push 0x54b218
push eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.004059f0
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
call fcn.00405440
lea ecx, [esp + 0x2c]
call fcn.00405700
lea ecx, [esp + 0x40]
push ecx
call fcn.0048cab0
mov ecx, dword [esp + 0x18]
mov esi, eax
add esp, 8
mov eax, dword [esi]
cmp ecx, eax
je 0x4e8a78
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4e8a4c
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4e8a53
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4e8a63
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.00405870
jmp 0x4e8a78
lea ecx, [esp + 0x10]
call fcn.00412670
mov esi, dword [esi]
mov dword [esp + 0x10], esi
add esi, 0xfffffff4
push esi
call edi
mov eax, dword [esp + 0x3c]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4e8aa3
add eax, 0xfffffff4
push eax
call ebp
test eax, eax
jg 0x4e8aa3
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, 0x5481ec
test eax, eax
je 0x4e8c59
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x4e8c59
mov ecx, 0x553d98
test ecx, ecx
jne 0x4e8ad0
mov dword [esp + 0x24], ecx
jmp 0x4e8adf
push 0x553d98
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esi - 8]
lea ebp, [esi + edx*2]
cmp esi, ebp
jae 0x4e8c59
push 0x5481ec
push esi
call fcn.0053176f
add esp, 8
test eax, eax
je 0x4e8b1b
lea esi, [eax + ebx*2]
push 0x5481ec
push esi
inc edi
call fcn.0053176f
add esp, 8
test eax, eax
jne 0x4e8b05
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp esi, ebp
jb 0x4e8af3
test edi, edi
jle 0x4e8c59
lea ecx, [esp + 0x10]
call fcn.004055c0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
sub ebp, ebx
imul ebp, edi
mov eax, dword [esi - 8]
mov dword [esp + 0x28], eax
add ebp, eax
mov eax, dword [esi - 4]
mov dword [esp + 0x44], ebp
cmp eax, ebp
jl 0x4e8b62
cmp dword [esi - 0xc], 1
jle 0x4e8ba0
lea eax, [esi - 0xc]
push ebp
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], eax
call fcn.00405530
test eax, eax
je 0x4e8c59
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x10]
push eax
mov ecx, dword [eax + 4]
shl ecx, 1
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]
call fcn.00405590
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 8]
lea eax, [esi + eax*2]
cmp esi, eax
mov dword [esp + 0x40], eax
jae 0x4e8c56
push 0x5481ec
push esi
call fcn.0053176f
mov edi, eax
add esp, 8
test edi, edi
je 0x4e8c3b
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, edi
sub ecx, eax
mov eax, dword [esp + 0x28]
sar ecx, 1
sub eax, ecx
lea esi, [edx + edx]
sub eax, ebx
lea ecx, [edi + ebx*2]
lea ebp, [eax + eax]
lea eax, [esi + edi]
push ebp
push ecx
push eax
mov dword [esp + 0x54], eax
call fcn.00531870
mov ecx, esi
mov esi, 0x553d98
mov edx, ecx
mov eax, dword [esp + 0x30]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
sub eax, ebx
and ecx, 3
push 0x5481ec
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x58]
push esi
mov word [esi + ebp], 0
mov ebp, dword [esp + 0x3c]
add ebp, eax
mov dword [esp + 0x3c], ebp
call fcn.0053176f
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x4e8bc6
mov ebp, dword [esp + 0x44]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x40]
cmp esi, eax
jb 0x4e8bb2
mov esi, dword [esp + 0x10]
mov dword [esi - 8], ebp
lea ecx, [esp + 0x10]
push 0xa
lea edx, [esp + 0x74]
xor ebx, ebx
push ecx
push edx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
call fcn.004b5ed0
mov edi, dword [esp + 0xa4]
add esp, 0xc
mov ebp, 0x8a2
cmp dword [edi + 0x84], ebx
je 0x4e8cee
mov eax, dword [edi + 0x8c]
xor esi, esi
cmp eax, ebx
jle 0x4e8cd9
xor edi, edi
mov eax, dword [esp + 0x98]
mov ecx, edi
push ebx
add ecx, dword [eax + 0x88]
call fcn.004f1740
mov ecx, dword [esp + 0x98]
inc esi
add edi, 0x14
cmp esi, dword [ecx + 0x8c]
jl 0x4e8caf
mov edi, ecx
mov edx, dword [edi + 0x84]
push edx
call fcn.00531ee2
add esp, 4
mov dword [edi + 0x84], ebx
mov eax, dword [edi + 0x88]
cmp eax, ebx
je 0x4e8d07
push eax
call fcn.00531ee2
add esp, 4
mov dword [edi + 0x88], ebx
mov eax, dword [esp + 0x78]
mov dword [edi + 0x8c], ebx
cmp eax, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], ebx
jle 0x4e91b5
jmp 0x4e8d25
xor ebx, ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x70]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea edi, [eax*4]
mov eax, dword [edi + ecx]
cmp dword [eax - 0xc], ebx
jl 0x4e8d4e
mov dword [esp + 0x24], eax
add eax, 0xfffffff4
push eax
call esi
jmp 0x4e8d65
mov edx, dword [0x546560]
mov dword [esp + 0x24], edx
mov eax, dword [edi + ecx]
push eax
lea ecx, [esp + 0x28]
call fcn.00405920
mov ecx, dword [esp + 0x74]
mov eax, dword [edi + ecx]
cmp dword [eax - 0xc], ebx
jl 0x4e8d7d
mov dword [esp + 0x20], eax
add eax, 0xfffffff4
push eax
call esi
jmp 0x4e8d94
mov edx, dword [0x546560]
mov dword [esp + 0x20], edx
mov eax, dword [edi + ecx]
push eax
lea ecx, [esp + 0x24]
call fcn.00405920
mov ecx, dword [esp + 0x24]
mov eax, dword [0x546560]
mov ebx, dword [esp + 0x94]
xor esi, esi
push 0x2f
push esi
lea edx, [esp + 0x24]
push ecx
push edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], eax
call fcn.00518490
add esp, 0x10
test eax, eax
je 0x4e9175
mov eax, dword [0x546560]
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], eax
mov eax, 0x54b174
test eax, eax
je 0x4e8de8
push 0x54b174
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x54b174
push eax
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x3c]
call fcn.004059f0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x30]
push edx
call fcn.00405440
lea ecx, [esp + 0x2c]
call fcn.00405700
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x28]
push eax
mov eax, dword [eax - 8]
push eax
call fcn.00405a90
mov eax, dword [esp + 0x30]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4e8e58
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4e8e58
mov edx, dword [esp + 0x30]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x24]
lea edi, [esi + 1]
push 0x2f
push edi
lea ecx, [esp + 0x50]
push eax
push ecx
mov dword [esp + 0x3c], edi
call fcn.00518490
add esp, 0x10
test eax, eax
je 0x4e8f04
mov eax, dword [esp + 0x6c]
xor esi, esi
test eax, eax
jle 0x4e8eaf
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [edx + esi*4]
push eax
call fcn.00531809
add esp, 8
test eax, eax
je 0x4e8eaa
mov eax, dword [esp + 0x6c]
inc esi
cmp esi, eax
jl 0x4e8e86
jmp 0x4e8eaf
cmp esi, 0xffffffff
jne 0x4e8ef8
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov esi, eax
lea edx, [esp + 0x28]
push esi
push ecx
mov ecx, esp
push edx
call fcn.00405440
lea ecx, [esp + 0x6c]
call fcn.00529710
mov eax, dword [esp + 0x98]
lea edx, [esp + 0x1c]
push eax
push ebp
push ecx
mov ecx, esp
push edx
call fcn.00405440
push esi
push 0x10
push ebx
call fcn.004e85e0
add esp, 0x18
inc ebp
mov ebx, esi
jmp 0x4e913f
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + esi*4]
jmp 0x4e913f
push 0
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
push edx
call fcn.00405440
lea eax, [esp + 0x20]
push eax
call fcn.004e1d60
mov ecx, dword [0x546560]
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x54]
push 0
push edx
call fcn.005106b0
push 0
push 0x546814
lea ecx, [esp + 0x28]
call fcn.00405c70
mov edi, eax
cmp edi, 0xffffffff
je 0x4e9088
test edi, edi
jge 0x4e8f5d
xor eax, eax
jmp 0x4e8f6a
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx - 8]
cmp edi, ecx
jle 0x4e8f6a
mov eax, ecx
mov edx, dword [0x546560]
push 0
push 0
push eax
lea eax, [esp + 0x40]
lea ecx, [esp + 0x2c]
push eax
mov dword [esp + 0x44], edx
call fcn.004126b0
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x48]
call fcn.00405440
lea ecx, [esp + 0x34]
call fcn.00405700
push 0
push ecx
lea edx, [esp + 0x4c]
mov ecx, esp
push edx
call fcn.00405440
lea eax, [esp + 0x48]
push eax
call fcn.004e1d60
mov ecx, dword [esp + 0x24]
mov esi, eax
add esp, 0xc
mov eax, dword [esi]
cmp ecx, eax
je 0x4e900a
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x4e8fda
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x4e8fe1
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4e8ff1
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00405870
jmp 0x4e900a
lea ecx, [esp + 0x18]
call fcn.00412670
mov esi, dword [esi]
mov dword [esp + 0x18], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x40]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4e9039
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4e9039
mov eax, dword [esp + 0x40]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
mov ecx, dword [esp + 0x18]
push 0
push ecx
lea ecx, [esp + 0x64]
call fcn.005106b0
push eax
lea ecx, [esp + 0x58]
call fcn.00488ce0
lea ecx, [esp + 0x5c]
call fcn.0050fe40
inc edi
lea edx, [esp + 0x4c]
push edi
push edx
lea ecx, [esp + 0x28]
call fcn.0043d950
push eax
lea ecx, [esp + 0x3c]
call fcn.004129b0
lea ecx, [esp + 0x4c]
call fcn.00405700
lea ecx, [esp + 0x44]
call fcn.00405700
mov eax, dword [esp + 0x1c]
push eax
push ebp
push 0
push ebx
call dword [sym.imp.USER32.dll_AppendMenuW]
push 0
push ebp
push ebx
call fcn.004e8540
add esp, 0xc
lea ecx, [esp + 0x7c]
call fcn.004a67d0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x84]
call fcn.004129b0
push 1
lea ecx, [esp + 0x58]
call fcn.00510bb0
lea edx, [esp + 0x38]
lea ecx, [esp + 0x84]
push edx
mov dword [esp + 0x80], eax
call fcn.004129b0
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x8c]
push eax
call fcn.004129b0
sub esp, 0x14
lea edx, [esp + 0x90]
mov ecx, esp
push edx
call fcn.004a6800
mov eax, dword [esp + 0xac]
push ebp
lea ecx, [eax + 0x84]
call fcn.004f1380
lea ecx, [esp + 0x7c]
inc ebp
call fcn.004a70d0
lea ecx, [esp + 0x54]
call fcn.0050fe40
lea ecx, [esp + 0x38]
call fcn.00405700
lea ecx, [esp + 0x18]
call fcn.00405700
mov edi, dword [esp + 0x2c]
push 0x553dd8
lea ecx, [esp + 0x20]
call fcn.00433000
lea ecx, [esp + 0x48]
mov esi, edi
call fcn.00405700
mov ecx, dword [esp + 0x24]
push 0x2f
push esi
lea edx, [esp + 0x24]
push ecx
push edx
call fcn.00518490
add esp, 0x10
test eax, eax
jne 0x4e8dc7
lea ecx, [esp + 0x1c]
call fcn.00405700
lea ecx, [esp + 0x28]
call fcn.00405700
lea ecx, [esp + 0x20]
call fcn.00405700
lea ecx, [esp + 0x24]
call fcn.00405700
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x4e8d23
mov edi, dword [esp + 0x98]
mov esi, dword [edi + 0x8c]
lea ecx, [esp + 0x64]
call fcn.004f1810
lea ecx, [esp + 0x70]
call fcn.00405350
lea ecx, [esp + 0x10]
call fcn.00405700
lea ecx, [esp + 0x14]
call fcn.00405700
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret