Function at 0x4108dfd0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x8b0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x900], rbx
mov rax, qword [0x41359af8]
xor rax, rsp
mov qword [rsp + 0x8a0], rax
mov ebp, r8d
mov dword [rsp + 0x40], r8d
mov ebx, edx
mov dword [rsp + 0x44], edx
mov rsi, rcx
xor r15d, r15d
mov dword [rcx + 0xf8], r15d
mov dword [rcx + 0xe4], r15d
mov dword [rcx + 0xe8], r15d
mov dword [rcx + 0x68], r15d
mov dword [rcx + 0x64], r15d
mov rcx, qword [rcx + 0x270]
mov rax, qword [rcx]
mov edx, 0x81
call qword [rax]
mov edi, eax
mov rcx, qword [rsi + 0x160]
mov rax, qword [rcx]
lea edx, [rbx - 1]
call qword [rax + 0x20]
mov r14, rax
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x4108e124
mov rcx, qword [rsi + 0x158]
cmp dword [rcx + 0x524], 1
jne 0x4108e11d
lea eax, [rdi + 1]
cmp ebx, eax
jne 0x4108e11d
cmp qword [rcx + 0x5a0], r15
jbe 0x4108e11d
mov rax, qword [0x41360978]
test rax, rax
jne 0x4108e0cb
mov ecx, 0x398
call fcn.41211580
mov qword [rsp + 0x38], rax
test rax, rax
je 0x4108e0c1
mov rcx, rax
call fcn.410825d0
jmp 0x4108e0c4
mov rax, r15
mov qword [0x41360978], rax
cmp qword [rax + 0x280], 0
je 0x4108e116
mov rcx, qword [rax + 0x280]
mov rax, qword [rcx]
call qword [rax + 0x48]
test eax, eax
jne 0x4108e116
mov rax, qword [rsi + 0x158]
cmp qword [rax + 0x5a8], 8
jb 0x4108e100
mov rcx, qword [rax + 0x590]
jmp 0x4108e107
lea rcx, [rax + 0x590]
call fcn.4103d8e0
mov eax, 1
jmp 0x4108f33e
xor eax, eax
jmp 0x4108f33e
xor eax, eax
jmp 0x4108f33e
lea rcx, [rsi + 0x30]
xor r8d, r8d
lea rdx, [0x412a02a8]
call fcn.41024690
mov rcx, r14
call fcn.41142ec0
mov r13, rax
mov ecx, dword [r14 + 4]
test ecx, ecx
jns 0x4108e182
cmp ebp, 2
jne 0x4108e17b
cmp ecx, 0xffffffff
jne 0x4108e17b
lea rdx, [rax + 0x70]
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov rcx, rsi
call fcn.4107eb00
lea eax, [rbp - 1]
jmp 0x4108f33e
xor eax, eax
jmp 0x4108f33e
cmp dword [rax + 0x88], r15d
jne 0x4108e192
xor eax, eax
jmp 0x4108f33e
cmp ecx, 3
jne 0x4108e1c0
lea rdx, [rax + 0x70]
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov rcx, rsi
call fcn.4107eb00
mov eax, 1
jmp 0x4108f33e
cmp ecx, 0xb
je 0x4108f31a
cmp ecx, 0xc
je 0x4108f31a
cmp ecx, 0xd
je 0x4108f31a
cmp ecx, 0x15
jne 0x4108e209
lea rdx, [rax + 0x70]
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov rcx, rsi
call fcn.4107eb00
mov eax, 1
jmp 0x4108f33e
mov rax, qword [rsi + 0x158]
cmp dword [rax + 0x468], 0xa
jne 0x4108e244
lea rcx, [rsi + 0x108]
mov r8d, 1
lea rdx, [0x412a5298]
call fcn.41024690
mov rcx, rsi
call fcn.4107eb00
mov eax, 1
jmp 0x4108f33e
mov eax, dword [r13 + 8]
cmp eax, 0x23
jne 0x4108e27b
lea rdx, [r13 + 0x70]
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov edx, 1
mov rcx, rsi
call fcn.4107c610
mov eax, 1
jmp 0x4108f33e
cmp eax, 0x1c
jne 0x4108e540
mov r14, r15
mov rcx, qword [rsi + 0x270]
mov rax, qword [rcx]
mov edx, 0x9b
call qword [rax + 0x20]
mov rdi, qword [rax]
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4108e2c6
xor edx, edx
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov r14, rax
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
cmove r14, r15
mov qword [rsp + 0xc0], 7
mov qword [rsp + 0xb8], r15
mov word [rsp + 0xa8], r15w
mov rax, qword [rsi + 0x158]
mov rbp, qword [rax + 0x460]
mov rdi, qword [rbp + 8]
cmp rdi, qword [rbp + 0x10]
jbe 0x4108e300
call fcn.41211d60
mov rax, qword [rsi + 0x158]
mov rbx, qword [rax + 0x460]
mov r12, qword [rbx + 0x10]
cmp qword [rbx + 8], r12
jbe 0x4108e31d
call fcn.41211d60
cmp rbp, rbx
je 0x4108e327
call fcn.41211d60
cmp rdi, r12
je 0x4108e363
cmp rdi, qword [rbp + 0x10]
jb 0x4108e337
call fcn.41211d60
lea rdx, [rdi + 0x50]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0xa0]
call fcn.41022c90
cmp rdi, qword [rbp + 0x10]
jb 0x4108e35a
call fcn.41211d60
add rdi, 0xa0
jmp 0x4108e300
lea rdx, [r13 + 0xc0]
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x78]
call fcn.41022de0
nop
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x48]
call fcn.4103a1b0
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.41022de0
nop
cmp qword [rsp + 0x68], 8
jb 0x4108e3d9
mov rcx, qword [rsp + 0x50]
call fcn.41210d60
cmp qword [rsi + 0x200], 8
jb 0x4108e3ec
mov rcx, qword [rsi + 0x1e8]
jmp 0x4108e3f3
lea rcx, [rsi + 0x1e8]
lea rdx, str.EXCEL.exe
call fcn.41213c60
test eax, eax
jne 0x4108e4c7
test r14, r14
je 0x4108e429
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108e429
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x80]
test rax, rax
jne 0x4108e43f
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
jne 0x4108e43f
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x4108e461
lea rdx, [rsp + 0x80]
cmp qword [rsp + 0x98], 8
cmovae rdx, qword [rsp + 0x80]
mov rcx, rax
call fcn.41036630
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x250], eax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0xa2
call qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x56
call qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x56
call qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0xa2
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rsi + 0x108]
xor r8d, r8d
lea rdx, [0x412a02a8]
call fcn.41024690
jmp 0x4108e4df
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x78]
call fcn.41022de0
mov rcx, rsi
call fcn.4107eb00
nop
cmp qword [rsp + 0x98], 8
jb 0x4108e500
mov rcx, qword [rsp + 0x80]
call fcn.41210d60
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], 0
cmp qword [rsp + 0xc0], 8
jb 0x4108e536
mov rcx, qword [rsp + 0xa8]
call fcn.41210d60
mov eax, 1
jmp 0x4108f33e
add eax, 0xfffffff1
cmp eax, 1
ja 0x4108e8ab
cmp qword [r13 + 0x90], 8
jb 0x4108e55c
mov rcx, qword [r13 + 0x78]
jmp 0x4108e560
lea rcx, [r13 + 0x78]
lea rdx, [0x412a94c0]
call fcn.41212810
mov r12, rax
cmp qword [r13 + 0x90], 8
jb 0x4108e57f
mov rcx, qword [r13 + 0x78]
jmp 0x4108e583
lea rcx, [r13 + 0x78]
lea rdx, [0x412a94bc]
call fcn.41212810
mov rbp, rax
cmp qword [r13 + 0x90], 8
jb 0x4108e5a2
mov rcx, qword [r13 + 0x78]
jmp 0x4108e5a6
lea rcx, [r13 + 0x78]
lea rdx, [0x412a94b8]
call fcn.41212810
mov ebx, r15d
test r12, r12
jne 0x4108e5c4
test rbp, rbp
jne 0x4108e5c4
test rax, rax
je 0x4108e5c9
mov ebx, 1
cmp qword [r13 + 0x88], 0x78
jbe 0x4108e5dc
call fcn.41044c90
test al, al
jne 0x4108e5e4
test ebx, ebx
je 0x4108e8ab
call fcn.41044c90
test al, al
je 0x4108e6eb
mov rcx, qword [rsi + 0x270]
mov rax, qword [rcx]
mov edx, 0x9b
call qword [rax + 0x20]
mov rbx, qword [rax]
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4108e650
xor edx, edx
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbx, rax
mov rcx, rax
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4108e650
test rbx, rbx
je 0x4108e650
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108e650
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x80]
test rax, rax
jne 0x4108e666
call qword [sym.imp.USER32.dll_GetFocus]
test rax, rax
jne 0x4108e666
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x4108e682
cmp qword [r13 + 0x90], 8
jb 0x4108e676
mov rdx, qword [r13 + 0x78]
jmp 0x4108e67a
lea rdx, [r13 + 0x78]
mov rcx, rax
call fcn.41036630
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x250], eax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0xa2
call qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x56
call qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x56
call qword [sym.imp.USER32.dll_keybd_event]
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0xa2
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rsi + 0x108]
xor r8d, r8d
lea rdx, [0x412a02a8]
call fcn.41024690
jmp 0x4108e899
mov qword [rsp + 0xc0], 7
mov qword [rsp + 0xb8], r15
mov word [rsp + 0xa8], r15w
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0xa0]
call fcn.41022de0
nop
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], r15
mov word [rsp + 0x50], 0
mov r9d, 2
lea r8, [0x412a94c0]
lea edx, [r9 + 0xc]
lea rcx, [rsp + 0x50]
call fcn.412118b0
mov qword [rsp + 0x60], 1
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
mov word [rax + 2], 0
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], 0
mov r9d, 4
lea r8, [0x412a510c]
lea edx, [r9 + 0xa]
lea rcx, [rsp + 0x80]
call fcn.412118b0
mov qword [rsp + 0x90], 2
lea rax, [rsp + 0x80]
cmp qword [rsp + 0x98], 8
cmovae rax, qword [rsp + 0x80]
mov word [rax + 4], 0
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0xa0]
call fcn.41039e70
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.41022de0
nop
cmp qword [rsp + 0x98], 8
jb 0x4108e820
mov rcx, qword [rsp + 0x80]
call fcn.41210d60
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], 0
cmp qword [rsp + 0x68], 8
jb 0x4108e850
mov rcx, qword [rsp + 0x50]
call fcn.41210d60
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], r15
mov word [rsp + 0x50], 0
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xa0]
call fcn.41022de0
nop
cmp qword [rsp + 0xc0], 8
jb 0x4108e899
mov rcx, qword [rsp + 0xa8]
call fcn.41210d60
mov rcx, rsi
call fcn.4107eb00
mov eax, 1
jmp 0x4108f33e
lea rcx, [rsp + 0xf0]
call fcn.41068090
nop
mov word [rsp + 0x270], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x272]
call fcn.412121c0
mov word [rsp + 0x480], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x482]
call fcn.412121c0
mov word [rsp + 0x690], 0
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x692]
call fcn.412121c0
mov dword [rsp + 0x30], r15d
xor r12d, r12d
mov edi, r12d
cmp dword [rsi + 0xec], r12d
jne 0x4108e946
mov eax, dword [r13 + 8]
cmp eax, 2
je 0x4108e946
cmp eax, 1
je 0x4108e946
cmp eax, 3
je 0x4108e946
cmp eax, 5
jne 0x4108ed56
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r12
mov word [rsp + 0x80], di
mov rdx, r14
mov rcx, rsi
call fcn.4107be70
mov r12, rax
mov rcx, qword [rsi + 0x158]
mov r14, qword [rcx + 0x460]
mov rbx, qword [r14 + 8]
cmp rbx, qword [r14 + 0x10]
jbe 0x4108e990
call fcn.41211d60
nop
mov rax, qword [rsi + 0x158]
mov rdi, qword [rax + 0x460]
mov rbp, qword [rdi + 0x10]
cmp qword [rdi + 8], rbp
jbe 0x4108e9ad
call fcn.41211d60
cmp r14, rdi
je 0x4108e9b7
call fcn.41211d60
cmp rbx, rbp
je 0x4108eabe
mov dword [rsp + 0x30], 1
cmp rbx, qword [r14 + 0x10]
jb 0x4108e9d3
call fcn.41211d60
cmp qword [rbx + 0x70], 8
jb 0x4108e9e0
mov rdx, qword [rbx + 0x58]
jmp 0x4108e9e4
lea rdx, [rbx + 0x58]
lea rdi, [rsp + 0x270]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
xor ecx, ecx
nop
nop
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x4108ea00
cmp qword [rbx + 0x20], 8
jb 0x4108ea1f
mov rdx, qword [rbx + 8]
jmp 0x4108ea23
lea rdx, [rbx + 8]
lea rdi, [rsp + 0x480]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
xor ecx, ecx
nop
nop
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x4108ea40
cmp qword [rbx + 0x98], 8
jb 0x4108ea65
mov rdx, qword [rbx + 0x80]
jmp 0x4108ea6c
lea rdx, [rbx + 0x80]
lea rdi, [rsp + 0x690]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
xor ecx, ecx
nop
movzx eax, word [rdx + rcx]
mov word [rdi + rcx - 2], ax
add rcx, 2
test ax, ax
jne 0x4108ea80
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbx + 0x78]
lea rcx, [rsp + 0x78]
call fcn.41022c90
cmp rbx, qword [r14 + 0x10]
jb 0x4108eab2
call fcn.41211d60
add rbx, 0xa0
jmp 0x4108e990
mov eax, dword [rsp + 0x90]
cdq
sub eax, edx
sar eax, 1
mov r15d, eax
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
call fcn.41142ec0
mov rcx, qword [rax + 0x38]
and rcx, 0xfffffffffffffffe
cmp rcx, 2
jbe 0x4108eaf9
mov rcx, rdi
call fcn.41142ec0
mov r14, qword [rax + 0x38]
shr r14, 1
jmp 0x4108eaff
mov r14d, 1
xor ebp, ebp
test r12, r12
je 0x4108eb6b
mov rdi, qword [r12 + 8]
cmp rdi, qword [r12 + 0x10]
jbe 0x4108eb20
call fcn.41211d60
nop
nop
nop
mov rbx, qword [r12 + 0x10]
cmp qword [r12 + 8], rbx
jbe 0x4108eb31
call fcn.41211d60
cmp rdi, rbx
je 0x4108eb6b
cmp rdi, qword [r12 + 0x10]
jb 0x4108eb42
call fcn.41211d60
lea rcx, [rdi + 8]
lea rdx, [0x4129b628]
call fcn.41038930
test al, al
je 0x4108eb59
add ebp, 1
cmp rdi, qword [r12 + 0x10]
jb 0x4108eb65
call fcn.41211d60
add rdi, 0x30
jmp 0x4108eb20
lea edi, [r14 + r15]
mov r14, qword [rsp + 0x38]
mov rcx, r14
call fcn.41142ec0
mov dx, 0x3b
lea rcx, [rax + 0x70]
call fcn.41037a10
test eax, eax
je 0x4108eb90
add edi, 1
cmp edi, ebp
jge 0x4108ed27
mov rdx, r14
mov rcx, qword [rsi + 0x158]
call fcn.4106b240
mov rcx, qword [rsi + 0x150]
call fcn.41086320
xor r15d, r15d
mov edi, r15d
mov rax, qword [rsi + 0x158]
mov r13, qword [rax + 0x460]
mov rbp, qword [r13 + 8]
cmp rbp, qword [r13 + 0x10]
jbe 0x4108ebe0
call fcn.41211d60
nop
nop
nop
mov rax, qword [rsi + 0x158]
mov rbx, qword [rax + 0x460]
mov r14, qword [rbx + 0x10]
cmp qword [rbx + 8], r14
jbe 0x4108ebfd
call fcn.41211d60
cmp r13, rbx
je 0x4108ec07
call fcn.41211d60
cmp rbp, r14
je 0x4108ec6a
cmp rbp, qword [r13 + 0x10]
jb 0x4108ec17
call fcn.41211d60
mov rax, qword [rbp + 0x90]
shr rax, 1
test eax, eax
jle 0x4108ec53
mov ebx, eax
nop
nop
nop
movsxd rdx, edi
mov rcx, r12
call fcn.4107f770
mov rdx, rax
mov rcx, qword [rsi + 0x150]
call fcn.41087f80
add edi, 1
sub rbx, 1
jne 0x4108ec30
cmp rbp, qword [r13 + 0x10]
jb 0x4108ec5e
call fcn.41211d60
add rbp, 0xa0
jmp 0x4108ebe0
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108ec7c
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rcx, rsi
call fcn.4108a880
cmp dword [rsi + 0x258], r15d
jle 0x4108ecda
cmp qword [rsp + 0x98], 8
jb 0x4108eca5
mov rcx, qword [rsp + 0x80]
call fcn.41210d60
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], 0
lea rcx, [rsp + 0xf0]
call fcn.41067d30
mov eax, 2
jmp 0x4108f33e
cmp qword [rsp + 0x98], 8
jb 0x4108ecf2
mov rcx, qword [rsp + 0x80]
call fcn.41210d60
mov qword [rsp + 0x98], 7
mov qword [rsp + 0x90], r15
mov word [rsp + 0x80], 0
lea rcx, [rsp + 0xf0]
call fcn.41067d30
mov eax, 1
jmp 0x4108f33e
mov edi, 1
cmp qword [rsp + 0x98], 8
jb 0x4108ed4e
mov rcx, qword [rsp + 0x80]
call fcn.41210d60
mov r15d, dword [rsp + 0x30]
xor r12d, r12d
jmp 0x4108ed56
mov r15d, dword [rsp + 0x30]
xor r12d, r12d
mov qword [rsp + 0xe8], 7
mov qword [rsp + 0xe0], r12
mov word [rsp + 0xd0], 0
xor r8d, r8d
lea rdx, [0x412a02a8]
lea rcx, [rsp + 0xc8]
call fcn.41024690
nop
xor r8d, r8d
lea rdx, [0x412a02a8]
lea rcx, [rsi + 0x108]
call fcn.41024690
test edi, edi
je 0x4108ef79
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x270]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x270]
lea rcx, [rsi + 0x108]
call fcn.41022fe0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [r13 + 0x70]
lea rcx, [rsi + 0x108]
call fcn.41022c90
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x270]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0xc8]
call fcn.41022fe0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [r13 + 0x70]
lea rcx, [rsp + 0xc8]
call fcn.41022c90
mov rdx, r13
mov rcx, qword [rsp + 0x108]
call fcn.41069540
mov rcx, qword [rsp + 0x108]
add rcx, 0x20
xor r8d, r8d
lea rdx, [0x412a02a8]
call fcn.41024690
mov rcx, qword [rsp + 0x108]
add rcx, 0x70
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xc8]
call fcn.41022de0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x480]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x480]
lea rcx, [rsp + 0x138]
call fcn.41024690
lea rdx, [r14 + 0x48]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x138]
call fcn.41022c90
mov r9, qword [rsp + 0x108]
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x690]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x690]
lea rcx, [r9 + 0x20]
call fcn.41022fe0
mov edx, dword [r13 + 0x14]
mov rax, qword [rsp + 0x108]
mov dword [rax + 0x14], edx
test r15d, r15d
je 0x4108ef18
mov rax, qword [rsp + 0x108]
mov dword [rax + 8], 5
jmp 0x4108ef58
mov ecx, dword [r13 + 8]
mov rax, qword [rsp + 0x108]
mov dword [rax + 8], ecx
mov ecx, dword [r13 + 0xc]
mov rax, qword [rsp + 0x108]
mov dword [rax + 0xc], ecx
mov rcx, qword [rsp + 0x108]
add rcx, 0xc0
lea rdx, [r13 + 0xc0]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov rcx, qword [rsp + 0x108]
add rcx, 0x20
lea rdx, [r13 + 0x20]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022c90
jmp 0x4108f078
lea rcx, [r13 + 0x70]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xa0]
call fcn.4103a080
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.41022c90
nop
cmp qword [rsp + 0xc0], 8
jb 0x4108efc2
mov rcx, qword [rsp + 0xa8]
call fcn.41210d60
mov rdx, r13
mov rcx, qword [rsp + 0x108]
call fcn.41069540
mov rcx, qword [rsp + 0x108]
add rcx, 0x70
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xc8]
call fcn.41022de0
mov edx, dword [r13 + 8]
mov rax, qword [rsp + 0x108]
mov dword [rax + 8], edx
mov ecx, dword [r13 + 0xc]
mov rax, qword [rsp + 0x108]
mov dword [rax + 0xc], ecx
mov rcx, qword [rsp + 0x108]
add rcx, 0x20
lea rdx, [r13 + 0x20]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov rcx, qword [rsp + 0x108]
add rcx, 0xc0
lea rdx, [r13 + 0xc0]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov edx, dword [r13 + 0x14]
mov rax, qword [rsp + 0x108]
mov dword [rax + 0x14], edx
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xc8]
lea rcx, [rsi + 0x108]
call fcn.41022c90
mov rdx, r13
mov rcx, qword [rsi + 0x168]
call fcn.41069540
lea rdx, [r14 + 0x48]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x138]
call fcn.41022de0
mov edx, dword [r14]
mov dword [rsp + 0xf0], edx
mov rcx, qword [rsi + 0x160]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rcx, qword [rsi + 0x158]
call fcn.4106a7c0
lea rcx, [rsp + 0x1b0]
call fcn.41068090
nop
mov rcx, rsi
call fcn.4107d240
call fcn.4107bc10
mov rcx, rax
lea rdx, [rsp + 0x1b0]
call fcn.411197b0
mov rcx, qword [rsi + 0x270]
mov rax, qword [rcx]
mov edx, 0x4e
call qword [rax]
mov ebx, eax
mov edx, 1
mov rcx, rsi
call fcn.4107c610
test ebx, ebx
jne 0x4108f136
lea rcx, [rsp + 0xf0]
call fcn.41142ec0
mov rdi, rax
call fcn.4107bc80
mov rcx, rax
mov r8d, dword [rsp + 0x44]
mov rdx, rdi
call fcn.4106bf30
lea rcx, [rsp + 0xf0]
call fcn.41142ec0
mov rcx, rax
call fcn.41067af0
call fcn.4102efa0
mov rcx, rax
call fcn.41072ee0
cmp dword [r14 + 4], 0
jl 0x4108f1ce
lea rcx, [rsp + 0xf0]
call fcn.41142ec0
mov rdx, rax
mov rcx, qword [rsi + 0x168]
call fcn.41069540
mov rcx, qword [rsi + 0x270]
mov rax, qword [rcx]
mov edx, 6
call qword [rax]
test eax, eax
je 0x4108f1a5
mov rax, qword [rsi + 0x168]
mov edx, dword [rax + 0x88]
mov rcx, rsi
call fcn.4107ba10
call fcn.41023510
mov rcx, rax
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8d, ebx
mov rdx, qword [rsi + 0x168]
call fcn.4113ae90
mov dword [rsi + 0x268], 1
mov rax, qword [rsi + 0x168]
mov rcx, qword [rax + 0x88]
add dword [rsi + 0x170], ecx
cmp dword [rsi + 0x170], 0x32
jl 0x4108f1f3
mov rcx, rsi
call fcn.4107ecf0
call fcn.4102efa0
mov rcx, rax
mov rdx, qword [rsi + 0x160]
call fcn.41077ea0
test eax, eax
jne 0x4108f219
mov rax, qword [rsi + 0x158]
mov dword [rax + 0x468], r12d
cmp dword [rsp + 0x40], 2
jne 0x4108f232
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108f232
mov rax, qword [rcx]
call qword [rax + 0x78]
mov rcx, qword [rsi + 0x160]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
jne 0x4108f292
mov rax, qword [rsi + 0x158]
mov dword [rax + 0x468], r12d
lea rdx, [0x412a02a8]
mov rcx, qword [rsi + 0x158]
call fcn.41069680
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108f276
mov rax, qword [rcx]
call qword [rax + 0x60]
mov rcx, rsi
call fcn.4107cf40
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108f2c2
mov rax, qword [rcx]
call qword [rax + 0x58]
jmp 0x4108f2c2
mov rcx, qword [rsi + 0x278]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, rsi
call fcn.410819f0
mov rcx, qword [rsi + 0x278]
test rcx, rcx
je 0x4108f2b9
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, rsi
call fcn.4107cf40
nop
lea rcx, [rsp + 0x1b0]
call fcn.41067d30
nop
cmp qword [rsp + 0xe8], 8
jb 0x4108f2e8
mov rcx, qword [rsp + 0xd0]
call fcn.41210d60
mov qword [rsp + 0xe8], 7
mov qword [rsp + 0xe0], r12
mov word [rsp + 0xd0], 0
lea rcx, [rsp + 0xf0]
call fcn.41067d30
mov eax, 1
jmp 0x4108f33e
lea rdx, [rax + 0x70]
lea rcx, [rsi + 0x108]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.41022de0
mov rcx, rsi
call fcn.4107eb00
mov eax, 1
mov rcx, qword [rsp + 0x8a0]
xor rcx, rsp
call fcn.41211b80
mov rbx, qword [rsp + 0x900]
add rsp, 0x8b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret