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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x615516
mov eax, dword fs:[0]
push eax
sub esp, 0x118
push ebx
push esi
push edi
mov eax, dword [0x69e3d4]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x184]
mov ecx, ebx
call edx
lea esi, [ebx + 0x70c]
mov dword [ebx + 0x6f0], 1
mov dword [esp + 0x40], esi
call fcn.004821c0
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x49bdeb
xor eax, eax
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push eax
call fcn.00584a29
mov edi, eax
test edi, edi
mov dword [esp + 0x3c], edi
je 0x49bdd1
mov esi, dword [0x6bcebc]
test esi, esi
jne 0x49be2a
mov ecx, ebx
call fcn.00568b63
mov esi, eax
test esi, esi
jne 0x49be2a
call fcn.0056efb5
test eax, eax
je 0x49be28
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov esi, eax
jmp 0x49be2a
xor esi, esi
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x49be5c
push eax
call dword [sym.imp.user32.dll_GetParent]
push eax
call fcn.005680c4
push eax
push 0x6aab88
call fcn.0056ef6f
add esp, 8
test eax, eax
je 0x49be5c
mov eax, dword [eax + 0xe8]
test eax, eax
je 0x49be5c
mov esi, eax
test esi, esi
je 0x49be7b
movzx eax, word [ebx + 0x6e4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x20]
push eax
push ecx
push 0x117
push edx
call dword [sym.imp.user32.dll_SendMessageA]
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.user32.dll_GetMenuItemCount]
xor edi, edi
xor esi, esi
cmp eax, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], edi
jle 0x49c1d8
jmp 0x49beb0
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], esi
call fcn.0056d592
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
je 0x49c208
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x400
lea ecx, [esp + 0x1c]
mov dword [esp + 0x134], esi
mov esi, dword [esp + 0x40]
push ecx
push edi
mov ecx, esi
call fcn.00584aba
mov eax, dword [esi + 4]
lea edx, [esp + 0x44]
push edx
push 1
push edi
push eax
mov dword [esp + 0x54], 0x30
mov dword [esp + 0x7c], 0
mov dword [esp + 0x58], 0x17
call dword [sym.imp.user32.dll_GetMenuItemInfoA]
mov ecx, dword [esi + 4]
mov ebx, dword [esp + 0x54]
push 0x400
push edi
push ecx
mov dword [esp + 0x28], ebx
call dword [sym.imp.user32.dll_GetMenuState]
cmp dword [esp + 0x4c], 0x800
mov dword [esp + 0x30], eax
jne 0x49bf8e
cmp dword [esp + 0x24], 0
jne 0x49c197
cmp dword [esp + 0x20], 0
jne 0x49c197
mov edx, dword [esp + 0x38]
add edx, 0xffffffff
cmp edi, edx
je 0x49c197
mov ecx, dword [ebp + 8]
or eax, 0xffffffff
call fcn.00460f30
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 1
jmp 0x49c197
mov eax, dword [esp + 0x58]
test eax, eax
je 0x49bfbc
cmp dword [0x6bcec0], 0
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x2c], eax
je 0x49bfb8
lea esi, [esp + 0x18]
call fcn.0048f910
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
cmp dword [esi + 0x72c], 0
jne 0x49c092
cmp dword [ebp + 0x10], 0
jne 0x49c092
call fcn.0046d360
test eax, eax
jne 0x49c092
mov esi, ebx
call fcn.004681e0
test eax, eax
je 0x49c08f
call fcn.004681e0
test eax, eax
je 0x49c197
mov eax, ebx
call fcn.004574a0
test eax, eax
je 0x49c197
mov eax, dword [ebp + 8]
mov dword [eax + 0x6f0], 0
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
jle 0x49c197
push 0x26
push eax
call fcn.005a7472
add esp, 8
test eax, eax
je 0x49c197
mov ecx, dword [esp + 0x18]
sub eax, ecx
js 0x49c197
mov ecx, dword [ecx - 0xc]
add ecx, 0xffffffff
cmp eax, ecx
jge 0x49c197
lea ecx, [eax + 1]
lea eax, [esp + 0x18]
call fcn.00468d40
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x18], al
mov byte [esp + 0x19], 0
call dword [sym.imp.user32.dll_CharUpperA]
movsx ebx, byte [esp + 0x14]
mov eax, dword [esp + 0x40]
call fcn.004a2f50
mov edx, dword [esp + 0x1c]
mov dword [eax], edx
jmp 0x49c193
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
push 0
push 0xffffffffffffffff
push eax
push ebx
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.00482580
mov byte [esp + 0x130], 1
mov edi, 1
push 0
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], 0
call fcn.004797f0
mov ecx, ebx
call fcn.00479950
cmp eax, 0xffffffff
jne 0x49c0e3
mov dword [esp + 0x78], edi
push 0xffffffffffffffff
lea eax, [esp + 0x78]
mov edi, esi
call fcn.00460dd0
xor edi, edi
cmp eax, edi
jl 0x49c17a
mov ecx, esi
call fcn.00461d30
mov esi, eax
cmp dword [esi + 4], edi
je 0x49c10d
mov eax, dword [esi + 0x44]
jmp 0x49c110
mov eax, dword [esi + 0x40]
xor edx, edx
cmp eax, edi
mov eax, dword [0x6bce34]
setge dl
cmp eax, edi
mov dword [esi + 0x18], edx
je 0x49c12d
cmp ebx, dword [eax + 0x24]
jb 0x49c12d
cmp ebx, dword [eax + 0x28]
jbe 0x49c13b
test byte [esp + 0x30], 3
je 0x49c13b
or dword [esi + 0xc], 0x40000
push esi
push 0x6aac58
call fcn.0056ef6f
add esp, 8
cmp eax, edi
je 0x49c15e
mov ecx, dword [esp + 0x34]
mov edx, dword [eax]
mov edx, dword [edx + 0xc8]
push ecx
mov ecx, eax
call edx
test byte [esp + 0x30], 8
je 0x49c16c
or dword [esi + 0xc], 0x10000
test byte [esp + 0x4c], 0x40
je 0x49c17a
or dword [esi + 0xc], 0x20000000
lea ecx, [esp + 0x74]
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x130], 0
call fcn.00482690
mov edi, dword [esp + 0x28]
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49c1c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 1
xor esi, esi
cmp edi, dword [esp + 0x38]
mov dword [esp + 0x28], edi
jl 0x49beb0
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push 1
push esi
push ecx
call dword [sym.imp.user32.dll_GetMenuDefaultItem]
mov dword [ebx + 0x6d4], eax
mov eax, 1
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.004012f0
int3