Function at 0x140003104
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xa8
mov rdi, rcx
movups xmmword [rsp + 0x20], xmm6
mov r14, rdx
mov dword [rsp + 0x70], r9d
mov r13, r8
mov rax, qword [rdi + 0xd8]
mov edx, dword [rax + 0x70]
mov ecx, dword [rax + 0x2c]
call qword [rdi + 0x80]
mov r15, rax
mov r12, qword [rsp + 0x118]
mov rcx, r15
mov r8d, 4
lea rdx, [r12 + 0xe8]
call fcn.1400029d5
mov rcx, r15
call fcn.140002a41
mov bl, byte [r12 + 0xa0]
mov rcx, r15
mov eax, eax
mov byte [rax + r15], bl
mov bpl, byte [r12 + 0xa1]
mov byte [rax + r15 + 1], bpl
mov sil, byte [r12 + 0xa2]
mov byte [rax + r15 + 2], sil
mov r8b, byte [r12 + 0xa3]
mov byte [rax + r15 + 3], r8b
mov byte [r15 + 8], 0x25
call fcn.140002a41
movsxd rbp, eax
mov rcx, r15
lea rbx, [r15 + rbp + 1]
call fcn.140002a41
mov esi, eax
test eax, eax
je 0x140003244
cmp eax, 6
jbe 0x1400031d5
mov edx, eax
lea r9, [r15 + rbp]
lea r11, [r9 + rdx*2 + 1]
lea r8, [r15 + rdx]
sub r11, r8
lea r10, [rdx + rdx]
cmp r11, r10
jg 0x14000316f
neg r11
cmp r11, rdx
jle 0x1400031d5
mov r8d, eax
xor esi, esi
mov r10d, 1
xor ebp, ebp
shr r8d, 1
je 0x1400031af
inc esi
lea r10d, [rax + rbp]
movsx r11d, byte [r10 + r15]
mov word [r9 + r10*2 + 1], r11w
lea r10d, [rax + rbp - 1]
movsx r11d, byte [r10 + r15]
add ebp, 0xfffffffe
mov word [r9 + r10*2 + 1], r11w
cmp esi, r8d
jb 0x140003181
lea r10d, [rsi + rsi + 1]
lea ebp, [r10 - 1]
cmp ebp, eax
jae 0x1400031cb
neg r10d
add r10d, eax
inc r10d
movsx ebp, byte [r10 + r15]
mov word [r9 + r10*2 + 1], bp
lea ebp, [rax + 1]
sub eax, ebp
lea esi, [rax + 1]
jmp 0x140003244
mov r9d, eax
xor r10d, r10d
mov r11d, 1
xor r8d, r8d
shr r9d, 1
je 0x140003225
lea rsi, [r15 + rbp]
inc r10d
lea r11d, [rax + r8]
movsx edx, byte [r11 + r15]
mov word [rsi + r11*2 + 1], dx
lea r11d, [rax + r8 - 1]
movsx ecx, byte [r11 + r15]
add r8d, 0xfffffffe
mov word [rsi + r11*2 + 1], cx
cmp r10d, r9d
jb 0x1400031ed
lea esi, [r10 + r10]
neg esi
lea r11d, [r10 + r10 + 1]
add esi, eax
lea r8d, [r11 - 1]
cmp r8d, eax
jae 0x140003244
sub eax, r11d
add rbp, r15
lea esi, [rax + 1]
movsx r8d, byte [rsi + r15]
mov word [rbp + rsi*2 + 1], r8w
mov esi, eax
mov rcx, rbx
mov rdx, r13
mov r8d, 0x104
movsx eax, byte [rsi + r15]
mov word [rbx + rsi*2], ax
call qword [rdi + 0x48]
mov rax, qword [rdi + 0xd8]
mov edx, dword [rax + 0x70]
mov ecx, dword [rax + 0x2c]
call qword [rdi + 0x80]
mov rsi, rax
mov rax, qword [rdi + 0xd8]
mov edx, dword [rax + 0x70]
mov ecx, dword [rax + 0x2c]
call qword [rdi + 0x80]
mov rbp, rax
mov edx, reloc.ATL.DLL_AtlInternalQueryInterface
lea rcx, [rsp + 0x30]
mov ebx, dword [r12 + 0xd0]
call fcn.1400036e5
mov dword [rsp + 0x78], 0x10
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x78]
call qword [r14 + reloc.ATL.DLL_AtlInternalQueryInterface]
mov dword [rsp + 0x78], 0x105
lea rcx, [rsp + 0x30]
call fcn.1400026a5
mov r10d, eax
xor ecx, ecx
test r10d, r10d
jbe 0x14000332c
mov r8d, r10d
xor r11d, r11d
mov r9d, dword [r12 + 0xf4]
mov eax, 1
shr r8d, 1
je 0x140003313
imul ecx, r9d
lea eax, [r11 + r11]
movsxd rax, eax
inc r11d
movzx edx, word [rsp + rax*2 + 0x30]
add ecx, edx
imul ecx, r9d
movzx eax, word [rsp + rax*2 + 0x32]
add ecx, eax
cmp r11d, r8d
jb 0x1400032e9
lea eax, [r11 + r11 + 1]
lea r8d, [rax - 1]
cmp r8d, r10d
jae 0x14000332c
imul ecx, r9d
movsxd rax, eax
movzx r8d, word [rsp + rax*2 + 0x2e]
add ecx, r8d
xor ecx, ebx
call qword [r14]
lea rcx, [rsp + 0x30]
call fcn.1400026a5
mov ebx, eax
call qword [r14 + reloc.OLEAUT32.dll_VariantClear]
and eax, 0x80000007
jge 0x140003350
sub eax, 1
or eax, 0xfffffff8
inc eax
movdqu xmm6, xmmword [0x1400056e5]
lea ebx, [rbx + rax + 3]
mov dword [rsp + 0x78], ebx
xor eax, eax
movdqu xmmword [rsp + 0x50], xmm6
mov byte [rsp + 0x60], 0x51
mov byte [rsp + 0x61], 0x52
mov byte [rsp + 0x62], 0x53
mov byte [rsp + 0x63], 0x54
mov byte [rsp + 0x64], 0x55
mov byte [rsp + 0x65], 0x56
mov byte [rsp + 0x66], 0x57
mov byte [rsp + 0x67], 0x58
mov byte [rsp + 0x68], 0x59
mov byte [rsp + 0x69], 0x5a
test ebx, ebx
jbe 0x1400033e2
movabs rbx, 0x4ec4ec4ec4ec4ec5
mov r12, rax
call qword [r14 + reloc.OLEAUT32.dll_VariantClear]
movsxd rax, eax
lea r9, [rsp + rax + 0x50]
mul rbx
shr rdx, 3
imul r8, rdx, 0xffffffffffffffe6
movsx r10d, byte [r8 + r9]
mov word [rbp + r12*2], r10w
inc r12
movsxd r11, dword [rsp + 0x78]
cmp r12, r11
jb 0x1400033ab
mov r12, qword [rsp + 0x118]
xor eax, eax
movzx ebx, word [r13]
test ebx, ebx
je 0x1400033f9
inc eax
movzx ebx, word [r13 + rax*2]
test ebx, ebx
jne 0x1400033ed
xor r8d, r8d
lea ebx, [rax - 1]
movzx r9d, word [r13 + rbx*2]
cmp r9d, 0x5c
je 0x14000341e
mov eax, eax
mov ebx, 0x5c
mov r8d, 1
mov word [r13 + rax*2], bx
test rbp, rbp
je 0x1400036d1
add eax, r8d
xor ebx, ebx
movzx r8d, word [rbp]
test r8d, r8d
je 0x140003456
movzx r9d, word [rbp + rbx*2]
mov r8d, ebx
inc rbx
add r8d, eax
mov word [r13 + r8*2], r9w
movzx r10d, word [rbp + rbx*2]
test r10d, r10d
jne 0x140003436
add eax, ebx
xor r8d, r8d
mov word [r13 + rax*2], r8w
mov rcx, r13
xor edx, edx
call qword [rdi + 0x88]
mov ebx, dword [r12 + 0xd0]
lea rcx, [rsp + 0x50]
mov edx, reloc.ATL.DLL_AtlInternalQueryInterface
xor ebx, dword [rcx + 0x20]
call fcn.1400036e5
mov dword [rsp + 0x7c], 0x10
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x7c]
call qword [r14 + reloc.ATL.DLL_AtlInternalQueryInterface]
mov dword [rsp + 0x7c], 0x105
lea rcx, [rsp + 0x50]
call fcn.1400026a5
mov r11d, eax
xor r10d, r10d
test r11d, r11d
jbe 0x140003519
mov eax, r11d
xor r8d, r8d
mov r9d, dword [r12 + 0xf4]
mov r12d, 1
shr eax, 1
je 0x1400034ff
imul r10d, r9d
lea r12d, [r8 + r8]
movsxd r12, r12d
inc r8d
movzx edx, word [rsp + r12*2 + 0x50]
add r10d, edx
imul r10d, r9d
movzx r12d, word [rsp + r12*2 + 0x52]
add r10d, r12d
cmp r8d, eax
jb 0x1400034d1
lea r12d, [r8 + r8 + 1]
lea eax, [r12 - 1]
cmp eax, r11d
jae 0x140003519
imul r10d, r9d
movsxd r12, r12d
movzx eax, word [rsp + r12*2 + 0x4e]
add r10d, eax
xor ebx, r10d
mov ecx, ebx
call qword [r14]
lea rcx, [rsp + 0x50]
call fcn.1400026a5
mov r12d, eax
call qword [r14 + reloc.OLEAUT32.dll_VariantClear]
and eax, 0x80000007
jge 0x140003541
sub eax, 1
or eax, 0xfffffff8
inc eax
movdqu xmmword [rsp + 0x80], xmm6
lea r8d, [r12 + rax + 3]
mov dword [rsp + 0x7c], r8d
xor eax, eax
mov byte [rsp + 0x90], 0x51
mov byte [rsp + 0x91], 0x52
mov byte [rsp + 0x92], 0x53
mov byte [rsp + 0x93], 0x54
mov byte [rsp + 0x94], 0x55
mov byte [rsp + 0x95], 0x56
mov byte [rsp + 0x96], 0x57
mov byte [rsp + 0x97], 0x58
mov byte [rsp + 0x98], 0x59
mov byte [rsp + 0x99], 0x5a
test r8d, r8d
jbe 0x1400035f3
mov qword [rsp + 0x70], r13
movabs r12, 0x4ec4ec4ec4ec4ec5
mov r13, rax
call qword [r14 + reloc.OLEAUT32.dll_VariantClear]
movsxd rax, eax
lea r9, [rsp + rax + 0x80]
add byte [rax], 0
add byte [rcx - 9], cl
in al, 0x48
shr edx, 3
imul r8, rdx, 0xffffffffffffffe6
movsx r10d, byte [r8 + r9]
mov word [rsi + r13*2], r10w
inc r13
movsxd r11, dword [rsp + 0x7c]
cmp r13, r11
jb 0x1400035bd
mov r13, qword [rsp + 0x70]
xor eax, eax
movzx r8d, word [r13]
test r8d, r8d
je 0x14000360c
inc eax
movzx r8d, word [r13 + rax*2]
test r8d, r8d
jne 0x1400035ff
xor r9d, r9d
lea r8d, [rax - 1]
movzx r10d, word [r13 + r8*2]
cmp r10d, 0x5c
je 0x140003633
mov eax, eax
mov r8d, 0x5c
mov r9d, 1
mov word [r13 + rax*2], r8w
test rsi, rsi
je 0x1400036b0
add eax, r9d
xor r8d, r8d
movzx r9d, word [rsi]
test r9d, r9d
je 0x140003665
movzx r10d, word [rsi + r8*2]
mov r9d, r8d
inc r8
add r9d, eax
mov word [r13 + r9*2], r10w
movzx r11d, word [rsi + r8*2]
test r11d, r11d
jne 0x140003647
mov rdx, qword [rsp + 0x110]
add eax, r8d
xor r9d, r9d
mov word [r13 + rax*2], r9w
mov dword [rdx], ebx
test r15, r15
je 0x140003686
mov rcx, r15
call qword [rdi + 0x78]
mov rcx, rsi
call qword [rdi + 0x78]
test rbp, rbp
je 0x140003697
mov rcx, rbp
call qword [rdi + 0x78]
movups xmm6, xmmword [rsp + 0x20]
add rsp, 0xa8
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rdx, qword [rsp + 0x110]
inc eax
xor esi, esi
mov word [r13 + rax*2], si
mov dword [rdx], ebx
test r15, r15
je 0x14000368c
mov rcx, r15
call qword [rdi + 0x78]
jmp 0x14000368c
inc eax
xor ebx, ebx
mov word [r13 + rax*2], bx
jmp 0x140003461