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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x198
mov rax, qword [0x100165138]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov r13, r9
mov qword [rsp + 0x88], r9
mov rsi, r8
mov qword [rsp + 0x80], r8
mov rbx, rdx
mov r12, rcx
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
mov eax, 1
cmp rcx, rdx
je 0x1000376b2
test byte [rcx + 0x1c], al
je 0x1000376b2
cmp byte [rcx + 0x19], 4
jb 0x1000376b2
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x238
call fcn.10001c7b8
movdqu xmm0, xmmword [0x100001fe0]
mov rdx, qword [rbx]
xor r8d, r8d
lea rdi, [0x100001fe0]
mov al, r8b
mov r14b, r8b
movdqu xmmword [rsp + 0xa0], xmm0
mov r15b, r8b
mov byte [rsp + 0x30], r8b
mov byte [rsp + 0x31], r8b
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x3c], r8d
mov dword [rsp + 0x34], r8d
mov qword [rsp + 0x60], r8
mov word [rsp + 0x38], r8w
mov rbp, r8
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], r8
cmp rdx, qword [rdi]
jne 0x100037727
mov rdx, qword [rbx + 8]
cmp rdx, qword [rdi + 8]
jne 0x100037727
mov eax, r8d
jmp 0x10003772c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r8d
jne 0x10003774c
lea r8, [0x100005308]
lea rcx, [0x1000046e0]
mov edx, 0x3737
call fcn.100099ad8
xor r8d, r8d
mov rdx, qword [rsi]
cmp rdx, qword [rdi]
jne 0x100037763
mov rdx, qword [rsi + 8]
cmp rdx, qword [rdi + 8]
jne 0x100037763
mov eax, r8d
jmp 0x100037768
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r8d
jne 0x100037788
lea r8, [0x100005330]
lea rcx, [0x1000046e0]
mov edx, 0x3738
call fcn.100099ad8
xor r8d, r8d
cmp r13, r8
jne 0x1000377a5
lea r8, [0x100005350]
lea rcx, [0x1000046e0]
mov edx, 0x3739
call fcn.100099ad8
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.RPCRT4.dll_UuidToStringW]
xor ebx, ebx
cmp eax, ebx
jne 0x1000377cb
lea rdx, [rsp + 0x48]
mov rcx, rsi
call qword [sym.imp.RPCRT4.dll_UuidToStringW]
cmp eax, ebx
je 0x1000377d5
mov ebx, 0x8007000e
jmp 0x100037c72
lea rcx, [rsp + 0xb0]
xor edx, edx
mov r8d, 0xd0
mov byte [r13], bl
call sub.msvcrt.dll_memset
lea rcx, [r12 + 0x28]
xor edx, edx
call fcn.10010ad48
xor r13d, r13d
cmp eax, r13d
mov ebx, eax
jge 0x10003783c
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c72
lea edx, [r13 + 1]
test byte [rcx + 0x1c], dl
je 0x100037c72
cmp byte [rcx + 0x19], 2
jb 0x100037c72
mov edx, 0x239
jmp 0x100037d9a
mov rcx, qword [r12 + 0x248]
lea rdx, [rsp + 0xa0]
call fcn.100120da4
cmp eax, r13d
mov ebx, eax
jge 0x1000378ad
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c72
mov edx, 1
test byte [rcx + 0x1c], dl
je 0x100037c72
cmp byte [rcx + 0x19], 2
jb 0x100037c72
mov r9, qword [r12 + 0x248]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x23a
mov dword [rsp + 0x20], ebx
call fcn.10001daa4
jmp 0x100037c72
lea rax, [rsp + 0xa0]
mov rcx, qword [rax]
cmp rcx, qword [rdi]
jne 0x1000378cc
mov rcx, qword [rax + 8]
cmp rcx, qword [rdi + 8]
jne 0x1000378cc
mov eax, r13d
jmp 0x1000378d1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r13d
jne 0x1000378ee
lea r8, [0x100005208]
lea rcx, [0x1000046e0]
mov edx, 0x3762
call fcn.100099ad8
mov eax, dword [r12 + 0x14c]
cmp eax, 2
je 0x100037900
cmp eax, 3
jne 0x100037976
mov rcx, qword [r12 + 0x158]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x70]
call fcn.10009c81c
cmp eax, r13d
mov ebx, eax
jge 0x10003796c
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037962
mov edx, 1
test byte [rcx + 0x1c], dl
je 0x100037962
cmp byte [rcx + 0x19], 2
jb 0x100037962
mov r9, qword [r12 + 0x158]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x23b
mov dword [rsp + 0x20], ebx
call fcn.10001daa4
mov rbp, qword [rsp + 0x70]
jmp 0x100037c72
mov rbp, qword [rsp + 0x70]
mov byte [rsp + 0x31], 1
lea rcx, [r12 + 0x28]
call fcn.10010aed8
lea rcx, [r12 + 0x18]
call fcn.10001c8e8
mov rdi, rax
cmp rax, r13
jne 0x1000379db
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c72
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100037c72
cmp byte [rcx + 0x19], 2
jb 0x100037c72
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x23c
call fcn.10001c7b8
jmp 0x100037c72
mov rax, qword [rax]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x3c]
mov rcx, rdi
call qword [rax + 0x50]
xor r11d, r11d
cmp eax, r11d
mov ebx, eax
jge 0x100037a30
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c72
lea eax, [r11 + 1]
test byte [rcx + 0x1c], al
je 0x100037c72
cmp byte [rcx + 0x19], 2
jb 0x100037c72
mov edx, 0x23d
jmp 0x100037d9a
mov rcx, qword [0x1001653b8]
mov edx, 1
cmp dword [rsp + 0x3c], r11d
jbe 0x100037c29
mov rsi, r11
cmp r14b, r11b
jne 0x100037de8
mov rcx, qword [rsp + 0x58]
cmp rcx, r11
je 0x100037a73
mov edx, dword [rsp + 0x34]
call fcn.1000abb7c
xor r11d, r11d
mov qword [rsp + 0x58], r11
mov dword [rsp + 0x34], r11d
cmp byte [rsp + 0x30], r11b
je 0x100037aa1
lea rcx, [rsp + 0xb0]
call fcn.1000a9128
lea rcx, [rsp + 0xb0]
xor edx, edx
mov r8d, 0xd0
call sub.msvcrt.dll_memset
mov byte [rsp + 0x30], 0
mov rax, qword [rsp + 0x60]
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x70]
mov rcx, rdi
movdqu xmm0, xmmword [rsi + rax]
mov rax, qword [rdi]
movdqu xmmword [rsp + 0x70], xmm0
call qword [rax + 0x70]
mov ebx, eax
test eax, eax
js 0x100037db2
mov ecx, dword [rsp + 0x34]
lea rdx, [rsp + 0xa0]
mov r8d, 0x10
dec ecx
shl rcx, 5
add rcx, qword [rsp + 0x58]
call sub.msvcrt.dll_memcmp
mov edx, 1
lea r8, [rsp + 0xb0]
movzx ecx, dl
xor edx, edx
cmp eax, edx
mov rax, qword [rsp + 0x60]
cmovne ecx, edx
lea rdx, [rsp + 0x90]
mov dword [rsp + 0x40], ecx
mov rcx, rdi
movdqu xmm0, xmmword [rsi + rax]
mov rax, qword [rdi]
movdqu xmmword [rsp + 0x90], xmm0
call qword [rax + 0x58]
xor r11d, r11d
cmp eax, r11d
mov ebx, eax
jl 0x100037d66
lea eax, [r11 + 1]
mov byte [rsp + 0x30], al
cmp byte [rsp + 0x31], r11b
je 0x100037bab
cmp dword [rsp + 0xd8], eax
je 0x100037b75
lea r8, [0x100005290]
lea rcx, [0x1000046e0]
mov edx, 0x37cf
call fcn.100099ad8
xor r11d, r11d
mov rcx, qword [rsp + 0xe0]
movzx eax, word [rcx + 0x18]
cmp ax, word [rsp + 0x38]
jne 0x100037ba6
cmp ax, r11w
je 0x100037ba6
mov rcx, qword [rcx + 0x20]
movzx r8d, ax
mov rdx, rbp
call sub.msvcrt.dll_memcmp
xor r11d, r11d
cmp eax, r11d
je 0x100037bab
mov byte [rsp + 0x40], r11b
mov r9d, dword [rsp + 0xf0]
mov edx, r11d
cmp r9d, r11d
jbe 0x100037c02
mov r10, qword [rsp + 0xf8]
mov eax, edx
imul rax, rax, 0x78
lea rcx, [rax + r10 + 0x50]
mov rax, qword [rsp + 0x80]
mov r8, qword [rcx]
cmp r8, qword [rax]
jne 0x100037bed
mov r8, qword [rcx + 8]
cmp r8, qword [rax + 8]
jne 0x100037bed
mov eax, r11d
jmp 0x100037bf2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r11d
je 0x100037d13
inc edx
cmp edx, r9d
jb 0x100037bc3
mov rcx, qword [0x1001653b8]
mov edx, 1
add r13d, edx
add rsi, 0x10
cmp r13d, dword [rsp + 0x3c]
jb 0x100037a4a
cmp r14b, r11b
jne 0x100037de8
mov r15b, dl
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c67
test byte [rcx + 0x1c], dl
je 0x100037c67
cmp byte [rcx + 0x19], 4
jb 0x100037c67
mov edx, 0x241
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov qword [rsp + 0x20], rax
call fcn.10001df38
mov rax, qword [rsp + 0x88]
mov byte [rax], r15b
xor r14d, r14d
cmp qword [rsp + 0x50], r14
je 0x100037c87
lea rcx, [rsp + 0x50]
call qword [sym.imp.RPCRT4.dll_RpcStringFreeW]
cmp qword [rsp + 0x48], r14
je 0x100037c99
lea rcx, [rsp + 0x48]
call qword [sym.imp.RPCRT4.dll_RpcStringFreeW]
lea rcx, [r12 + 0x28]
call fcn.10010aed8
mov rcx, qword [rsp + 0x60]
cmp rcx, r14
je 0x100037cb8
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsp + 0x60], r14
cmp rbp, r14
je 0x100037cc6
mov rcx, rbp
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x58]
cmp rcx, r14
je 0x100037cd9
mov edx, dword [rsp + 0x34]
call fcn.1000abb7c
cmp byte [rsp + 0x30], r14b
je 0x100037ced
lea rcx, [rsp + 0xb0]
call fcn.1000a9128
mov eax, ebx
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.10014e480
add rsp, 0x198
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
mov edx, 1
cmp rcx, rax
je 0x100037d5e
test byte [rcx + 0x1c], dl
je 0x100037d5e
cmp byte [rcx + 0x19], 4
jb 0x100037d5e
mov r9, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov edx, 0x240
call fcn.10001da24
mov rcx, qword [0x1001653b8]
xor r11d, r11d
lea edx, [r11 + 1]
mov r14b, dl
jmp 0x100037c0e
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c72
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100037c72
cmp byte [rcx + 0x19], 2
jb 0x100037c72
mov edx, 0x23f
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003d08]
mov r9d, ebx
call fcn.10001c7dc
jmp 0x100037c72
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c72
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100037c72
cmp byte [rcx + 0x19], 2
jb 0x100037c72
mov edx, 0x23e
jmp 0x100037d9a
mov eax, dword [rsp + 0x40]
cmp al, r11b
je 0x100037e21
mov r15b, dl
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c67
test byte [rcx + 0x1c], dl
je 0x100037c67
cmp byte [rcx + 0x19], 4
jb 0x100037c67
mov edx, 0x242
jmp 0x100037c48
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037c67
test byte [rcx + 0x1c], dl
je 0x100037c67
cmp byte [rcx + 0x19], 4
jb 0x100037c67
mov edx, 0x243
jmp 0x100037c48