Function at 0x100037718
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 0x100037792
test byte [rcx + 0x1c], al
je 0x100037792
cmp byte [rcx + 0x19], 4
jb 0x100037792
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x238
call fcn.10001c854
movdqu xmm0, xmmword [0x10000f0f8]
mov rdx, qword [rbx]
xor r8d, r8d
lea rdi, [0x10000f0f8]
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 0x100037807
mov rdx, qword [rbx + 8]
cmp rdx, qword [rdi + 8]
jne 0x100037807
mov eax, r8d
jmp 0x10003780c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r8d
jne 0x10003782c
lea r8, [0x1000052a8]
lea rcx, [0x100004680]
mov edx, 0x3737
call fcn.10009a050
xor r8d, r8d
mov rdx, qword [rsi]
cmp rdx, qword [rdi]
jne 0x100037843
mov rdx, qword [rsi + 8]
cmp rdx, qword [rdi + 8]
jne 0x100037843
mov eax, r8d
jmp 0x100037848
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r8d
jne 0x100037868
lea r8, [0x1000052d0]
lea rcx, [0x100004680]
mov edx, 0x3738
call fcn.10009a050
xor r8d, r8d
cmp r13, r8
jne 0x100037885
lea r8, [0x1000052f0]
lea rcx, [0x100004680]
mov edx, 0x3739
call fcn.10009a050
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.RPCRT4.dll_UuidToStringW]
xor ebx, ebx
cmp eax, ebx
jne 0x1000378ab
lea rdx, [rsp + 0x48]
mov rcx, rsi
call qword [sym.imp.RPCRT4.dll_UuidToStringW]
cmp eax, ebx
je 0x1000378b5
mov ebx, 0x8007000e
jmp 0x100037d52
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.10010b1d8
xor r13d, r13d
cmp eax, r13d
mov ebx, eax
jge 0x10003791c
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d52
lea edx, [r13 + 1]
test byte [rcx + 0x1c], dl
je 0x100037d52
cmp byte [rcx + 0x19], 2
jb 0x100037d52
mov edx, 0x239
jmp 0x100037e7a
mov rcx, qword [r12 + 0x248]
lea rdx, [rsp + 0xa0]
call fcn.100120e48
cmp eax, r13d
mov ebx, eax
jge 0x10003798d
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d52
mov edx, 1
test byte [rcx + 0x1c], dl
je 0x100037d52
cmp byte [rcx + 0x19], 2
jb 0x100037d52
mov r9, qword [r12 + 0x248]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x23a
mov dword [rsp + 0x20], ebx
call fcn.10001ddb0
jmp 0x100037d52
lea rax, [rsp + 0xa0]
mov rcx, qword [rax]
cmp rcx, qword [rdi]
jne 0x1000379ac
mov rcx, qword [rax + 8]
cmp rcx, qword [rdi + 8]
jne 0x1000379ac
mov eax, r13d
jmp 0x1000379b1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r13d
jne 0x1000379ce
lea r8, [0x1000051a8]
lea rcx, [0x100004680]
mov edx, 0x3762
call fcn.10009a050
mov eax, dword [r12 + 0x14c]
cmp eax, 2
je 0x1000379e0
cmp eax, 3
jne 0x100037a56
mov rcx, qword [r12 + 0x158]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x70]
call fcn.10009cdf4
cmp eax, r13d
mov ebx, eax
jge 0x100037a4c
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037a42
mov edx, 1
test byte [rcx + 0x1c], dl
je 0x100037a42
cmp byte [rcx + 0x19], 2
jb 0x100037a42
mov r9, qword [r12 + 0x158]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x23b
mov dword [rsp + 0x20], ebx
call fcn.10001ddb0
mov rbp, qword [rsp + 0x70]
jmp 0x100037d52
mov rbp, qword [rsp + 0x70]
mov byte [rsp + 0x31], 1
lea rcx, [r12 + 0x28]
call fcn.10010b368
lea rcx, [r12 + 0x18]
call fcn.10001c984
mov rdi, rax
cmp rax, r13
jne 0x100037abb
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d52
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100037d52
cmp byte [rcx + 0x19], 2
jb 0x100037d52
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x23c
call fcn.10001c854
jmp 0x100037d52
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 0x100037b10
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d52
lea eax, [r11 + 1]
test byte [rcx + 0x1c], al
je 0x100037d52
cmp byte [rcx + 0x19], 2
jb 0x100037d52
mov edx, 0x23d
jmp 0x100037e7a
mov rcx, qword [0x1001653b8]
mov edx, 1
cmp dword [rsp + 0x3c], r11d
jbe 0x100037d09
mov rsi, r11
cmp r14b, r11b
jne 0x100037ec8
mov rcx, qword [rsp + 0x58]
cmp rcx, r11
je 0x100037b53
mov edx, dword [rsp + 0x34]
call fcn.1000abf50
xor r11d, r11d
mov qword [rsp + 0x58], r11
mov dword [rsp + 0x34], r11d
cmp byte [rsp + 0x30], r11b
je 0x100037b81
lea rcx, [rsp + 0xb0]
call fcn.1000a94fc
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 0x100037e92
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 0x100037e46
lea eax, [r11 + 1]
mov byte [rsp + 0x30], al
cmp byte [rsp + 0x31], r11b
je 0x100037c8b
cmp dword [rsp + 0xd8], eax
je 0x100037c55
lea r8, [0x100005230]
lea rcx, [0x100004680]
mov edx, 0x37cf
call fcn.10009a050
xor r11d, r11d
mov rcx, qword [rsp + 0xe0]
movzx eax, word [rcx + 0x18]
cmp ax, word [rsp + 0x38]
jne 0x100037c86
cmp ax, r11w
je 0x100037c86
mov rcx, qword [rcx + 0x20]
movzx r8d, ax
mov rdx, rbp
call sub.msvcrt.dll_memcmp
xor r11d, r11d
cmp eax, r11d
je 0x100037c8b
mov byte [rsp + 0x40], r11b
mov r9d, dword [rsp + 0xf0]
mov edx, r11d
cmp r9d, r11d
jbe 0x100037ce2
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 0x100037ccd
mov r8, qword [rcx + 8]
cmp r8, qword [rax + 8]
jne 0x100037ccd
mov eax, r11d
jmp 0x100037cd2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, r11d
je 0x100037df3
inc edx
cmp edx, r9d
jb 0x100037ca3
mov rcx, qword [0x1001653b8]
mov edx, 1
add r13d, edx
add rsi, 0x10
cmp r13d, dword [rsp + 0x3c]
jb 0x100037b2a
cmp r14b, r11b
jne 0x100037ec8
mov r15b, dl
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d47
test byte [rcx + 0x1c], dl
je 0x100037d47
cmp byte [rcx + 0x19], 4
jb 0x100037d47
mov edx, 0x241
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov qword [rsp + 0x20], rax
call fcn.10001df74
mov rax, qword [rsp + 0x88]
mov byte [rax], r15b
xor r14d, r14d
cmp qword [rsp + 0x50], r14
je 0x100037d67
lea rcx, [rsp + 0x50]
call qword [sym.imp.RPCRT4.dll_RpcStringFreeW]
cmp qword [rsp + 0x48], r14
je 0x100037d79
lea rcx, [rsp + 0x48]
call qword [sym.imp.RPCRT4.dll_RpcStringFreeW]
lea rcx, [r12 + 0x28]
call fcn.10010b368
mov rcx, qword [rsp + 0x60]
cmp rcx, r14
je 0x100037d98
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsp + 0x60], r14
cmp rbp, r14
je 0x100037da6
mov rcx, rbp
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [rsp + 0x58]
cmp rcx, r14
je 0x100037db9
mov edx, dword [rsp + 0x34]
call fcn.1000abf50
cmp byte [rsp + 0x30], r14b
je 0x100037dcd
lea rcx, [rsp + 0xb0]
call fcn.1000a94fc
mov eax, ebx
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.10014e600
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 0x100037e3e
test byte [rcx + 0x1c], dl
je 0x100037e3e
cmp byte [rcx + 0x19], 4
jb 0x100037e3e
mov r9, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x240
call fcn.10001db08
mov rcx, qword [0x1001653b8]
xor r11d, r11d
lea edx, [r11 + 1]
mov r14b, dl
jmp 0x100037cee
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d52
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100037d52
cmp byte [rcx + 0x19], 2
jb 0x100037d52
mov edx, 0x23f
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov r9d, ebx
call fcn.10001c878
jmp 0x100037d52
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d52
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100037d52
cmp byte [rcx + 0x19], 2
jb 0x100037d52
mov edx, 0x23e
jmp 0x100037e7a
mov eax, dword [rsp + 0x40]
cmp al, r11b
je 0x100037f01
mov r15b, dl
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d47
test byte [rcx + 0x1c], dl
je 0x100037d47
cmp byte [rcx + 0x19], 4
jb 0x100037d47
mov edx, 0x242
jmp 0x100037d28
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100037d47
test byte [rcx + 0x1c], dl
je 0x100037d47
cmp byte [rcx + 0x19], 4
jb 0x100037d47
mov edx, 0x243
jmp 0x100037d28