Function at 0x10003d334
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov qword [rsp + 0xc0], 0xfffffffffffffffe
mov rbx, rdx
mov r12, rcx
lea rax, [0x1001653b8]
mov rcx, qword [0x1001653b8]
cmp rcx, rax
je 0x10003d392
test byte [rcx + 0x1c], 1
je 0x10003d392
cmp byte [rcx + 0x19], 4
jb 0x10003d392
mov edx, 0x2e2
lea r8, [0x100003d08]
mov rcx, qword [rcx + 0x10]
call fcn.10001c7b8
test rbx, rbx
jne 0x10003d3af
lea r8, [0x100004858]
mov edx, 0x4478
lea rcx, [0x1000046e0]
call fcn.100099ad8
test byte [r12 + 0x150], 2
je 0x10003d3d2
lea r8, [0x100005688]
mov edx, 0x4479
lea rcx, [0x1000046e0]
call fcn.100099ad8
xor ebx, ebx
mov edi, ebx
mov r15, rbx
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x140], bl
mov byte [rsp + 0x148], bl
mov byte [rsp + 0x30], bl
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0x34], ebx
mov qword [rsp + 0x50], rbx
mov rbp, rbx
mov qword [rsp + 0x90], rbx
mov r13, rbx
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], rbx
mov dword [rsp + 0xa8], ebx
mov rsi, rbx
mov qword [rsp + 0x70], rbx
mov r14, rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0x88], ebx
mov dword [rsp + 0x38], ebx
cmp dword [r12 + 0x170], ebx
jbe 0x10003d848
mov qword [rsp + 0x60], rbx
mov r14d, ebx
mov dword [rsp + 0x3c], esi
mov byte [rsp + 0x130], sil
add rbx, qword [r12 + 0xd8]
cmp dword [rbx + 0x14], 0xc
je 0x10003d77e
cmp r15, rsi
je 0x10003d48d
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsp + 0x48], rsi
movdqu xmm0, xmmword [rbx + 0x44]
movdqu xmmword [rsp + 0xb0], xmm0
lea r8, [rsp + 0x48]
mov rdx, qword [r12 + 0x1d8]
lea rcx, [rsp + 0xb0]
call fcn.10011eb8c
mov edi, eax
cmp eax, esi
jl 0x10003d7ed
lea r8, [r12 + 0x28]
lea rax, [rsp + 0x130]
mov qword [rsp + 0x20], rax
mov r9b, byte [rbx + 0x100]
mov r15, qword [rsp + 0x48]
mov rdx, r15
mov rcx, rbx
call fcn.100021678
mov edi, eax
cmp eax, esi
jl 0x10003d7f2
cmp byte [rsp + 0x130], sil
je 0x10003d77e
mov byte [rbx + 0x149], 1
mov r8, r15
mov rdx, rbx
mov rcx, r12
call fcn.10003d240
mov edi, eax
cmp eax, esi
jl 0x10003d7f2
lea r8, [rsp + 0x3c]
mov rdx, rbx
mov rcx, r12
call fcn.10003d0c4
mov edi, eax
cmp eax, esi
jl 0x10003d7f2
mov eax, dword [rsp + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x340]
lea r13, [rax + rcx*8]
cmp r13, rsi
jne 0x10003d56a
lea r8, [0x100004e28]
mov edx, 0x44c4
lea rcx, [0x1000046e0]
call fcn.100099ad8
lea rdx, [r13 + 8]
mov rcx, qword [rbx + 0xe0]
call fcn.10009b37c
mov edi, eax
cmp eax, esi
jl 0x10003d7f2
cmp byte [rsp + 0x140], sil
jne 0x10003d62c
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x40]
mov rcx, r12
call fcn.10002c348
mov edi, eax
cmp eax, esi
jl 0x10003d7a8
lea r9, [rsp + 0x90]
lea r8, [rsp + 0x148]
lea rdx, [rsp + 0x30]
mov rcx, qword [r12 + 0x350]
call fcn.100113220
mov edi, eax
cmp eax, esi
jl 0x10003d7a8
mov al, byte [r12 + 0x185]
neg al
sbb r9d, r9d
neg r9d
add r9d, 2
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], sil
mov r8, qword [r12 + 0x1c8]
mov rbp, qword [rsp + 0x40]
mov rdx, rbp
mov r14d, dword [rsp + 0x34]
mov ecx, r14d
call fcn.100114328
mov edi, eax
cmp eax, esi
jl 0x10003d7f2
mov byte [rsp + 0x140], 1
lea rcx, [rsp + 0x50]
call fcn.1000432e0
mov edi, eax
cmp eax, esi
jl 0x10003d7b4
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
mov r9, qword [rsp + 0x138]
mov r8, qword [r12 + 0x188]
mov rdx, r12
mov rcx, rsi
call fcn.10008a5a0
mov edi, eax
test eax, eax
js 0x10003d7f2
lea rcx, [rbx + 0xbc]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
movdqu xmm5, xmmword [rbx + 0x44]
movdqu xmmword [rsp + 0xd0], xmm5
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x90]
mov r8, r13
lea rdx, [rsp + 0xd0]
mov rcx, rsi
call fcn.10008aed4
mov edi, eax
test eax, eax
js 0x10003d7f2
lea rcx, [rbx + 0xc4]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10003d744
test byte [rcx + 0x1c], 1
je 0x10003d744
cmp byte [rcx + 0x19], 4
jb 0x10003d744
mov eax, dword [rbx + 0xbc]
mov dword [rsp + 0x68], eax
mov eax, dword [rbx + 0xc0]
mov dword [rsp + 0x6c], eax
mov eax, dword [rbx + 0xc4]
mov dword [rsp + 0x58], eax
mov eax, dword [rbx + 0xc8]
mov dword [rsp + 0x5c], eax
mov rdx, qword [rsp + 0x58]
sub rdx, qword [rsp + 0x68]
movabs rax, 0x346dc5d63886594b
mul rdx
mov r9, rdx
shr r9, 0xb
mov edx, 0x2e4
lea r8, [0x100003d08]
mov rcx, qword [rcx + 0x10]
call fcn.10001d680
add rbx, 0x150
jne 0x10003d765
lea r8, [0x100009a08]
mov edx, 0x172
lea rcx, [0x1000099d8]
call fcn.100099ad8
mov rax, qword [rsi + 0x68]
mov qword [rbx], rax
xor edi, edi
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
xor esi, esi
mov qword [rsp + 0x50], rsi
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov rbx, qword [rsp + 0x60]
add rbx, 0x160
mov qword [rsp + 0x60], rbx
cmp eax, dword [r12 + 0x170]
jae 0x10003d7f2
jmp 0x10003d45c
mov rbp, qword [rsp + 0x40]
mov r14d, dword [rsp + 0x34]
jmp 0x10003d7f2
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10003d7f2
test byte [rcx + 0x1c], 1
je 0x10003d7f2
cmp byte [rcx + 0x19], 2
jb 0x10003d7f2
mov edx, 0x2e3
mov r9d, edi
lea r8, [0x100003d08]
mov rcx, qword [rcx + 0x10]
call fcn.10001c7dc
jmp 0x10003d7f2
mov r15, qword [rsp + 0x48]
xor ebx, ebx
cmp r15, rbx
je 0x10003d802
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
cmp rbp, rbx
je 0x10003d82e
mov rdx, rbp
mov ecx, r14d
call fcn.1000b51c0
mov r13, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x90]
mov r14, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
jmp 0x10003d848
mov r13, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x90]
mov r14, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov ecx, ebx
mov dword [rsp + 0x138], ebx
mov r15, rbx
cmp r13, rbx
jbe 0x10003d8d6
mov rbx, rbp
cmp r15, r13
jae 0x10003d8b3
cmp qword [rbx], 0
je 0x10003d87b
mov rcx, qword [rbx]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
and qword [rbx], 0
mov ecx, dword [rsp + 0x138]
cmp qword [rbx + 8], 0
je 0x10003d898
mov rcx, qword [rbx + 8]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
and qword [rbx + 8], 0
mov ecx, dword [rsp + 0x138]
inc ecx
mov dword [rsp + 0x138], ecx
inc r15
add rbx, 0x18
mov eax, ecx
cmp rax, r13
jb 0x10003d85c
xor ebx, ebx
jmp 0x10003d8d6
lea r8, [0x100005ac8]
mov edx, 0x2cd
lea rcx, [0x100005a08]
call fcn.100099ad8
mov ecx, 0x80070057
call fcn.100019658
int3
cmp rbp, rbx
je 0x10003d8e7
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_free]
mov rbp, rbx
mov r15d, ebx
mov r13, rbx
cmp r14, rbx
jbe 0x10003d959
mov rbx, rsi
cmp r13, r14
jae 0x10003d936
mov rcx, qword [rbx]
test rcx, rcx
je 0x10003d90c
call qword [sym.imp.ole32.dll_CoTaskMemFree]
and qword [rbx], 0
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x10003d920
call qword [sym.imp.ole32.dll_CoTaskMemFree]
and qword [rbx + 8], 0
inc r15d
inc r13
add rbx, 0x18
mov eax, r15d
cmp rax, r14
jb 0x10003d8f5
xor ebx, ebx
jmp 0x10003d959
lea r8, [0x100005ac8]
mov edx, 0x2cd
lea rcx, [0x100005a08]
call fcn.100099ad8
mov ecx, 0x80070057
call fcn.100019658
int3
cmp rsi, rbx
je 0x10003d96a
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_free]
mov rsi, rbx
cmp edi, ebx
jge 0x10003d9d5
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10003d9a5
test byte [rcx + 0x1c], 1
je 0x10003d9a5
cmp byte [rcx + 0x19], 2
jb 0x10003d9a5
mov edx, 0x2e5
mov r9d, edi
lea r8, [0x100003d08]
mov rcx, qword [rcx + 0x10]
call fcn.10001c7dc
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, 0x8078014d
mov dword [r12 + 0x20], r11d
xor eax, eax
cmp edi, r11d
cmovne eax, edi
mov dword [r12 + 0x24], eax
lea rcx, [r12 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ebx, ebx
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10003da0a
test byte [rcx + 0x1c], 1
je 0x10003da0a
cmp byte [rcx + 0x19], 4
jb 0x10003da0a
mov edx, 0x2e6
lea r8, [0x100003d08]
mov rcx, qword [rcx + 0x10]
call fcn.10001c7b8
nop
cmp rsi, rbx
je 0x10003da19
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_free]
nop
cmp rbp, rbx
je 0x10003da27
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_free]
mov eax, edi
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret