Function at 0x4c4528
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
xor eax, eax
mov r15d, edx
lea ecx, [rax + 0xe]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rax
call fcn.004c4bcc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, 0x11
mov rbx, rax
call fcn.004c4bcc
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, 0x12
mov qword [rsp + 0x140], rax
call fcn.004c4bcc
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, 0xf
mov qword [rsp + 0x78], rax
call fcn.004c4bcc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, 0x13
mov rbx, rax
call fcn.004c4bcc
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12d, 0x10
mov ecx, r12d
mov rdi, rax
call fcn.004c4bcc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, 0x19b
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea edx, [r12 + 7]
mov rcx, rbx
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea edx, [r12 + 8]
mov rcx, rbx
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea edx, [r12 - 8]
mov rcx, rbx
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdx, r12
mov rcx, rbx
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, 0xf
mov rcx, rbx
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, 0x1a
mov rcx, rbx
mov qword [rsp + 0x88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, 8
mov qword [rsp + 0x68], rax
call fcn.004c4bcc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, 0x16
mov rbx, rax
call fcn.004c4bcc
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x80], rax
mov ecx, 0x15
call fcn.004c4bcc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, 0x17
call fcn.004c4bcc
mov rcx, rbx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x140]
test rax, rax
je 0x4c4b5b
cmp qword [rsp + 0x78], 0
je 0x4c4b5b
test rdi, rdi
je 0x4c4b5b
test rsi, rsi
je 0x4c4b5b
test r13, r13
je 0x4c4b5b
test r14, r14
je 0x4c4b5b
test rbp, rbp
je 0x4c4b5b
test r12, r12
je 0x4c4b5b
xor ecx, ecx
call rax
test eax, eax
mov ebx, eax
jns 0x4c4791
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x4c474a
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x4c475a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x4c476a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x4c477a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x4c478a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, ebx
jmp 0x4c4bae
lea rax, [rsp + 0x30]
lea r9, [0x004c2230]
lea rdx, [0x004c22e8]
mov qword [rsp + 0x28], rax
lea rax, [0x004c2240]
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
call rdi
test eax, eax
mov ebx, eax
js 0x4c473a
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x50]
test eax, eax
mov ebx, eax
js 0x4c473a
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov rcx, qword [rsp + 0x48]
test eax, eax
mov ebx, eax
js 0x4c473f
mov rax, qword [rcx]
lea r8, [rsp + 0x50]
lea rdx, [0x004c22c8]
call qword [rax]
test eax, eax
mov ebx, eax
js 0x4c473a
mov r8d, r15d
xor edx, edx
mov cx, 0x11
call rsi
test rax, rax
mov rdi, rax
je 0x4c4b5b
and qword [rsp + 0x70], 0
lea rdx, [rsp + 0x70]
mov rcx, rax
call r13
xor r13d, r13d
cmp eax, r13d
mov ebx, eax
jl 0x4c4b33
mov edx, dword [rsp + 0x130]
mov rcx, qword [rsp + 0x70]
mov r8d, r15d
call fcn.004c2710
mov rcx, rdi
call r14
cmp eax, r13d
mov ebx, eax
jl 0x4c4b33
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x38]
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + 0x168]
cmp eax, r13d
mov ebx, eax
jl 0x4c4b33
mov rcx, rdi
call r12
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x40]
mov rax, qword [rcx]
mov rdi, r13
call qword [rax + pe_nt_image_headers64]
cmp eax, r13d
mov ebx, eax
jl 0x4c4b3e
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x90]
cmp eax, r13d
mov ebx, eax
jl 0x4c4b3e
lea rcx, [rsp + 0xc0]
call rbp
mov rcx, qword [rsp + 0x38]
mov word [rsp + 0xc0], 9
mov qword [rsp + 0x140], r13
mov rax, qword [rcx]
lea r8, [rsp + 0x140]
lea rdx, [0x004c22d8]
call qword [rax]
mov r11, qword [rsp + 0x140]
lea rcx, [rsp + 0xd8]
mov qword [rsp + 0xc8], r11
call rbp
mov r11, qword [rsp + 0x58]
cmp dword [r11 + 0x18], r13d
je 0x4c4a2e
cmp word [r11], r13w
je 0x4c4a2e
lea r14d, [r13 + 1]
xor edx, edx
mov cx, 0xc
mov r8d, r14d
call rsi
mov rsi, qword [rsp + 0x90]
mov ecx, r14d
cmp rsi, r13
mov dword [rsp + 0x148], ecx
mov rbx, r13
mov qword [rsp + 0x58], rax
je 0x4c498a
call qword [rsp + pe_nt_image_headers64]
lea rdx, [rsp + 0x148]
mov rcx, rax
call rsi
mov ecx, dword [rsp + 0x148]
mov rbx, rax
add ecx, 0xffffffff
lea r8, [rsp + 0x60]
mov edx, r14d
mov dword [rsp + 0x60], ecx
mov cx, 8
mov dword [rsp + 0x64], r13d
call qword [rsp + 0x88]
cmp dword [rsp + 0x148], r14d
mov dword [rsp + 0x140], r13d
mov r13, qword [rsp + 0x68]
mov rbp, rax
mov esi, r14d
jle 0x4c49f3
add rbx, 8
mov r8, qword [rbx]
lea rdx, [rsp + 0x140]
mov rcx, rbp
call r13
add dword [rsp + 0x140], r14d
add esi, r14d
add rbx, 8
cmp esi, dword [rsp + 0x148]
jl 0x4c49ca
mov rcx, qword [rsp + 0x58]
and dword [rsp + 0x140], edi
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x140]
mov word [rsp + 0xa0], 0x2008
mov qword [rsp + 0xa8], rbp
call r13
mov r8, qword [rsp + 0x58]
xor r13d, r13d
jmp 0x4c4a36
mov r8, r13
mov qword [rsp + 0x58], r13
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0xa0]
lea r9, [rsp + 0xd8]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rcx + 0x10]
mov rcx, qword [rsp + 0x40]
mov qword [rdx + 0x10], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0xa0]
call qword [rax + 0x128]
cmp eax, r13d
mov ebx, eax
jl 0x4c4b33
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x58]
mov rcx, qword [rsp + 0x48]
cmp eax, r13d
mov ebx, eax
jge 0x4c4ae4
cmp rcx, r13
je 0x4c4aa7
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov rcx, qword [rsp + 0x30]
cmp rcx, r13
je 0x4c4ab7
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
cmp rcx, r13
je 0x4c4ac7
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
cmp rcx, r13
je 0x4c4ad7
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
cmp rcx, r13
jmp 0x4c4782
cmp rcx, r13
je 0x4c4aef
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x30]
cmp rcx, r13
je 0x4c4aff
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
cmp rcx, r13
je 0x4c4b0f
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
cmp rcx, r13
je 0x4c4b1f
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
cmp rcx, r13
je 0x4c4b2f
mov rax, qword [rcx]
call qword [rax + 0x10]
xor eax, eax
jmp 0x4c4bae
cmp rdi, r13
je 0x4c4b3e
mov rcx, rdi
call r12
call qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
cmp rcx, r13
je 0x4c4aa7
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x4c4aa7
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x4c4b6b
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x4c4b7b
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x4c4b8b
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x4c4b9b
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x4c4bab
mov rax, qword [rcx]
call qword [rax + 0x10]
or eax, 0xffffffff
mov rbx, qword [rsp + 0x138]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret