Function at 0x14002cdd0
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 r12, rcx
xor r13d, r13d
mov dword [rbp + 0x77], r13d
call fcn.140104be4
mov rbx, qword [rax + 0x18]
lea r8d, [r13 + 4]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
jne 0x14002ce57
mov ebx, r13d
lea r8d, [r13 + 4]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
jne 0x14002ce57
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 0x14002ce3a
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x38]
call qword [sym.imp.USER32.dll_CreateMenu]
mov rdx, rax
mov rcx, r12
call fcn.140109ba8
test eax, eax
je 0x14002ce3a
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.1401033a4
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], r13
mov qword [rbp + 0xf], r13
mov qword [rbp + 7], r13
mov qword [rbp - 1], r13
mov r8, r12
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x41]
call fcn.140103690
mov edx, 1
lea r8, [rdx - 2]
lea rcx, [rbp - 0x11]
call fcn.14002f8e0
mov r15, qword [rbp - 9]
mov dword [r15], r13d
mov rbx, qword [rbp - 1]
mov edx, 2
movzx r14d, word [rdi]
movzx esi, r14w
and si, 0x10
jne 0x14002cf12
movzx r13d, 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
mov r8, 0xffffffffffffffff
mov rcx, r8
nop word [rax + rax]
inc rcx
cmp word [rdi + rcx*2], 0
jne 0x14002cf40
inc rcx
mov rax, rdx
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.1400f494c
mov qword [rbp - 0x19], rax
mov rdx, 0xffffffffffffffff
nop word [rax + rax]
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x14002cf70
inc rdx
mov r8, rdi
mov rcx, rax
call fcn.14028b4b8
mov rax, 0xffffffffffffffff
nop
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x14002cf90
lea rdi, [rdi + rax*2]
add rdi, 2
mov qword [rbp - 0x49], rdi
test si, si
je 0x14002d0c8
test r14b, r14b
jns 0x14002cfd4
mov rax, qword [rbp - 0x31]
sub rax, 1
js 0x14002d392
cmp rax, rbx
jge 0x14002d392
mov dword [r15 + rax*4], 1
mov ecx, 0x90
call fcn.1400f48fc
mov qword [rbp + 0x1f], rax
test rax, rax
je 0x14002cff4
mov rcx, rax
call fcn.140029c50
mov rdi, rax
jmp 0x14002cff6
xor edi, edi
mov eax, dword [r12 + 0x80]
mov dword [rdi + 0x80], eax
mov eax, dword [r12 + 0x7c]
mov dword [rdi + 0x7c], eax
mov rax, qword [r12 + 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.140109ba8
mov rcx, qword [rbp - 0x31]
lea rax, [rcx - 1]
test rax, rax
js 0x14002d39e
cmp rax, rcx
jge 0x14002d39e
mov r9d, dword [rdi + 8]
mov r8d, dword [rbp + 0x7f]
mov r13, qword [rbp - 0x19]
mov rdx, r13
mov rcx, qword [rbp - 0x39]
mov rcx, qword [rcx + rax*8]
call fcn.14002cb40
mov r8, rdi
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x41]
call fcn.140103690
test rbx, rbx
js 0x14002d398
lea rdx, [rbx + 1]
mov r14, 0xffffffffffffffff
mov r8, r14
lea rcx, [rbp - 0x11]
call fcn.14002f8e0
mov r15, qword [rbp - 9]
mov dword [r15 + rbx*4], 0
mov rbx, qword [rbp - 1]
mov rdi, qword [rbp - 0x49]
mov rcx, r13
call fcn.1400f4944
mov rax, qword [rbp - 0x31]
dec rax
cmp rax, 0xffffffffffffffff
je 0x14002d1e4
xor r13d, r13d
jmp 0x14002cefa
mov rcx, qword [rbp - 0x31]
lea rax, [rcx - 1]
test rax, rax
js 0x14002d38c
cmp rax, rcx
jge 0x14002d38c
movzx r9d, r13w
mov r8d, dword [rbp + 0x7f]
mov r13, qword [rbp - 0x19]
mov rdx, r13
mov rcx, qword [rbp - 0x39]
mov rcx, qword [rcx + rax*8]
call fcn.14002cb40
test r14b, r14b
jns 0x14002d122
mov rax, qword [rbp - 0x31]
sub rax, 1
js 0x14002d3a4
cmp rax, rbx
jge 0x14002d3a4
mov dword [r15 + rax*4], 1
mov rcx, qword [rbp - 0x31]
lea esi, [rcx - 1]
test esi, esi
js 0x14002d0a7
movsxd rdi, esi
test rdi, rdi
js 0x14002d3b6
cmp rdi, rbx
jge 0x14002d3b6
cmp dword [r15 + rdi*4], 0
je 0x14002d0a3
lea rax, [rcx - 1]
test rax, rax
js 0x14002d3b0
cmp rax, rcx
jge 0x14002d3b0
mov rcx, qword [rbp - 0x39]
mov rcx, qword [rcx + rax*8]
call fcn.14002d8d0
movsxd r14, esi
mov r8d, 1
mov rdx, r14
lea rcx, [rbp - 0x41]
call fcn.1401035f4
lea rax, [r14 + 1]
test esi, esi
js 0x14002d3aa
cmp rax, rbx
jg 0x14002d3aa
cmp rax, 1
jl 0x14002d3aa
mov rdx, rbx
sub rdx, rax
je 0x14002d1c8
lea rdx, [rdx*4]
lea r8, [r15 + rax*4]
lea rcx, [r15 + r14*4]
mov r9, rdx
call fcn.14001be10
dec rbx
mov qword [rbp - 1], rbx
dec rdi
sub esi, 1
js 0x14002d0a3
mov rcx, qword [rbp - 0x31]
jmp 0x14002d134
xor esi, esi
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jle 0x14002d359
xor edi, edi
nop dword [rax + rax]
test rdi, rdi
js 0x14002d386
cmp rdi, qword [r12 + 0x20]
jge 0x14002d386
mov rax, qword [r12 + 0x18]
mov r14, qword [rax + rdi*8]
call fcn.1400f5f94
mov rcx, rax
test rax, rax
je 0x14002d3ce
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]
mov r14, 0xffffffffffffffff
test rdx, rdx
je 0x14002d27a
mov rax, r14
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14002d260
mov r8d, eax
lea rcx, [rbp + 0x7f]
call fcn.140010390
mov rbx, qword [rbp + 0x7f]
mov edx, esi
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetSubMenu]
mov rcx, rax
call fcn.14010a2ec
test rax, rax
je 0x14002d2d0
cmp rdi, qword [r12 + 0x20]
jge 0x14002d3bc
mov rax, qword [r12 + 0x18]
mov rcx, qword [rax + rdi*8]
mov dword [rcx + 0x24], 0x410
mov edx, esi
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetSubMenu]
mov rcx, rax
call fcn.14010a2ec
movsxd r9, dword [rax + 8]
mov r8d, 0x410
jmp 0x14002d309
cmp rdi, qword [r12 + 0x20]
jge 0x14002d3c8
mov rax, qword [r12 + 0x18]
mov rcx, qword [rax + rdi*8]
mov dword [rcx + 0x24], 0x400
cmp rdi, qword [r12 + 0x20]
jge 0x14002d3c2
mov rax, qword [r12 + 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 [r12 + 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 0x14002d33d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc esi
inc rdi
mov rcx, qword [r12 + 8]
call qword [sym.imp.USER32.dll_GetMenuItemCount]
cmp esi, eax
jl 0x14002d200
mov r15, qword [rbp - 9]
mov dword [r12 + 0x88], 1
test r15, r15
je 0x14002d373
mov rcx, r15
call fcn.1400f4944
nop
lea rcx, [rbp - 0x41]
call fcn.1401033c4
mov eax, 1
jmp 0x14002ce3c
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
nop
call fcn.1400f5890
int3
call fcn.1400f5890
int3
call fcn.1400f5890
int3
mov ecx, 0x80004005
call fcn.14000dc70
int3