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

Disassembly:
push 0xffffffffffffffff
push 0x827b3e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8ac
push ebx
push ebp
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 1
push 0x952918
lea ecx, [esp + 0x114]
mov dword [esp + 0x18], eax
call fcn.007a4753
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x8c4], 0
call fcn.00642590
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x28c], ecx
lea ecx, [esp + 0x290]
mov byte [esp + 0x8c8], 1
call fcn.00644a10
lea edx, [esp + 0x288]
lea eax, [esp + 0xfc]
push edx
push eax
mov ecx, 0x952938
mov byte [esp + 0x8cc], 2
call fcn.00643c70
mov esi, dword [eax]
lea ecx, [esp + 0x28c]
mov byte [esp + 0x8c4], 1
call fcn.00642780
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x8c4], 0
call fcn.00642780
mov al, byte [esp + 0x8d4]
test al, al
mov byte [esi + 0x50], al
je 0x64002a
mov eax, dword [esi + 0x34]
mov edi, dword [sym.imp.USER32.dll_IsMenu]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 0x34]
cmp eax, ecx
je 0x63f4cf
mov ecx, dword [eax + 0xc]
push ecx
call edi
test eax, eax
je 0x63f4b0
lea ecx, [esp + 0x1c]
call fcn.006436a0
mov eax, dword [esp + 0x1c]
jmp 0x63f4ca
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
push eax
lea ecx, [esi + 0x30]
call fcn.00643220
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
cmp eax, dword [esi + 0x34]
jne 0x63f497
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 0x44]
cmp eax, ecx
je 0x63f517
mov ecx, dword [eax + 0xc]
push ecx
call edi
test eax, eax
je 0x63f4f8
lea ecx, [esp + 0x20]
call fcn.00643c20
mov eax, dword [esp + 0x20]
jmp 0x63f512
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x14]
push edx
push eax
lea ecx, [esi + 0x40]
call fcn.006437a0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
cmp eax, dword [esi + 0x44]
jne 0x63f4df
mov ebp, dword [esp + 0x8d0]
push ebp
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov dword [esp + 0x24], eax
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x64]
mov dword [esp + 0x5c], 0x30
mov dword [esp + 0x60], 0x16
rep stosd dword es:[edi], eax
call fcn.007d7ff0
test eax, eax
je 0x63f558
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x63f55a
xor eax, eax
push eax
lea ecx, [esp + 0xa4]
call fcn.007da5c7
mov esi, dword [esp + 0xa4]
push 0x11
mov byte [esp + 0x8c8], 3
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 0x1a4]
mov edi, eax
call fcn.00424f40
mov dword [esp + method.CFont.virtual_0], vtable.CFont.0
push edi
push esi
lea ecx, [esp + 0x198]
mov byte [esp + 0x8cc], 4
mov dword [esp + 0x198], 0x874d18
call fcn.0064b5c0
mov ecx, dword [esp + 0xa8]
lea eax, [esp + 0x3f4]
push eax
push ecx
mov byte [esp + 0x8cc], 5
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
mov edx, dword [esp + 0x3f4]
lea eax, [edx + 2]
cmp eax, 0x12
jg 0x63f5ea
mov eax, 0x12
mov esi, dword [esp + 0x8cc]
xor edi, edi
lea ebx, [eax + 4]
cmp esi, edi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x2c], edi
je 0x63f707
mov al, byte [esp + 0x8d8]
test al, al
jne 0x63f707
push 0x87aea0
mov ecx, esi
call fcn.007d883f
test eax, eax
je 0x63f6bf
push edi
mov ecx, esi
call fcn.007e1a6e
test eax, eax
je 0x63f6bf
mov eax, dword [eax + 0x1c]
push edi
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.007d7c31
test eax, eax
je 0x63f658
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x63f6bf
mov ecx, dword [esp + 0x10]
lea esi, [esp + 0xa0]
mov dword [esp + 0xc4], ecx
mov ecx, 5
lea edi, [esp + 0xc8]
lea edx, [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x54]
push edx
push eax
mov ecx, 0x952908
call fcn.00646490
lea ecx, [esp + 0x58]
lea edx, [esp + 0x54]
push ecx
push edx
lea ecx, [esp + 0x94]
call fcn.0068c2a0
mov eax, dword [esp + 0x8c]
add eax, 0x14
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
jmp 0x640002
push 0x87b3a8
mov ecx, esi
call fcn.007d883f
test eax, eax
je 0x63f6d6
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x63f700
mov ecx, esi
call fcn.007d53e0
mov esi, eax
test esi, esi
je 0x63f707
push 0x87ae78
mov ecx, esi
call fcn.007d883f
test eax, eax
je 0x63f6fc
mov ecx, esi
call fcn.007d53e0
mov esi, eax
test esi, esi
je 0x63f707
add esi, 0x6c
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x24]
xor esi, esi
test eax, eax
mov dword [esp + 0x14], esi
jle 0x63ff7d
mov ebx, 6
mov cx, word [0x951210]
xor eax, eax
mov word [esp + 0x4bc], cx
mov ecx, 0x7f
lea edi, [esp + 0x4be]
lea edx, [esp + 0x4bc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x5c]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x60]
push eax
push 1
and edx, 0xffffffdf
push esi
push ebp
mov dword [esp + 0x94], 0xff
mov dword [esp + 0x70], edx
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
mov eax, dword [esp + 0x64]
test ah, 1
jne 0x63feee
mov cl, byte [esp + 0x8d8]
test cl, cl
je 0x63f792
test al, 4
jne 0x63feee
or ah, 1
test cl, cl
mov dword [esp + 0x64], eax
je 0x63f81a
lea ecx, [esp + 0x4bc]
xor eax, eax
push ecx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 0x3e8
mov dword [esp + 0xc4], eax
call fcn.007ac4d2
mov ecx, dword [esp + 0xa8]
add esp, 4
lea edx, [esp + 0xb4]
push 0x420
push edx
push eax
lea eax, [esp + 0x4c8]
push eax
push ecx
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
sub edx, eax
mov eax, dword [esp + 0x60]
and edx, 0xffff
shl edx, 0x10
or al, 0x20
mov dword [esp + 0x7c], edx
mov dword [esp + 0x60], eax
lea eax, [esp + 0x5c]
push eax
push 1
push esi
push ebp
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov eax, dword [esp + 0x64]
test ah, 8
jne 0x63feee
lea ecx, [esp + 0x4bc]
push ecx
lea ecx, [esp + 0x38]
call fcn.007d765b
mov eax, dword [esp + 0x70]
mov byte [esp + 0x8c4], bl
test eax, eax
je 0x63f993
lea ecx, [esp + 0x430]
call fcn.00642590
mov edx, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x2d8]
mov byte [esp + 0x8c8], 7
mov dword [esp + 0x2d4], edx
call fcn.00644a10
lea eax, [esp + 0x2d0]
lea ecx, [esp + 0xf4]
push eax
push ecx
mov ecx, 0x952938
mov byte [esp + 0x8cc], 8
call fcn.00645b60
lea edx, [esp + 0xf8]
lea eax, [esp + 0xf4]
push edx
push eax
lea ecx, [esp + 0x178]
call fcn.0068c2a0
mov esi, dword [esp + 0x170]
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x8c4], 7
call fcn.00642780
lea ecx, [esp + 0x430]
mov byte [esp + 0x8c4], bl
call fcn.00642780
mov ecx, dword [0x94c1a8]
add esi, 0x30
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x70]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xa0]
mov byte [esp + 0x8c8], 9
mov dword [esp + 0x9c], edx
call fcn.007d7354
lea ecx, [esp + 0x98]
lea edx, [esp + 0xec]
push ecx
push edx
mov ecx, esi
mov byte [esp + 0x8cc], 0xa
call fcn.00645390
lea eax, [esp + 0xf0]
lea ecx, [esp + 0xec]
push eax
push ecx
lea ecx, [esp + 0x190]
call fcn.0068c2a0
mov esi, dword [esp + 0x188]
lea ecx, [esp + 0x9c]
mov byte [esp + 0x8c4], 9
call fcn.007d75e7
lea ecx, [esp + 0x18]
mov byte [esp + 0x8c4], bl
call fcn.007d75e7
lea edx, [esp + 0x34]
push edx
jmp 0x63faba
mov esi, dword [esp + 0x6c]
lea ecx, [esp + 0x288]
call fcn.00642590
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x364], ecx
lea ecx, [esp + 0x368]
mov byte [esp + 0x8c8], 0xb
call fcn.00644a10
lea edx, [esp + 0x360]
lea eax, [esp + 0xe4]
push edx
push eax
mov ecx, 0x952938
mov byte [esp + 0x8cc], 0xc
call fcn.00645b60
lea ecx, [esp + 0xe8]
lea edx, [esp + 0xe4]
push ecx
push edx
lea ecx, [esp + 0x188]
call fcn.0068c2a0
mov edi, dword [esp + 0x180]
lea ecx, [esp + 0x364]
mov byte [esp + 0x8c4], 0xb
call fcn.00642780
lea ecx, [esp + 0x288]
mov byte [esp + 0x8c4], bl
call fcn.00642780
mov eax, dword [0x94c1a8]
add edi, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x8c4], 0xd
push ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x58], esi
call fcn.007d7354
lea edx, [esp + 0x54]
lea eax, [esp + 0xdc]
push edx
push eax
mov ecx, edi
mov byte [esp + 0x8cc], 0xe
call fcn.00644d60
lea ecx, [esp + 0xe0]
lea edx, [esp + 0xdc]
push ecx
push edx
lea ecx, [esp + 0x180]
call fcn.0068c2a0
mov esi, dword [esp + 0x178]
lea ecx, [esp + 0x58]
mov byte [esp + 0x8c4], 0xd
call fcn.007d75e7
lea ecx, [esp + 0x18]
mov byte [esp + 0x8c4], bl
call fcn.007d75e7
lea eax, [esp + 0x34]
push eax
lea ecx, [esi + 0x10]
call fcn.007d772e
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x63fed9
mov ebp, dword [eax + 4]
test ebp, ebp
je 0x63fed2
mov eax, ebp
mov ebp, dword [ebp]
lea ecx, [esp + 0x6bc]
push 0x100
mov esi, dword [eax + 8]
push ecx
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetClassNameW]
lea eax, [esp + 0x6bc]
push str.ToolbarWindow32
push eax
call fcn.007acb07
add esp, 8
test eax, eax
jne 0x63fb6d
mov edx, dword [esp + 0x6c]
mov ecx, ebx
lea edi, [esp + 0x150]
mov dword [esp + 0x148], 0x20
mov dword [esp + 0x14c], 0x21
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0x148]
push ecx
push edx
push 0x43f
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
or edi, 0xffffffff
cmp eax, edi
je 0x63fb6d
mov ecx, dword [esp + 0x150]
mov eax, dword [esp + 0x6c]
cmp ecx, eax
jne 0x63fb6d
cmp dword [esp + 0x154], edi
jne 0x63fb7a
test ebp, ebp
jne 0x63fad9
jmp 0x63fed2
mov edx, dword [esi + 0x1c]
xor ebp, ebp
push ebp
push ebp
push 0x431
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 0x1c]
push ebp
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x158]
push ebp
push 0x435
push ecx
mov dword [esp + 0x12c], eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x154]
mov dword [esp + 0x120], eax
mov eax, dword [esi + 0x1c]
push ebp
push ebp
push 0x437
push eax
mov dword [esp + 0x134], edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x12c], ecx
cmp eax, ebp
je 0x63fd68
lea edx, [esp + 0x4f]
lea eax, [esp + 0x4c]
push edx
push eax
lea ecx, [esp + 0x24c]
call fcn.00642fa0
lea ecx, [esp + 0x49]
lea edx, [esp + 0x4b]
push ecx
push edx
lea ecx, [esp + 0x25c]
mov byte [esp + 0x8cc], 0xf
call fcn.006430c0
lea eax, [esp + 0x50]
lea ecx, [esp + 0x2b]
push eax
push ecx
lea ecx, [esp + 0x26c]
mov byte [esp + 0x8cc], 0x10
call fcn.00643170
lea edx, [esp + 0x52]
lea eax, [esp + 0x33]
push edx
push eax
lea ecx, [esp + 0x27c]
mov byte [esp + 0x8cc], 0x11
call fcn.006436f0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x244]
mov dword [esp + 0x318], ecx
push edx
lea ecx, [esp + 0x320]
mov byte [esp + 0x8c8], 0x12
call fcn.00644a10
lea eax, [esp + 0x318]
lea ecx, [esp + 0x1c0]
push eax
push ecx
mov ecx, 0x952938
mov byte [esp + 0x8cc], 0x13
call fcn.00643c70
mov esi, dword [eax]
lea ecx, [esp + 0x31c]
mov byte [esp + 0x8c4], 0x12
call fcn.00642780
lea ecx, [esp + 0x244]
mov byte [esp + 0x8c4], bl
call fcn.00642780
mov edx, dword [esp + 0x70]
lea eax, [esi + 0x40]
mov dword [esp + 0x134], edi
mov dword [esp + 0x13c], edi
mov dword [esp + 0x144], edi
mov ecx, ebx
lea esi, [esp + 0x130]
lea edi, [esp + 0x22c]
mov dword [esp + 0x130], ebp
mov dword [esp + 0x138], ebp
mov dword [esp + 0x140], ebp
mov dword [esp + 0x228], edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x228]
lea edx, [esp + 0x104]
push ecx
push edx
mov ecx, eax
call fcn.00645790
lea eax, [esp + 0x108]
lea ecx, [esp + 0x104]
push eax
push ecx
lea ecx, [esp + 0x170]
call fcn.0068c2a0
mov edx, dword [esp + 0x168]
lea edi, [edx + 0x10]
jmp 0x63fec7
mov esi, dword [esp + 0x6c]
lea eax, [esp + 0x4e]
lea ecx, [esp + 0x3b]
push eax
push ecx
lea ecx, [esp + 0x1d0]
call fcn.00642fa0
lea edx, [esp + 0x53]
lea eax, [esp + 0x43]
push edx
push eax
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x8cc], 0x14
call fcn.006430c0
lea ecx, [esp + 0x51]
lea edx, [esp + 0x48]
push ecx
push edx
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x8cc], 0x15
call fcn.00643170
lea eax, [esp + 0x4d]
lea ecx, [esp + 0x4a]
push eax
push ecx
lea ecx, [esp + 0x200]
mov byte [esp + 0x8cc], 0x16
call fcn.006436f0
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x47c]
mov byte [esp + 0x8cc], 0x17
call fcn.00643e20
lea ecx, [esp + 0x1b8]
push eax
push ecx
mov ecx, 0x952938
mov byte [esp + 0x8cc], 0x18
call fcn.00643c70
mov edi, dword [eax]
lea ecx, [esp + 0x478]
mov byte [esp + 0x8c4], 0x17
call fcn.00642780
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x8c4], bl
call fcn.00642780
or ecx, 0xffffffff
lea eax, [edi + 0x20]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x20c], esi
mov ecx, ebx
lea esi, [esp + 0xc4]
lea edi, [esp + 0x210]
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd4], ebp
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x20c]
lea ecx, [esp + 0x8c]
push edx
push ecx
mov ecx, eax
call fcn.00645060
lea edx, [esp + 0x90]
lea eax, [esp + 0x8c]
push edx
push eax
lea ecx, [esp + 0x104]
call fcn.0068c2a0
mov ecx, dword [esp + 0xfc]
lea edi, [ecx + 0x10]
lea esi, [esp + 0x118]
mov ecx, ebx
rep movsd dword es:[edi], dword [esi]
mov ebp, dword [esp + 0x8d0]
lea ecx, [esp + 0x34]
mov byte [esp + 0x8c4], 5
call fcn.007d75e7
mov esi, dword [esp + 0x14]
mov al, byte [esp + 0x8d8]
test al, al
jne 0x63ff61
push 1
push esi
push ebp
lea ecx, [esp + 0x3b4]
call fcn.0063dae0
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x3a8]
push edx
mov byte [esp + 0x8c8], 0x19
call fcn.0063ded0
cmp eax, dword [esp + 0x3c]
jle 0x63ff2f
mov dword [esp + 0x3c], eax
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x3a8]
push eax
call fcn.0063e080
cmp eax, dword [esp + 0x44]
jle 0x63ff4d
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x3d8]
mov byte [esp + 0x8c4], 5
call fcn.007d75e7
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
mov dword [esp + 0x14], esi
jl 0x63f71e
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x3c]
mov al, byte [esp + 0x8d8]
test al, al
jne 0x640002
mov eax, dword [esp + 0x24]
xor esi, esi
test eax, eax
jle 0x640002
lea ecx, [esp + 0x5c]
mov dword [esp + 0x60], 0x10
push ecx
push 1
push esi
push ebp
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
mov eax, dword [esp + 0x64]
test ah, 8
jne 0x63ffda
xor edx, edx
mov eax, edi
mov dh, byte [esp + 0x44]
and eax, 0xffff
and edx, 0xffff
mov ecx, ebx
shl eax, 0x10
or edx, eax
and ecx, 0xff
or edx, ecx
mov dword [esp + 0x7c], edx
jmp 0x63ffe2
mov dword [esp + 0x7c], 3
lea edx, [esp + 0x5c]
mov dword [esp + 0x60], 0x20
push edx
push 1
push esi
push ebp
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jl 0x63ff92
lea ecx, [esp + 0x190]
mov byte [esp + 0x8c4], 3
call fcn.0064b550
lea ecx, [esp + 0xa0]
mov byte [esp + 0x8c4], 0
call fcn.007da639
lea ecx, [esp + 0x10c]
mov dword [esp + 0x8c4], 0xffffffff
call fcn.007a478f
mov ecx, dword [esp + 0x8bc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x8b8
ret