Function at 0x14002ea60
Capabilities:
Extract resource via kernel32 functions

Disassembly:
movzx edx, dx
jmp method.BCMenu.virtual_48
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov qword [rbp + 0x17], 0xfffffffffffffffe
mov qword [rsp + 0xe0], rbx
mov rdi, rdx
mov r13, rcx
xor r12d, r12d
mov dword [rbp + 0x77], r12d
call fcn.1401098dc
mov rbx, qword [rax + 0x18]
lea r8d, [r12 + 4]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
jne 0x14002eae9
mov ebx, r12d
lea r8d, [r12 + 4]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
jne 0x14002eae9
xor eax, eax
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rbx, rax
test rax, rax
je 0x14002eacc
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x38]
call qword [sym.imp.USER32.dll_CreateMenu]
mov rdx, rax
mov rcx, r13
call fcn.14010eeb0
test eax, eax
je 0x14002eacc
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LockResource]
movzx ecx, word [rax + 2]
lea rdi, [rax + 4]
add rdi, rcx
lea rcx, [rbp - 0x41]
call fcn.140107fc4
lea rax, vtable.CTypedPtrArray_class_CPtrArray__class_BCMenu____ptr64_.0
mov qword [rbp - 0x41], rax
lea rax, vtable.CArray_int__int_.0
mov qword [rbp - 0x11], rax
mov qword [rbp - 9], r12
mov qword [rbp + 0xf], r12
mov qword [rbp + 7], r12
mov qword [rbp - 1], r12
mov r8, r13
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x41]
call fcn.14013455c
or r8, 0xffffffffffffffff
lea edx, [r8 + 2]
lea rcx, [rbp - 0x11]
call fcn.1400318b0
mov r15, qword [rbp - 9]
mov dword [r15], r12d
mov rbx, qword [rbp - 1]
mov edx, 2
movzx r14d, word [rdi]
movzx esi, r14w
and si, 0x10
jne 0x14002eba3
movzx r12d, word [rdi + 2]
mov eax, 4
test si, si
cmovne rax, rdx
add rdi, rax
movzx eax, r14w
test al, 0x80
lea ecx, [rax - 0x80]
cmove ecx, eax
mov dword [rbp + 0x7f], ecx
or r8, 0xffffffffffffffff
mov rcx, r8
nop dword [rax + rax]
inc rcx
cmp word [rdi + rcx*2], 0
jne 0x14002ebd0
inc rcx
mov rax, rdx
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.1400f816c
mov qword [rbp - 0x19], rax
or rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x14002ec00
inc rdx
mov r8, rdi
mov rcx, rax
call fcn.1402a7220
or rax, 0xffffffffffffffff
nop dword [rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x14002ec20
lea rdi, [rdi + rax*2]
add rdi, 2
mov qword [rbp - 0x49], rdi
test si, si
je 0x14002ed52
test r14b, r14b
jns 0x14002ec64
mov rax, qword [rbp - 0x31]
sub rax, 1
js 0x14002effd
cmp rax, rbx
jge 0x14002effd
mov dword [r15 + rax*4], 1
mov ecx, 0x90
call fcn.1400f8110
mov qword [rbp + 0x1f], rax
test rax, rax
je 0x14002ec84
mov rcx, rax
call fcn.14002b230
mov rdi, rax
jmp 0x14002ec86
xor edi, edi
mov eax, dword [r13 + 0x80]
mov dword [rdi + 0x80], eax
mov eax, dword [r13 + 0x7c]
mov dword [rdi + 0x7c], eax
mov rax, qword [r13 + 0x70]
mov qword [rdi + 0x70], rax
mov dword [rdi + 0x78], 1
call qword [sym.imp.USER32.dll_CreatePopupMenu]
mov rdx, rax
mov rcx, rdi
call fcn.14010eeb0
mov rcx, qword [rbp - 0x31]
lea rax, [rcx - 1]
test rax, rax
js 0x14002f009
cmp rax, rcx
jge 0x14002f009
mov r9d, dword [rdi + 8]
mov r8d, dword [rbp + 0x7f]
mov r12, qword [rbp - 0x19]
mov rdx, r12
mov rcx, qword [rbp - 0x39]
mov rcx, qword [rcx + rax*8]
call fcn.14002e7e0
mov r8, rdi
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x41]
call fcn.14013455c
test rbx, rbx
js 0x14002f003
lea rdx, [rbx + 1]
or r14, 0xffffffffffffffff
mov r8, r14
lea rcx, [rbp - 0x11]
call fcn.1400318b0
mov r15, qword [rbp - 9]
mov dword [r15 + rbx*4], 0
mov rbx, qword [rbp - 1]
mov rdi, qword [rbp - 0x49]
mov rcx, r12
call fcn.1400f8164
mov rax, qword [rbp - 0x31]
dec rax
cmp rax, 0xffffffffffffffff
je 0x14002ee70
xor r12d, r12d
jmp 0x14002eb8b
mov rcx, qword [rbp - 0x31]
lea rax, [rcx - 1]
test rax, rax
js 0x14002f04a
cmp rax, rcx
jge 0x14002f04a
movzx r9d, r12w
mov r8d, dword [rbp + 0x7f]
mov r12, qword [rbp - 0x19]
mov rdx, r12
mov rcx, qword [rbp - 0x39]
mov rcx, qword [rcx + rax*8]
call fcn.14002e7e0
test r14b, r14b
jns 0x14002edac
mov rax, qword [rbp - 0x31]
sub rax, 1
js 0x14002f00f
cmp rax, rbx
jge 0x14002f00f
mov dword [r15 + rax*4], 1
mov rcx, qword [rbp - 0x31]
lea esi, [rcx - 1]
test esi, esi
js 0x14002ed31
movsxd rdi, esi
nop
test rdi, rdi
js 0x14002f021
cmp rdi, rbx
jge 0x14002f021
cmp dword [r15 + rdi*4], 0
je 0x14002ed2d
lea rax, [rcx - 1]
test rax, rax
js 0x14002f01b
cmp rax, rcx
jge 0x14002f01b
mov rcx, qword [rbp - 0x39]
mov rcx, qword [rcx + rax*8]
call fcn.14002f530
movsxd r14, esi
mov r8d, 1
mov rdx, r14
lea rcx, [rbp - 0x41]
call fcn.140108214
lea rax, [r14 + 1]
test esi, esi
js 0x14002f015
cmp rax, rbx
jg 0x14002f015
cmp rax, 1
jl 0x14002f015
mov rdx, rbx
sub rdx, rax
je 0x14002ee54
lea rdx, [rdx*4]
lea r8, [r15 + rax*4]
lea rcx, [r15 + r14*4]
mov r9, rdx
call fcn.14001ce80
dec rbx
mov qword [rbp - 1], rbx
dec rdi
sub esi, 1
js 0x14002ed2d
mov rcx, qword [rbp - 0x31]
jmp 0x14002edc0
xor esi, esi
mov rcx, qword [r13 + 8]
call qword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jle 0x14002efd1
xor edi, edi
test rdi, rdi
js 0x14002f044
cmp rdi, qword [r13 + 0x20]
jge 0x14002f044
mov rax, qword [r13 + 0x18]
mov r14, qword [rax + rdi*8]
call fcn.1400f9930
mov rcx, rax
test rax, rax
je 0x14002f039
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x7f], rbx
mov r15d, dword [rbp + 0x77]
or r15d, 1
mov dword [rbp + 0x77], r15d
mov rdx, qword [r14 + 0x10]
or r14, 0xffffffffffffffff
test rdx, rdx
je 0x14002eefa
mov rax, r14
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14002eee0
mov r8d, eax
lea rcx, [rbp + 0x7f]
call fcn.1400105e0
mov rbx, qword [rbp + 0x7f]
mov edx, esi
mov rcx, qword [r13 + 8]
call qword [sym.imp.USER32.dll_GetSubMenu]
mov rcx, rax
call fcn.14010f628
mov rcx, qword [r13 + 0x20]
test rax, rax
je 0x14002ef4f
cmp rdi, rcx
jge 0x14002f027
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + rdi*8]
mov dword [rcx + 0x24], 0x410
mov edx, esi
mov rcx, qword [r13 + 8]
call qword [sym.imp.USER32.dll_GetSubMenu]
mov rcx, rax
call fcn.14010f628
movsxd r9, dword [rax + 8]
mov r8d, 0x410
jmp 0x14002ef83
cmp rdi, rcx
jge 0x14002f033
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + rdi*8]
mov dword [rcx + 0x24], 0x400
cmp rdi, qword [r13 + 0x20]
jge 0x14002f02d
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + rdi*8]
mov r9d, dword [rcx + 0x28]
mov r8d, 0x400
mov qword [rsp + 0x20], rbx
mov edx, esi
mov rcx, qword [r13 + 8]
call qword [sym.imp.USER32.dll_ModifyMenuW]
and r15d, 0xfffffffe
mov dword [rbp + 0x77], r15d
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002efb6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc esi
inc rdi
mov rcx, qword [r13 + 8]
call qword [sym.imp.USER32.dll_GetMenuItemCount]
cmp esi, eax
jl 0x14002ee86
mov r15, qword [rbp - 9]
mov dword [r13 + 0x88], 1
test r15, r15
je 0x14002efea
mov rcx, r15
call fcn.1400f8164
nop
lea rcx, [rbp - 0x41]
call fcn.140107fe4
mov eax, 1
jmp 0x14002eace
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
call fcn.1400f91a0
nop
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3
mov ecx, 0x80004005
call fcn.14000de90
nop
call fcn.1400f91a0
int3
call fcn.1400f91a0
int3