Function at 0x401900
Capabilities:
Contain obfuscated stackstrings
Link many functions at runtime

Disassembly:
mov r11, rsp
sub rsp, 0x4f8
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
mov rax, qword [0x006835c0]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
mov rdi, r9
mov r14, r8
mov rbp, rcx
mov qword [r11 - 0x358], r9
lea rax, [r11 - 0x448]
mov qword [rsp + 0x60], rax
lea rdx, [r11 - 0x448]
mov rcx, r9
call fcn.004039f0
mov rbx, rax
lea rdx, [rsp + 0xc8]
mov rcx, rdi
call fcn.004039b0
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x170]
call fcn.00404540
nop
mov byte [rsp + 0x1a8], 0
mov byte [rsp + 0x1a9], 0xa
mov byte [rsp + 0x1aa], 0x38
mov byte [rsp + 0x1ab], 0x3a
mov byte [rsp + 0x1ac], SafeArrayAllocDescriptorEx
mov byte [rsp + 0x1ad], reloc.OLEAUT32.dll_SafeArrayGetDim
mov byte [rsp + 0x1ae], reloc.OLEAUT32.dll_SafeArrayRedim
mov byte [rsp + 0x1af], 0x2c
mov byte [rsp + 0x1b0], reloc.OLEAUT32.dll_SafeArrayDestroyData
mov byte [rsp + 0x1b1], reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov byte [rsp + 0x1b2], 0x39
mov byte [rsp + 0x1b3], 0
mov byte [rsp + 0x40], 0x57
mov byte [rsp + 0x41], 0x63
mov byte [rsp + 0x42], 0x56
mov byte [rsp + 0x43], 0
mov byte [rsp + 0x44], reloc.OLEAUT32.dll_VarBstrFromDisp
mov byte [rsp + 0x45], 0x57
mov byte [rsp + 0x46], VarCyFromDisp
mov byte [rsp + 0x47], 0
lea rax, [rsp + 0x140]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, VariantTimeToDosDateTime
lea rdx, [rsp + 0x1a8]
lea rcx, [rsp + 0x140]
call fcn.004011f0
mov rbx, rax
cmp qword [rax + 0x28], 0x10
jb 0x401a6a
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x401a71
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp qword [rbx + 0x28], 0x10
jb 0x401a8c
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
xor r15d, r15d
mov qword [rbx + 0x20], r15
mov byte [rsi], r15b
lea edx, [r15 + 3]
lea rcx, [rsp + 0x58]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x401ad8
test r11, r11
je 0x401ad5
nop
nop
mov rax, qword [rbx]
mov qword [rax], r15
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, r15
jne 0x401ac0
mov qword [rbx], r15
lea rcx, [rsp + 0x58]
call fcn.00586750
nop
mov dword [rsp + 0x20], r15d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call r12
mov r13, rax
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x1b8], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rsp + 0x1b9], 6
mov byte [rsp + 0x1ba], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov byte [rsp + 0x1bb], 0x2b
mov byte [rsp + 0x1bc], reloc.OLEAUT32.dll_SafeArrayUnlock
mov byte [rsp + 0x1bd], reloc.OLEAUT32.dll_SafeArrayAllocData
mov byte [rsp + 0x1be], reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
mov byte [rsp + 0x1bf], 0x2c
mov byte [rsp + 0x1c0], SafeArrayGetElemsize
mov byte [rsp + 0x1c1], SafeArrayGetElemsize
mov byte [rsp + 0x1c2], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rsp + 0x1c3], 0x35
mov byte [rsp + 0x1c4], 0x3b
mov byte [rsp + 0x1c5], reloc.OLEAUT32.dll_DispGetParam
mov byte [rsp + 0x1c6], 0
lea rcx, [rsp + 0x40]
lea rdx, [0x00400000]
movzx eax, word [rdx + 0x2513f0]
mov word [rcx], ax
movzx eax, byte [rdx + 0x2513f2]
mov byte [rcx + 2], al
lea rcx, [rsp + 0x44]
movzx eax, word [rdx + 0x2513f4]
mov word [rcx], ax
movzx eax, byte [rdx + 0x2513f6]
mov byte [rcx + 2], al
lea rax, [rsp + 0x110]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, reloc.OLEAUT32.dll_SafeArrayCreate
lea rdx, [rsp + 0x1b8]
lea rcx, [rsp + 0x110]
call fcn.004011f0
mov rbx, rax
cmp qword [rax + 0x28], 0x10
jb 0x401bf8
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x401bff
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp qword [rbx + 0x28], 0x10
jb 0x401c1a
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rbx + 0x20], r15
mov byte [rsi], 0
mov edx, 3
lea rcx, [rsp + 0x54]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x401c69
test r11, r11
je 0x401c66
nop
nop
nop
mov rax, qword [rbx]
mov qword [rax], r15
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, 0
jne 0x401c50
mov qword [rbx], r15
lea rcx, [rsp + 0x54]
call fcn.00586750
nop
xor r9d, r9d
mov r8w, 0x118
lea rdx, [0x006513f8]
mov rcx, r13
call r12
mov r15, rax
mov word [rsp + 0x238], 0x47
mov word [rsp + 0x23a], 0x45
mov word [rsp + 0x23c], 0x54
mov word [rsp + 0x23e], 0
mov byte [rsp + 0x208], reloc.OLEAUT32.dll_SafeArrayAllocData
mov byte [rsp + 0x209], reloc.OLEAUT32.dll_DispGetParam
mov byte [rsp + 0x20a], 8
mov byte [rsp + 0x20b], 0x2f
mov byte [rsp + 0x20c], 0
mov byte [rsp + 0x20d], 0x1c
mov byte [rsp + 0x20e], 3
mov byte [rsp + 0x20f], 0x3d
mov byte [rsp + 0x210], reloc.OLEAUT32.dll_SafeArrayAccessData
mov byte [rsp + 0x211], 2
mov byte [rsp + 0x212], reloc.OLEAUT32.dll_SafeArrayCopy
mov byte [rsp + 0x213], 0x3a
mov byte [rsp + 0x214], reloc.OLEAUT32.dll_SafeArrayAccessData
mov byte [rsp + 0x215], 3
mov byte [rsp + 0x216], reloc.OLEAUT32.dll_SafeArrayGetLBound
mov byte [rsp + 0x217], 2
mov byte [rsp + 0x218], 7
mov byte [rsp + 0x219], 0x1c
mov byte [rsp + 0x21a], 0
lea rcx, [rsp + 0x40]
lea rdx, [0x00400000]
movzx eax, word [rdx + 0x251418]
mov word [rcx], ax
movzx eax, byte [rdx + 0x25141a]
mov byte [rcx + 2], al
lea rcx, [rsp + 0x44]
movzx eax, word [rdx + 0x25141c]
mov word [rcx], ax
movzx eax, byte [rdx + 0x25141e]
mov byte [rcx + 2], al
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetUBound
lea rdx, [rsp + 0x208]
lea rcx, [rsp + 0xe0]
call fcn.004011f0
mov rbx, rax
lea r13, [rsp + 0x180]
cmp qword [rsp + 0x198], 8
cmovae r13, qword [rsp + 0x180]
cmp qword [rax + 0x28], 0x10
jb 0x401de9
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x401df0
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp qword [rbx + 0x28], 0x10
jb 0x401e0b
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rbx + 0x20], 0
mov byte [rsi], 0
mov edx, 3
lea rcx, [rsp + 0x68]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x401e5c
test r11, r11
je 0x401e55
xor edx, edx
nop
mov rax, qword [rbx]
mov qword [rax], rdx
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, rdx
jne 0x401e40
mov qword [rbx], 0
lea rcx, [rsp + 0x68]
call fcn.00586750
nop
xor eax, eax
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, r13
lea rdx, [rsp + 0x238]
mov rcx, r15
call r12
mov r13, rax
mov byte [rsp + 0x1f0], reloc.OLEAUT32.dll_SafeArrayGetDim
mov byte [rsp + 0x1f1], 0x3e
mov byte [rsp + 0x1f2], reloc.OLEAUT32.dll_SafeArrayAllocData
mov byte [rsp + 0x1f3], 0x3b
mov byte [rsp + 0x1f4], reloc.OLEAUT32.dll_SafeArrayRedim
mov byte [rsp + 0x1f5], reloc.OLEAUT32.dll_DispGetParam
mov byte [rsp + 0x1f6], 0x37
mov byte [rsp + 0x1f7], 4
mov byte [rsp + 0x1f8], 0x2f
mov byte [rsp + 0x1f9], SafeArrayAllocData
mov byte [rsp + 0x1fa], 0x37
mov byte [rsp + 0x1fb], 0x3d
mov byte [rsp + 0x1fc], SafeArrayAllocDescriptorEx
mov byte [rsp + 0x1fd], reloc.OLEAUT32.dll_SafeArrayDestroyData
mov byte [rsp + 0x1fe], 0x3f
mov byte [rsp + 0x1ff], reloc.OLEAUT32.dll_SafeArrayAccessData
mov byte [rsp + SafeArrayDestroyDescriptor0], 0x20
mov byte [rsp + 0x201], reloc.OLEAUT32.dll_DispGetParam
mov byte [rsp + 0x202], 0
lea rcx, [rsp + 0x40]
lea rdx, [0x00400000]
movzx eax, word [rdx + 0x251420]
mov word [rcx], ax
movzx eax, byte [rdx + 0x251422]
mov byte [rcx + 2], al
lea rcx, [rsp + 0x44]
movzx eax, word [rdx + 0x251424]
mov word [rcx], ax
movzx eax, byte [rdx + 0x251426]
mov byte [rcx + 2], al
lea rax, [rsp + 0x80]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetUBound
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x80]
call fcn.004011f0
mov rbx, rax
cmp qword [rax + 0x28], 0x10
jb 0x401fa9
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x401fb0
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp qword [rbx + 0x28], 0x10
jb 0x401fcb
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rbx + 0x20], 0
mov byte [rsi], 0
mov edx, 3
lea rcx, [rsp + 0x48]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x40201c
test r11, r11
je 0x402015
xor edx, edx
nop
mov rax, qword [rbx]
mov qword [rax], rdx
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, rdx
jne 0x402000
mov qword [rbx], 0
lea rcx, [rsp + 0x48]
call fcn.00586750
nop
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r13
call r12
mov byte [rsp + 0x220], 0x2e
mov byte [rsp + 0x221], 1
mov byte [rsp + 0x222], 8
mov byte [rsp + 0x223], 0x3a
mov byte [rsp + 0x224], 0
mov byte [rsp + 0x225], reloc.OLEAUT32.dll_SafeArrayGetDim
mov byte [rsp + 0x226], 9
mov byte [rsp + 0x227], 0x3a
mov byte [rsp + 0x228], 3
mov byte [rsp + 0x229], reloc.OLEAUT32.dll_SafeArrayGetElemsize
mov byte [rsp + 0x22a], reloc.OLEAUT32.dll_SafeArrayGetElemsize
mov byte [rsp + 0x22b], SafeArrayGetElemsize
mov byte [rsp + 0x22c], reloc.OLEAUT32.dll_SafeArrayDestroy
mov byte [rsp + 0x22d], SafeArrayGetElemsize
mov byte [rsp + 0x22e], 0x34
mov byte [rsp + 0x22f], reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov byte [rsp + 0x230], 7
mov byte [rsp + 0x231], reloc.OLEAUT32.dll_SafeArrayLock
mov byte [rsp + 0x232], reloc.OLEAUT32.dll_SafeArrayAccessData
mov byte [rsp + 0x233], 6
mov byte [rsp + 0x234], reloc.OLEAUT32.dll_SafeArrayUnlock
mov byte [rsp + 0x235], reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov byte [rsp + 0x236], 0
lea rcx, [rsp + 0x40]
lea rdx, [0x00400000]
movzx eax, word [rdx + 0x251428]
mov word [rcx], ax
movzx eax, byte [rdx + 0x25142a]
mov byte [rcx + 2], al
lea rcx, [rsp + 0x44]
movzx eax, word [rdx + 0x25142c]
mov word [rcx], ax
movzx eax, byte [rdx + 0x25142e]
mov byte [rcx + 2], al
lea rax, [rsp + 0x80]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, reloc.OLEAUT32.dll_SafeArrayAccessData
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x80]
call fcn.004011f0
mov rbx, rax
cmp qword [rax + 0x28], 0x10
jb 0x40217f
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x402186
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp qword [rbx + 0x28], 0x10
jb 0x4021a1
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rbx + 0x20], 0
mov byte [rsi], 0
mov edx, 3
lea rcx, [rsp + 0x48]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x4021fc
test r11, r11
je 0x4021f5
xor edx, edx
nop
nop
nop
nop
mov rax, qword [rbx]
mov qword [rax], rdx
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, rdx
jne 0x4021e0
mov qword [rbx], 0
lea rcx, [rsp + 0x48]
call fcn.00586750
nop
xor edx, edx
mov rcx, r13
call r12
mov edx, 8
mov r8d, 0x60e
mov rcx, qword [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbp], rax
mov byte [rsp + 0x1c8], SafeArrayGetElemsize
mov byte [rsp + 0x1c9], SafeArrayDestroyDescriptor
mov byte [rsp + 0x1ca], 0x2d
mov byte [rsp + 0x1cb], reloc.OLEAUT32.dll_SafeArrayGetElemsize
mov byte [rsp + 0x1cc], reloc.OLEAUT32.dll_SafeArrayDestroyDescriptor
mov byte [rsp + 0x1cd], 0x3b
mov byte [rsp + 0x1ce], 0x2a
mov byte [rsp + 0x1cf], reloc.OLEAUT32.dll_SafeArrayDestroyDescriptor
mov byte [rsp + 0x1d0], reloc.OLEAUT32.dll_SafeArrayDestroyData
mov byte [rsp + 0x1d1], 0x38
mov byte [rsp + 0x1d2], 0x35
mov byte [rsp + 0x1d3], VariantTimeToDosDateTime
mov byte [rsp + 0x1d4], 0x3b
mov byte [rsp + 0x1d5], 3
mov byte [rsp + 0x1d6], SafeArrayAllocDescriptorEx
mov byte [rsp + 0x1d7], 0
lea rcx, [rsp + 0x40]
lea rdx, [0x00400000]
movzx eax, word [rdx + 0x251430]
mov word [rcx], ax
movzx eax, byte [rdx + 0x251432]
mov byte [rcx + 2], al
lea rcx, [rsp + 0x44]
movzx eax, word [rdx + 0x251434]
mov word [rcx], ax
movzx eax, byte [rdx + 0x251436]
mov byte [rcx + 2], al
mov dword [rsp + 0x50], 0
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, reloc.OLEAUT32.dll_SafeArrayDestroy
lea rdx, [rsp + 0x1c8]
lea rcx, [rsp + 0x80]
call fcn.004011f0
mov rbx, rax
cmp qword [rax + 0x28], 0x10
jb 0x402326
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x40232d
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r12, rax
cmp qword [rbx + 0x28], 0x10
jb 0x402348
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rbx + 0x20], 0
mov byte [rsi], 0
mov edx, 3
lea rcx, [rsp + 0x48]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x40239c
test r11, r11
je 0x402395
xor edx, edx
nop
nop
mov rax, qword [rbx]
mov qword [rax], rdx
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, rdx
jne 0x402380
mov qword [rbx], 0
lea rcx, [rsp + 0x48]
call fcn.00586750
lea r9, [rsp + 0x50]
mov r8d, 0x258
lea rdx, [rsp + 0x240]
mov rcx, r13
call r12
test eax, eax
je 0x402408
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x402408
mov r8, rax
mov ecx, dword [rbp + 8]
add rcx, qword [rbp]
lea rdx, [rsp + 0x240]
call fcn.005603e0
mov r11d, dword [rsp + 0x50]
add dword [rbp + 8], r11d
lea r9, [rsp + 0x50]
mov r8d, 0x258
lea rdx, [rsp + 0x240]
mov rcx, r13
call r12
test eax, eax
jne 0x4023c3
mov byte [rsp + 0x1d8], 0x2e
mov byte [rsp + 0x1d9], 0x1c
mov byte [rsp + 0x1da], 9
mov byte [rsp + 0x1db], SafeArrayDestroyDescriptor
mov byte [rsp + 0x1dc], reloc.OLEAUT32.dll_SafeArrayRedim
mov byte [rsp + 0x1dd], 0x31
mov byte [rsp + 0x1de], 9
mov byte [rsp + 0x1df], 0x36
mov byte [rsp + 0x1e0], VariantTimeToDosDateTime
mov byte [rsp + 0x1e1], 0x38
mov byte [rsp + 0x1e2], SafeArrayDestroyDescriptor
mov byte [rsp + 0x1e3], SafeArrayDestroyDescriptor
mov byte [rsp + 0x1e4], 0x31
mov byte [rsp + 0x1e5], reloc.OLEAUT32.dll_SafeArrayLock
mov byte [rsp + 0x1e6], 9
mov byte [rsp + 0x1e7], 0x33
mov byte [rsp + 0x1e8], 0x3f
mov byte [rsp + 0x1e9], SafeArrayDestroyDescriptor
mov byte [rsp + 0x1ea], 0
lea rcx, [rsp + 0x40]
lea rdx, [0x00400000]
movzx eax, word [rdx + 0x251438]
mov word [rcx], ax
movzx eax, byte [rdx + 0x25143a]
mov byte [rcx + 2], al
lea rcx, [rsp + 0x44]
movzx eax, word [rdx + 0x25143c]
mov word [rcx], ax
movzx eax, byte [rdx + 0x25143e]
mov byte [rcx + 2], al
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetUBound
lea rdx, [rsp + 0x1d8]
lea rcx, [rsp + 0x80]
call fcn.004011f0
mov rbx, rax
cmp qword [rax + 0x28], 0x10
jb 0x402516
lea rsi, [rax + 0x10]
mov rdx, qword [rsi]
jmp 0x40251d
lea rsi, [rax + 0x10]
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
cmp qword [rbx + 0x28], 0x10
jb 0x402538
mov rcx, qword [rsi]
call fcn.00406bd0
mov qword [rbx + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
xor r12d, r12d
mov qword [rbx + 0x20], r12
mov byte [rsi], r12b
lea edx, [r12 + 3]
lea rcx, [rsp + 0x48]
call fcn.00586700
mov r11, qword [rbx]
cmp r11, 0xfffffffffffffffd
je 0x402588
test r11, r11
je 0x402585
nop
nop
nop
mov rax, qword [rbx]
mov qword [rax], r12
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
mov qword [rbx], rcx
cmp rcx, r12
jne 0x402570
mov qword [rbx], r12
lea rcx, [rsp + 0x48]
call fcn.00586750
mov rcx, r13
call rbp
mov rcx, r15
call rbp
mov rcx, qword [rsp + 0x60]
call rbp
nop
cmp qword [rsp + 0x198], 8
jb 0x4025bc
mov rcx, qword [rsp + 0x180]
call fcn.00406bd0
mov qword [rsp + 0x198], 7
mov qword [rsp + 0x190], r12
mov word [rsp + 0x180], 0
mov edx, 3
lea rcx, [rsp + 0x48]
call fcn.00586700
mov r11, qword [rsp + 0x170]
cmp r11, 0xfffffffffffffffd
je 0x402624
test r11, r11
je 0x40261c
nop
mov qword [r11], r12
mov rax, qword [rsp + 0x170]
mov r11, qword [rax + 8]
mov qword [rsp + 0x170], r11
test r11, r11
jne 0x402600
mov qword [rsp + 0x170], r12
lea rcx, [rsp + 0x48]
call fcn.00586750
nop
cmp qword [rdi + 0x28], 0x10
jb 0x40263f
mov rcx, qword [rdi + 0x10]
call fcn.00406bd0
mov qword [rdi + 0x28], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rdi + 0x20], r12
mov byte [rdi + 0x10], 0
mov edx, 3
lea rcx, [rsp + 0x48]
call fcn.00586700
mov r11, qword [rdi]
cmp r11, 0xfffffffffffffffd
je 0x402689
test r11, r11
je 0x402686
nop
mov rax, qword [rdi]
mov qword [rax], r12
mov rax, qword [rdi]
mov rcx, qword [rax + 8]
mov qword [rdi], rcx
cmp rcx, 0
jne 0x402670
mov qword [rdi], r12
lea rcx, [rsp + 0x48]
call fcn.00586750
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.0054ec60
mov rbx, qword [rsp + 0x4f0]
mov rbp, qword [rsp + 0x4e8]
mov rsi, qword [rsp + 0x4e0]
mov rdi, qword [rsp + 0x4d8]
mov r12, qword [rsp + 0x4d0]
mov r13, qword [rsp + 0x4c8]
mov r14, qword [rsp + 0x4c0]
mov r15, qword [rsp + 0x4b8]
add rsp, 0x4f8
ret