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

Disassembly:
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
mov rcx, rbx
mov edx, dword [0x180146101]
call fcn.180007ade
movsxd rax, dword [rdi + 0x3c]
mov edx, r13d
add rax, rdi
mov r14d, dword [0x1801460d9]
mov r11d, dword [0x1801460d5]
mov r10d, dword [0x18014610d]
mov r9d, dword [rax + r10*8 + 0x88]
mov eax, dword [r9 + rdi + 0x20]
mov ecx, dword [r9 + rdi + 0x1c]
add rax, rdi
mov r10d, dword [r9 + rdi + 0x24]
add rcx, rdi
mov r9d, dword [r9 + rdi + 0x18]
add r10, rdi
test r9d, r9d
jbe 0x1800073f6
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x50], ebp
mov qword [rsp + 0x48], rsi
mov r15d, edx
mov ebp, r13d
mov ebx, dword [rax + r15*4]
add rbx, rdi
cmp byte [rbx], 0
je 0x1800073cf
mov esi, r13d
add esi, 8
lea ecx, [rsi - 7]
cmp byte [rcx + rbx], 0
je 0x18000737f
lea ecx, [rsi - 6]
cmp byte [rcx + rbx], 0
je 0x18000737f
lea ecx, [rsi - 5]
cmp byte [rcx + rbx], 0
je 0x18000737f
lea ecx, [rsi - 4]
cmp byte [rcx + rbx], 0
je 0x18000737f
lea ecx, [rsi - 3]
cmp byte [rcx + rbx], 0
je 0x18000737f
lea ecx, [rsi - 2]
cmp byte [rcx + rbx], 0
je 0x18000737f
lea ecx, [rsi - 1]
cmp byte [rcx + rbx], 0
je 0x18000737f
mov ecx, esi
cmp byte [rsi + rbx], 0
jne 0x180007335
test ecx, ecx
jbe 0x1800073cf
mov esi, ecx
mov r8d, 1
xor r12d, r12d
shr esi, 1
je 0x1800073b8
imul ebp, r11d
movzx r8d, byte [rbx + r12*2]
add ebp, r8d
imul ebp, r11d
movzx r8d, byte [rbx + r12*2 + 1]
inc r12
add ebp, r8d
cmp r12, rsi
jb 0x180007392
lea r8d, [r12 + r12 + 1]
lea esi, [r8 - 1]
cmp esi, ecx
jae 0x1800073cf
imul ebp, r11d
movsxd r8, r8d
movzx ecx, byte [r8 + rbx - 1]
add ebp, ecx
cmp ebp, r14d
je 0x180007a25
inc edx
cmp edx, r9d
jb 0x18000731c
mov rbx, qword [rsp + 0x58]
mov r12, qword [rsp + 0x40]
mov ebp, dword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
xor r10d, r10d
mov rax, rsp
mov rcx, rsi
mov rdx, rbx
mov r8d, ebp
mov dword [rsp + 0x68], 0
lea r9, [rsp + 0x68]
mov qword [rax + 0x20], 0
call r10
test eax, eax
jne 0x180007429
mov ecx, 1
call r12
mov r8d, dword [0x1801460ed]
mov r14d, dword [rsp + 0x68]
add r14, rbx
lea rbp, [rbx + r8]
mov eax, dword [rbp]
mov esi, dword [rbp + 4]
test eax, eax
jbe 0x1800074df
cmp eax, 4
jb 0x1800079b9
lea rbx, [rbx + r8 + 8]
and rbx, 0xf
test ebx, ebx
je 0x18000749b
test bl, 3
jne 0x1800079b9
neg ebx
add ebx, 0x10
shr ebx, 2
lea edx, [rbx + 4]
cmp eax, edx
jb 0x1800079b9
mov edx, eax
xor ecx, ecx
sub edx, ebx
and edx, 3
neg edx
add edx, eax
test ebx, ebx
je 0x1800074a6
add dword [rbp + rcx*4 + 8], esi
inc rcx
cmp rcx, rbx
jb 0x18000748d
jmp 0x1800074a6
mov edx, eax
xor ebx, ebx
and edx, 3
neg edx
add edx, eax
movd xmm0, esi
pshufd xmm0, xmm0, 0
movsxd rdx, edx
movdqu xmm1, xmmword [rbp + rbx*4 + 8]
paddd xmm1, xmm0
movdqu xmmword [rbp + rbx*4 + 8], xmm1
add rbx, 4
cmp rbx, rdx
jb 0x1800074b2
movsxd rax, eax
cmp rdx, rax
jae 0x1800074df
add dword [rbp + rdx*4 + 8], esi
inc rdx
cmp rdx, rax
jb 0x1800074d3
mov eax, dword [reloc.OLEAUT32.dll_VariantClear]
add rbp, rax
mov ecx, dword [0x1801460d5]
mov r11d, r13d
cmp byte [rbp + 1], 0
je 0x18000759c
mov eax, r13d
add eax, 8
lea edx, [rax - 7]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
lea edx, [rax - 6]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
lea edx, [rax - 5]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
lea edx, [rax - 4]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
lea edx, [rax - 3]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
lea edx, [rax - 2]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
lea edx, [rax - 1]
cmp byte [rdx + rbp + 1], 0
je 0x180007550
mov edx, eax
cmp byte [rax + rbp + 1], 0
jne 0x1800074fe
test edx, edx
jbe 0x18000759c
mov eax, edx
mov esi, 1
xor ebx, ebx
shr eax, 1
je 0x180007586
imul r11d, ecx
movzx esi, byte [rbp + rbx*2 + 1]
add r11d, esi
imul r11d, ecx
movzx r8d, byte [rbp + rbx*2 + 2]
inc rbx
add r11d, r8d
cmp rbx, rax
jb 0x180007561
lea esi, [rbx + rbx + 1]
lea eax, [rsi - 1]
cmp eax, edx
jae 0x18000759c
imul ecx, r11d
movsxd rsi, esi
movzx r11d, byte [rsi + rbp]
add r11d, ecx
movsxd r9, dword [rdi + 0x3c]
mov esi, r13d
add r9, rdi
mov r8d, dword [0x1801460d5]
mov eax, dword [0x18014610d]
mov edx, dword [r9 + rax*8 + 0x88]
mov r9d, dword [rdx + rdi + 0x20]
mov ecx, dword [rdx + rdi + 0x1c]
add r9, rdi
mov eax, dword [rdx + rdi + 0x24]
add rcx, rdi
mov r10d, dword [rdx + rdi + 0x18]
add rax, rdi
test r10d, r10d
jbe 0x1800076d7
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r12
mov ebx, esi
mov ecx, r13d
mov edx, dword [r9 + rbx*4]
add rdx, rdi
cmp byte [rdx], 0
je 0x1800076b9
mov r12d, r13d
add r12d, 8
lea eax, [r12 - 7]
cmp byte [rax + rdx], 0
je 0x180007666
lea eax, [r12 - 6]
cmp byte [rax + rdx], 0
je 0x180007666
lea eax, [r12 - 5]
cmp byte [rax + rdx], 0
je 0x180007666
lea eax, [r12 - 4]
cmp byte [rax + rdx], 0
je 0x180007666
lea eax, [r12 - 3]
cmp byte [rax + rdx], 0
je 0x180007666
lea eax, [r12 - 2]
cmp byte [rax + rdx], 0
je 0x180007666
lea eax, [r12 - 1]
cmp byte [rax + rdx], 0
je 0x180007666
mov eax, r12d
cmp byte [r12 + rdx], 0
jne 0x18000760b
test eax, eax
jbe 0x1800076b9
mov r12d, eax
mov r14d, 1
xor r15d, r15d
shr r12d, 1
je 0x1800076a1
imul ecx, r8d
movzx r14d, byte [rdx + r15*2]
add ecx, r14d
imul ecx, r8d
movzx r14d, byte [rdx + r15*2 + 1]
inc r15
add ecx, r14d
cmp r15, r12
jb 0x18000767b
lea r14d, [r15 + r15 + 1]
lea r12d, [r14 - 1]
cmp r12d, eax
jae 0x1800076b9
imul ecx, r8d
movsxd r14, r14d
movzx eax, byte [r14 + rdx - 1]
add ecx, eax
cmp ecx, r11d
je 0x1800079fc
inc esi
cmp esi, r10d
jb 0x1800075f3
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
xor ebx, ebx
mov ecx, 1
call r12
movsx rax, byte [rbp]
add rbp, rax
mov ecx, dword [0x1801460d5]
mov r15d, r13d
cmp byte [rbp + 1], 0
je 0x1800077a1
mov eax, r13d
add eax, 8
lea edx, [rax - 7]
cmp byte [rdx + rbp + 1], 0
je 0x180007751
lea edx, [rax - 6]
cmp byte [rdx + rbp + 1], 0
jl 0x18000773c
add dword [rax], eax
je 0x180007751
lea edx, [rax - 5]
cmp byte [rdx + rbp + 1], 0
je 0x180007751
lea edx, [rax - 4]
cmp byte [rdx + rbp + 1], 0
je 0x180007751
lea edx, [rax - 3]
cmp byte [rdx + rbp + 1], 0
je 0x180007751
lea edx, [rax - 2]
cmp byte [rdx + rbp + 1], 0
je 0x180007751
lea edx, [rax - 1]
cmp byte [rdx + rbp + 1], 0
je 0x180007751
mov edx, eax
cmp byte [rax + rbp + 1], 0
jne 0x1800076ff
test edx, edx
jbe 0x1800077a1
mov eax, edx
mov r8d, 1
xor esi, esi
shr eax, 1
je 0x18000778a
imul r15d, ecx
movzx r8d, byte [rbp + rsi*2 + 1]
add r15d, r8d
imul r15d, ecx
movzx r9d, byte [rbp + rsi*2 + 2]
inc rsi
add r15d, r9d
cmp rsi, rax
jb 0x180007763
lea r8d, [rsi + rsi + 1]
lea eax, [r8 - 1]
cmp eax, edx
jae 0x1800077a1
imul ecx, r15d
movsxd r8, r8d
movzx r15d, byte [r8 + rbp]
add r15d, ecx
movsxd rax, dword [rdi + 0x3c]
mov esi, r13d
add rax, rdi
mov r9d, dword [0x1801460d5]
mov r10d, dword [0x18014610d]
mov edx, dword [rax + r10*8 + 0x88]
add byte [rbx + rcx*4 + 0x54], al
cmp ah, byte [rax]
mov eax, dword [rdx + rdi + 0x1c]
add r10, rdi
mov ecx, dword [rdx + rdi + 0x24]
add rax, rdi
mov r11d, dword [rdx + rdi + 0x18]
add rcx, rdi
test r11d, r11d
jbe 0x1800078d6
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r12
mov r8d, esi
mov ecx, r13d
mov edx, dword [r10 + r8*4]
add rdx, rdi
cmp byte [rdx], 0
je 0x1800078b3
mov ebp, r13d
add ebp, 8
lea eax, [rbp - 7]
cmp byte [rax + rdx], 0
je 0x180007862
lea eax, [rbp - 6]
cmp byte [rax + rdx], 0
je 0x180007862
lea eax, [rbp - 5]
cmp byte [rax + rdx], 0
je 0x180007862
lea eax, [rbp - 4]
cmp byte [rax + rdx], 0
je 0x180007862
lea eax, [rbp - 3]
cmp byte [rax + rdx], 0
je 0x180007862
lea eax, [rbp - 2]
cmp byte [rax + rdx], 0
je 0x180007862
test eax, eax
jbe 0x1800078b3
mov ebp, eax
mov r12d, 1
xor r14d, r14d
shr ebp, 1
je 0x18000789b
imul ecx, r9d
movzx r12d, byte [rdx + r14*2]
add ecx, r12d
imul ecx, r9d
movzx r12d, byte [rdx + r14*2 + 1]
inc r14
invalid
invalid