Function at 0x18005cbb0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x90], rbx
mov r14, rdx
mov rbx, rcx
xor esi, esi
mov edi, esi
cmp r8d, 3
jne 0x18005cbec
xor eax, eax
jmp 0x18005cec6
cmp r8d, 1
jne 0x18005cc2e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, eax
mov eax, dword [rbx + 0x284]
cmp eax, ecx
je 0x18005cbe5
xor eax, eax
lock cmpxchg dword [rbx + 0x280], esi
mov edi, eax
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, 1
je 0x18005cc04
cmp edi, 2
sete sil
mov eax, esi
jmp 0x18005cec6
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rbx + 0x284], eax
mov ebp, 3
mov dword [rsp + 0xa0], ebp
lea rax, [rbx + 0x280]
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x48], eax
mov r12d, esi
mov dword [rsp + 0x20], esi
mov r13d, esi
mov dword [rsp + 0xa0], esi
mov r15, rsi
xor edx, edx
lea r8d, [rbp - 1]
mov rcx, r14
call qword [0x1800d4958]
mov r14, rax
test rax, rax
je 0x18005cd25
lea edx, [rbp - 2]
lea r8d, [rbp + 0xd]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov r12, rax
test rax, rax
je 0x18005cd17
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [rsp + 0xa8], eax
mov rdx, r12
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r12, rax
test rax, rax
je 0x18005cd17
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x18005cd0e
mov r13d, dword [rsp + 0xa8]
mov ecx, r13d
call fcn.1800aebfc
mov r15, rax
test rax, rax
je 0x18005cd06
mov r8d, r13d
mov rdx, qword [rsp + 0x30]
mov rcx, rax
call fcn.1800ab630
mov r13d, dword [rsp + 0xa0]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r12d, dword [rsp + 0x20]
mov r14d, esi
test r15, r15
je 0x18005cd6f
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x24], esi
lea r9, [rsp + 0x24]
lea r8, [rsp + 0x28]
lea rdx, [0x1800f88e0]
mov rcx, r15
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x18005cd67
mov rax, qword [rsp + 0x28]
mov r12d, dword [rax + 8]
mov r13d, dword [rax + 0xc]
mov r14d, 1
mov rcx, r15
call fcn.1800aea38
mov dword [rbx + 0x294], r14d
test r14d, r14d
je 0x18005cdb7
mov eax, r12d
shr eax, 0x10
mov ecx, r13d
shr ecx, 0x10
cmp ax, 2
ja 0x18005cdb1
jb 0x18005cda5
test r12w, r12w
jne 0x18005cdb1
test cx, cx
jne 0x18005cdb1
mov eax, 0x3ef
cmp r13w, ax
ja 0x18005cdb1
mov dword [rbx + 0x290], 1
jmp 0x18005cdb7
mov dword [rbx + 0x290], esi
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rbx + 0x288], rax
test rax, rax
je 0x18005cea3
mov rdi, rsi
lea r15, str.InitEngine
mov r14, rbx
sub r14, r15
mov rdx, qword [r15 + rdi*8]
mov rcx, qword [rbx + 0x288]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [r14 + rdi*8]
mov qword [rcx + r15 + 8], rax
cmp rdi, 7
jae 0x18005ce0a
test rax, rax
je 0x18005ce47
inc rdi
cmp rdi, 0x4f
jb 0x18005cde5
mov rax, qword [rbx + 0x30]
xor ecx, ecx
call rax
mov edi, eax
test eax, eax
je 0x18005ce88
lea rdx, str.JudgeVersion
mov rcx, qword [rbx + 0x288]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18005ce47
call rax
mov edi, eax
test eax, eax
jne 0x18005ce4b
lea ebp, [rax + 5]
jmp 0x18005ce8d
mov edi, esi
jmp 0x18005ce8d
mov rax, qword [rbx + 8]
call rax
mov ebp, esi
mov r14d, 6
test eax, eax
cmove ebp, r14d
mov rax, qword [rbx + 0x18]
call rax
mov edi, eax
test eax, eax
jne 0x18005ce70
mov ebp, r14d
jmp 0x18005ce8d
mov dword [rsp + 0xa0], 2
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x48], eax
jmp 0x18005cea8
mov ebp, 4
mov rcx, qword [rbx + 0x288]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx + 0x288], rsi
jmp 0x18005cea8
mov ebp, 2
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
cmp qword [rsp + 0x40], 0
je 0x18005cec4
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
xchg dword [rax], ecx
mov eax, edi
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret