Function at 0x140001590
Capabilities:
Extract resource via kernel32 functions

Disassembly:
sub rsp, 0x28
cmp ecx, 0x8007000e
jne 0x1400015a1
call sub.MFC80.DLL_Ordinal_1204
call sub.MFC80.DLL_Ordinal_1208
nop
nop
push rbp
sub rsp, 0x4a0
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x400], 0xfffffffffffffffe
mov qword [rbp + 0x438], r15
mov qword [rbp + 0x420], r14
mov qword [rbp + 0x428], r13
mov qword [rbp + 0x448], rdi
mov qword [rbp + 0x440], rsi
mov qword [rbp + 0x430], rbx
mov r15, rcx
mov rax, qword [0x1400065f0]
mov qword [rbp + 0x458], rax
mov rcx, r15
call sub.MFC80.DLL_Ordinal_4621
mov rcx, qword [r15 + 0x40]
xor edx, edx
call qword [sym.imp.USER32.dll_GetSystemMenu]
mov rcx, rax
call sub.MFC80.DLL_Ordinal_2405
mov r14, rax
test r14, r14
je 0x14000181c
call sub.MFC80.DLL_Ordinal_1106
test rax, rax
je 0x140001812
mov rbx, qword [rax]
mov edx, 3
mov rcx, rax
call qword [rbx + rdx*8]
add rax, 0x18
mov qword [rbp + 0x450], rax
mov ecx, 0x65
call sub.MFC80.DLL_Ordinal_1079
mov rsi, rax
test rsi, rsi
je 0x1400017a4
mov rcx, rsi
mov edx, 7
mov r8d, 6
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdi, rax
test rdi, rdi
je 0x1400017a4
mov rcx, rsi
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
jne 0x140001695
xor ebx, ebx
jmp 0x1400016e1
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rbx, rbx
je 0x140001691
mov rcx, rsi
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov eax, eax
add rax, rbx
mov ecx, 5
cmp rbx, rax
jae 0x140001691
movzx edx, word [rbx]
lea rbx, [rbx + rdx*2]
add rbx, 2
dec ecx
jne 0x1400016bc
cmp rbx, rax
jae 0x140001691
movzx eax, word [rbx]
xor edx, edx
cmp eax, 0
cmove rbx, rdx
test rbx, rbx
je 0x1400017a4
movzx esi, word [rbx]
lea r13, [rbx + 2]
call qword [0x140006630]
xor edi, edi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rdi
mov ecx, eax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rdi
xor edx, edx
mov r8, r13
mov r9d, esi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
mov rsi, qword [rbp + 0x450]
mov edx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
neg edx
inc edx
sub eax, edi
or edx, eax
jge 0x14000174b
lea rcx, [rbp + 0x450]
mov edx, edi
call fcn.14000285c
mov rsi, qword [rbp + 0x450]
movzx ebx, word [rbx]
call qword [0x140006630]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], edi
xor esi, esi
mov ecx, eax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
xor edx, edx
mov r8, r13
mov r9d, ebx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test edi, edi
jl 0x140001789
mov rax, qword [rbp + 0x450]
cmp edi, dword [rax - 0xc]
jle 0x140001793
mov ecx, 0x80070057
call fcn.140001590
mov dword [rax - 0x10], edi
mov rdx, qword [rbp + 0x450]
movsxd rax, edi
mov byte [rax + rdx], 0
mov rcx, qword [rbp + 0x450]
lea rbx, [rcx - 0x18]
cmp dword [rbx + 8], 0
je 0x1400017ee
mov rcx, qword [r14 + 8]
mov edx, reloc.MFC80.DLL_Ordinal_2048
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.USER32.dll_AppendMenuA]
mov r9, qword [rbp + 0x450]
mov rcx, qword [r14 + 8]
xor edx, edx
mov r8d, 0x10
call qword [sym.imp.USER32.dll_AppendMenuA]
mov rcx, qword [rbp + 0x450]
lea rbx, [rcx - 0x18]
lea rdx, [rcx - 8]
or eax, 0xffffffff
lock xadd dword [rdx], eax
dec eax
test eax, eax
jg 0x14000181c
mov rcx, qword [rcx - 0x18]
mov rsi, qword [rcx]
xor eax, eax
inc eax
mov rdx, rbx
call qword [rsi + rax*8]
jmp 0x14000181c
mov ecx, 0x80004005
call fcn.140001590
mov rcx, qword [r15 + 0x40]
mov r9, qword [r15 + 0x120]
mov edx, 0x80
mov r8d, 1
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, qword [r15 + 0x40]
mov r9, qword [r15 + 0x120]
mov edx, 0x80
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, r15
mov edx, 0x3eb
call sub.MFC80.DLL_Ordinal_2691
mov rdi, rax
mov rcx, qword [0x140006f80]
lea r8, [rbp]
mov edx, 0x66
mov r9d, Ordinal_1025
call qword [sym.imp.USER32.dll_LoadStringA]
lea r9, [rbp]
mov rcx, qword [rdi + 0x40]
mov edx, 0x180
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
lea rcx, [0x140006b80]
lea rdx, str.scott
call sub.MSVCR80.dll_strcpy
lea rcx, [0x140006d80]
lea rdx, str.tiger
call sub.MSVCR80.dll_strcpy
mov dword [rsp + 0x28], Ordinal_1025
lea rsi, [rbp]
xor eax, eax
mov dword [r15 + 0x118], eax
mov qword [rsp + 0x20], rsi
mov dword [r15 + 0x114], eax
mov dword [r15 + 0x110], eax
xor ebx, ebx
mov qword [r15 + 0xe8], rbx
mov qword [r15 + 0xf8], rbx
mov qword [r15 + 0x100], rbx
mov qword [r15 + 0x108], rbx
mov qword [r15 + 0xf0], rbx
mov rcx, r15
lea rdx, [0x140006b80]
lea r8, [0x140006d80]
lea r9, [0x140006780]
call fcn.140001c96
test eax, eax
jne 0x140001966
mov rcx, qword [0x140006f80]
lea r8, [rbp]
mov edx, 0x67
mov r9d, Ordinal_1025
call qword [sym.imp.USER32.dll_LoadStringA]
lea r9, [rbp]
mov rcx, qword [rdi + 0x40]
mov edx, 0x180
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, r15
call fcn.140002142
jmp 0x140001a12
lea r9, [rbp]
mov rcx, qword [rdi + 0x40]
mov edx, 0x180
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, qword [0x140006f80]
lea r8, [rbp]
mov edx, 0x68
mov r9d, Ordinal_1025
call qword [sym.imp.USER32.dll_LoadStringA]
lea r9, [rbp]
mov rcx, qword [rdi + 0x40]
mov edx, 0x180
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, qword [0x140006f80]
lea r8, [rbp]
mov edx, 0x69
mov r9d, Ordinal_1025
call qword [sym.imp.USER32.dll_LoadStringA]
lea r9, [rbp]
mov rcx, qword [rdi + 0x40]
mov edx, 0x180
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, qword [0x140006f80]
lea r8, [rbp]
mov edx, 0x6a
mov r9d, Ordinal_1025
call qword [sym.imp.USER32.dll_LoadStringA]
lea r9, [rbp]
mov rcx, qword [rdi + 0x40]
mov edx, 0x180
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageA]
mov rcx, qword [rbp + 0x458]
call fcn.140002ee0
mov rbx, qword [rbp + 0x430]
mov rsi, qword [rbp + 0x440]
mov rdi, qword [rbp + 0x448]
mov r13, qword [rbp + 0x428]
xor eax, eax
inc eax
mov r14, qword [rbp + 0x420]
mov r15, qword [rbp + 0x438]
lea rsp, [rbp + 0x460]
pop rbp
ret