Function at 0x405320
Capabilities:
Link many functions at runtime

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x100
cmp qword [0x0040f1a0], 0
mov rbx, rcx
jne 0x405366
lea rcx, [0x0040b740]
call fcn.00405bb0
mov r12, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, r12
mov qword [0x0040f1a0], rax
call fcn.00405c32
cmp qword [0x0040f180], 0
jne 0x40539e
lea rcx, [0x0040b75d]
call fcn.00405b30
mov rcx, qword [0x0040f1a0]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f180], rax
call fcn.00405c32
cmp qword [0x0040f178], 0
jne 0x4053cf
lea rcx, [0x0040b778]
call fcn.00405bb0
mov r12, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, r12
mov qword [0x0040f178], rax
call fcn.00405c32
cmp qword [0x0040f158], 0
jne 0x405407
lea rcx, [0x0040b793]
call fcn.00405b30
mov rcx, qword [0x0040f178]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f158], rax
call fcn.00405c32
cmp qword [0x0040f148], 0
jne 0x405438
lea rcx, [0x0040b7a8]
call fcn.00405bb0
mov r12, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, r12
mov qword [0x0040f148], rax
call fcn.00405c32
cmp qword [0x0040f140], 0
jne 0x405470
lea rcx, [0x0040b7c7]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f140], rax
call fcn.00405c32
cmp qword [0x0040f138], 0
jne 0x4054a8
lea rcx, [0x0040b7de]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f138], rax
call fcn.00405c32
cmp qword [0x0040f130], 0
jne 0x4054e0
lea rcx, [0x0040b7ff]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f130], rax
call fcn.00405c32
cmp qword [0x0040f128], 0
jne 0x405518
lea rcx, [0x0040b81c]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f128], rax
call fcn.00405c32
cmp qword [0x0040f120], 0
jne 0x405550
lea rcx, [0x0040b840]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f120], rax
call fcn.00405c32
cmp qword [0x0040f118], 0
jne 0x405588
lea rcx, [0x0040b85e]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f118], rax
call fcn.00405c32
cmp qword [0x0040f110], 0
jne 0x4055c0
lea rcx, [0x0040b877]
call fcn.00405b30
mov rcx, qword [0x0040f148]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f110], rax
call fcn.00405c32
cmp qword [0x0040f108], 0
jne 0x4055f1
lea rcx, [0x0040b88f]
call fcn.00405bb0
mov r12, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, r12
mov qword [0x0040f108], rax
call fcn.00405c32
cmp qword [0x0040f100], 0
jne 0x405629
lea rcx, [0x0040b8aa]
call fcn.00405b30
mov rcx, qword [0x0040f108]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f100], rax
call fcn.00405c32
mov rax, qword [0x0040f180]
test rax, rax
je 0x405637
call rax
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x68]
xor r8d, r8d
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xa0], 0
xor r12d, r12d
mov qword [rsp + 0xa8], 0
call qword [0x0040f140]
test eax, eax
jne 0x405b0b
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x5c]
call qword [0x0040f138]
test eax, eax
je 0x405697
xor r12d, r12d
jmp 0x405b00
mov ecx, dword [rsp + 0x60]
call fcn.00404f00
mov r15, rax
test rax, rax
je 0x40568f
mov edx, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x5c]
mov r8, rax
call qword [0x0040f130]
mov r12d, eax
test eax, eax
je 0x4056c8
xor r12d, r12d
jmp 0x405af8
lea rcx, [0x0040b8c8]
mov edi, dword [rsp + 0x5c]
mov rsi, r15
call fcn.00405bb0
mov r13, rax
cmp edi, r12d
je 0x405712
mov rcx, qword [rsi + 0x40]
mov rdx, r13
mov r14, rsi
add rsi, 0x68
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x40570d
movups xmm0, xmmword [r14]
mov esi, 1
movups xmmword [rsp + 0x88], xmm0
jmp 0x405714
inc r12d
jmp 0x4056de
xor esi, esi
mov rcx, r13
call fcn.00405c32
test esi, esi
je 0x4056c0
cmp qword [0x0040f1a0], 0
jne 0x405751
lea rcx, [0x0040b740]
call fcn.00405bb0
mov r12, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, r12
mov qword [0x0040f1a0], rax
call fcn.00405c32
cmp qword [0x0040f198], 0
jne 0x405789
lea rcx, [0x0040b8e5]
call fcn.00405b30
mov rcx, qword [0x0040f1a0]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f198], rax
call fcn.00405c32
cmp qword [0x0040f190], 0
jne 0x4057c1
lea rcx, [0x0040b8f3]
call fcn.00405b30
mov rcx, qword [0x0040f1a0]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f190], rax
call fcn.00405c32
cmp qword [0x0040f188], 0
jne 0x4057f9
lea rcx, [0x0040b90c]
call fcn.00405b30
mov rcx, qword [0x0040f1a0]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f188], rax
call fcn.00405c32
cmp qword [0x0040f178], 0
jne 0x40582a
lea rcx, [0x0040b778]
call fcn.00405bb0
mov r12, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, r12
mov qword [0x0040f178], rax
call fcn.00405c32
cmp qword [0x0040f170], 0
jne 0x405862
lea rcx, [0x0040b91e]
call fcn.00405b30
mov rcx, qword [0x0040f178]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f170], rax
call fcn.00405c32
cmp qword [0x0040f168], 0
jne 0x40589a
lea rcx, [0x0040b93d]
call fcn.00405b30
mov rcx, qword [0x0040f178]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f168], rax
call fcn.00405c32
cmp qword [0x0040f160], 0
jne 0x4058d2
lea rcx, [0x0040b952]
call fcn.00405b30
mov rcx, qword [0x0040f178]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f160], rax
call fcn.00405c32
cmp qword [0x0040f158], 0
jne 0x40590a
lea rcx, [0x0040b793]
call fcn.00405b30
mov rcx, qword [0x0040f178]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f158], rax
call fcn.00405c32
cmp qword [0x0040f150], 0
jne 0x405942
lea rcx, [0x0040b96d]
call fcn.00405b30
mov rcx, qword [0x0040f178]
mov r12, rax
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r12
mov qword [0x0040f150], rax
call fcn.00405c32
xor ecx, ecx
call qword [0x0040f198]
mov r12, rax
test rax, rax
je 0x4056c0
mov rcx, rax
call qword [0x0040f160]
mov r13, rax
test rax, rax
je 0x4059f2
xor ecx, ecx
call qword [0x0040f190]
mov ecx, 1
mov esi, eax
call qword [0x0040f190]
mov edx, esi
mov rcx, r12
mov edi, eax
mov r8d, eax
call qword [0x0040f170]
mov r14, rax
test rax, rax
je 0x4059e6
mov rdx, rax
mov rcx, r13
call qword [0x0040f168]
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x40], 0xcc0020
mov r9d, esi
mov rcx, r13
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x20], edi
call qword [0x0040f150]
test eax, eax
jne 0x4059e6
mov rcx, r14
xor r14d, r14d
call qword [0x0040f158]
mov rcx, r13
mov r13, r14
call qword [0x0040f158]
xor ecx, ecx
mov rdx, r12
call qword [0x0040f188]
test r13, r13
je 0x4056c0
lea r8, [rsp + 0x70]
xor edx, edx
mov rcx, r13
xor r12d, r12d
call qword [0x0040f128]
test eax, eax
jne 0x405aef
xor ecx, ecx
lea r8, [rsp + 0x78]
mov edx, 1
call qword [0x0040f100]
test eax, eax
jne 0x405ae4
xor r9d, r9d
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea r8, [rsp + 0x88]
call qword [0x0040f120]
test eax, eax
jne 0x405ad6
mov rcx, qword [rsp + 0x78]
lea r9, [rsp + 0x80]
xor r8d, r8d
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x78]
mov r8d, 1
lea rdx, [rsp + 0xb0]
mov rax, qword [rcx]
call qword [rax + 0x60]
mov ecx, dword [rsp + 0xc0]
call fcn.00404f00
mov r12, rax
test rax, rax
je 0x405ad6
mov rcx, qword [rsp + 0x78]
mov r8d, dword [rsp + 0xc0]
lea r9, [rsp + 0x64]
mov rdx, r12
mov rax, qword [rcx]
call qword [rax + 0x18]
test eax, eax
jne 0x405ace
test rbx, rbx
je 0x405ad9
mov eax, dword [rsp + 0xc0]
mov dword [rbx], eax
jmp 0x405ad9
mov rcx, r12
call fcn.00404f58
xor r12d, r12d
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x70]
call qword [0x0040f118]
mov rcx, r13
call qword [0x0040f158]
mov rcx, r15
call fcn.00404f58
mov rcx, qword [rsp + 0x68]
call qword [0x0040f110]
mov rax, r12
add rsp, 0x100
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret