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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov rax, qword [0x100190170]
xor rax, rsp
mov qword [rsp + 0x100], rax
xor ebx, ebx
mov r15, rcx
mov rdi, rdx
mov rdx, qword [rdx + 8]
mov rax, qword [r15 + 0x150]
mov qword [rsp + 0x88], rcx
mov ecx, dword [rdx + 0x24]
mov esi, ebx
mov qword [rsp + 0x48], rbx
mov r8, qword [rax + rcx*8]
mov r14, rbx
mov qword [rsp + 0x60], rbx
mov r13, rbx
mov qword [rsp + 0x50], rbx
cmp qword [r8 + 0x68], rbx
jne 0x1000b9620
mov eax, dword [rdx + 0x2c]
mov rcx, qword [r15 + 0x40]
add eax, dword [r8 + 0x4c]
mov edx, dword [rax + rcx]
jmp 0x1000b9652
mov ecx, dword [rdx + 0x24]
mov rcx, qword [rax + rcx*8]
mov r9, qword [rcx + 0x68]
cmp r9, rbx
jne 0x1000b9636
mov rcx, qword [r15 + 0x40]
jmp 0x1000b9641
mov rax, qword [r15 + 0x98]
mov rcx, qword [rax + 0x18]
mov eax, dword [rdx + 0x2c]
add eax, dword [r8 + 0x4c]
mov ecx, dword [rax + rcx]
mov rax, qword [r9 + 0x10]
mov edx, dword [rax + rcx*4]
mov eax, edx
mov r11d, 1
lea rcx, [rax + rax*4]
mov rax, qword [r15 + 0x30]
and dword [rdi + 0x18], 0xfffffffe
lea r12, [rax + rcx*8]
mov qword [rsp + 0x58], r12
cmp qword [r12 + 8], rbx
jne 0x1000b967d
mov qword [r12 + 0x18], rbx
jmp 0x1000b9698
mov rdx, r12
mov rcx, r15
call fcn.1000ea560
cmp eax, ebx
mov esi, eax
jl 0x1000b9990
mov r11d, 1
mov dword [rdi + 0x1c], ebx
mov r13d, r11d
mov ecx, 0xb5
cmp r11w, word [rdi + 0x4a]
jae 0x1000b976c
xor ebp, ebp
lea r12d, [rcx - 0xd]
mov rax, qword [rdi + 8]
lea rbx, [r12 + rax]
mov eax, 0xb4
cmp word [rbx + 0x7a], ax
je 0x1000b96f6
cmp word [rbx + 0x7a], cx
je 0x1000b96f6
cmp bp, word [rbx + 0x76]
jae 0x1000b974a
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
mov rcx, r15
call fcn.1000f3ef0
cmp eax, ebp
mov esi, eax
jl 0x1000baa0e
mov r11d, 1
jmp 0x1000b9745
mov rcx, qword [rbx + 0x50]
cmp rcx, rbp
je 0x1000b970f
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x50], rbp
mov r11d, 1
xor ecx, ecx
cmp cx, word [rbx + 0x76]
jae 0x1000b9743
mov r9d, ebp
mov r8, rbx
mov rdx, rdi
mov rcx, r15
call fcn.1000f3ef0
mov esi, eax
xor eax, eax
cmp esi, eax
jl 0x1000baa09
lea r11d, [rax + 1]
movzx eax, word [rbx + 0x76]
add ebp, r11d
cmp ebp, eax
jb 0x1000b9717
xor ebp, ebp
mov ecx, 0xb5
mov word [rbx + 0x76], bp
movzx eax, word [rdi + 0x4a]
add r13d, r11d
add r12, 0xa8
cmp r13d, eax
jb 0x1000b96b4
mov r12, qword [rsp + 0x58]
xor ebx, ebx
mov word [rdi + 0x4a], r11w
mov word [rdi + 0x48], bx
mov word [rdi + 0x2e], bx
lea r8, [rdi + 0x38]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0xa0], rbx
mov word [r8], bx
mov word [r8 + 2], bx
mov word [r8 + 4], bx
mov word [r8 + 6], bx
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xc8], rbx
test byte [r12 + 0x24], r11b
je 0x1000baa41
mov r14, qword [r12 + 0x10]
mov qword [rsp + 0x70], rbx
xor ebx, ebx
mov r10d, r11d
mov dword [rsp + 0x68], r11d
mov r13, rbx
mov qword [rsp + 0x80], rbx
mov ebp, r11d
cmp qword [r12 + 8], rbx
je 0x1000b9ab0
mov rax, qword [r14]
mov rcx, r14
add r12, 0x18
call qword [rax + 0x18]
lea r9, [rsp + 0xe8]
mov r8, r12
mov rdx, rax
lea rax, [rsp + 0xf0]
mov rcx, r15
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x20], rax
call fcn.1000f36e0
cmp eax, ebx
mov esi, eax
jl 0x1000b9983
bt dword [r15 + 0x48], 0xb
jae 0x1000b988d
cmp qword [r12], rbx
je 0x1000b988d
mov ecx, dword [rsp + 0xe8]
lea rdx, [rsp + 0x50]
call fcn.1000a97d0
cmp eax, ebx
mov esi, eax
jl 0x1000b9983
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r8d, dword [rsp + 0xe8]
mov rdx, qword [r12]
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_memcpy
mov qword [r12], rbx
xor ebx, ebx
mov rax, qword [rsp + 0xf0]
mov rcx, r14
mov qword [rdi + 0x38], rax
mov rax, qword [r14]
call qword [rax + 0x18]
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x70]
mov rcx, rax
mov edx, 0x53455250
call fcn.1000de978
cmp eax, ebx
jl 0x1000baa75
jne 0x1000b99ea
mov rbx, qword [rsp + 0x70]
lea r9, [rsp + 0xe0]
lea r8, [rsp + 0x80]
mov edx, 0x49535250
mov rcx, rbx
mov dword [rsp + 0x68], 2
call fcn.1000de978
xor ecx, ecx
cmp eax, ecx
jl 0x1000baa75
lea rax, [rsp + 0xd0]
lea r8, [rsp + 0xa8]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xe0]
mov rdx, rbx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xe8]
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.1000f36e0
xor ebx, ebx
cmp eax, ebx
mov esi, eax
jl 0x1000baa75
mov r13, qword [rsp + 0x80]
mov ebx, 1
lea rdx, [rsp + 0xd0]
mov rcx, r13
lea r8d, [rbx + 2]
movzx eax, word [rcx + 0xc]
add ax, word [rcx]
add rcx, 4
mov word [rdx], ax
add rdx, 2
sub r8, rbx
jne 0x1000b9960
xor ebx, ebx
mov word [rsp + 0xd6], bx
jmp 0x1000b99f6
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov r14, rbx
mov rbp, rbx
mov rdx, rdi
mov rcx, r15
call fcn.1000f7e20
bt dword [r15 + 0x48], 0xb
jae 0x1000b99c0
mov rcx, qword [r12 + 0x10]
cmp rcx, rbx
je 0x1000b99bb
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [r12 + 0x10], rbx
mov qword [r12 + 0x10], r13
cmp rbp, rbx
je 0x1000baa6b
movsxd rdi, dword [rbp - 8]
mov rax, qword [rsp + 0x48]
mov r12d, 1
mov rbx, rdi
imul rbx, rbx, 0xa8
add rbx, rax
jmp 0x1000baa5d
xor eax, eax
mov esi, ebx
mov qword [rsp + 0xd0], rax
mov r8d, ebx
lea r9, [rdi + 0x44]
mov rdx, rbx
mov r11d, 1
movzx r10d, word [rsp + rdx + 0xf8]
cmp bx, r10w
jne 0x1000b9a2a
movzx eax, word [rsp + rdx + 0xd8]
cmp word [rsp + rdx + 0xf0], ax
mov al, r11b
je 0x1000b9a2c
mov al, bl
mov byte [r9], al
cmp r8d, ebx
jne 0x1000b9a5a
movzx eax, word [rsp + rdx + 0xd8]
cmp ax, bx
jbe 0x1000b9a6c
movzx ecx, ax
movzx eax, r10w
add ecx, eax
movzx eax, word [rsp + rdx + 0xf0]
cmp eax, ecx
je 0x1000b9a6c
mov ebp, ebx
jmp 0x1000b9a6c
cmp word [rsp + rdx + 0xd8], bx
jbe 0x1000b9a6c
neg al
sbb eax, eax
and eax, ebp
mov ebp, eax
add r8d, r11d
add r9, r11
add rdx, 2
cmp r8d, 4
jb 0x1000b9a06
mov ax, word [rsp + 0xd4]
mov r10d, dword [rsp + 0x68]
lea r8, [rdi + 0x38]
mov dword [rsp + 0xe8], eax
movzx eax, word [rsp + 0xd2]
mov word [rsp + 0x40], ax
movzx eax, word [rsp + 0xd0]
mov word [rsp + 0x42], ax
jmp 0x1000b9b08
add r12, 0x18
lea rax, [rdi + 0x44]
mov rcx, r8
mov dword [rsp + 0xe8], ebx
mov word [rsp + 0x42], bx
mov word [rsp + 0xd0], bx
mov qword [r12], rbx
mov word [rsp + 0x40], bx
mov word [rsp + 0xd2], bx
mov word [rsp + 0xd4], bx
mov word [rsp + 0xd6], bx
mov edx, 4
mov byte [rax], bl
mov word [rcx], bx
add rcx, 2
add rax, r11
sub rdx, r11
jne 0x1000b9af5
mov ebp, ebx
mov r14, qword [r12]
mov eax, dword [rdi + 0x18]
movzx ecx, word [r8]
and ebp, r11d
and eax, 0xfffffff5
mov word [rdi + 0x62], r11w
add ebp, ebp
mov word [rdi + 0x6a], r11w
mov word [rdi + 0x70], r11w
or ebp, eax
mov word [rdi + 0x76], r11w
mov word [rdi + 0x60], r11w
mov word [rdi + 0x68], r11w
mov word [rdi + 0x6e], r11w
mov word [rdi + 0x74], r11w
mov dword [rdi + 0x18], ebp
cmp cx, bx
jbe 0x1000b9b62
mov rax, qword [rsp + 0xf8]
sub cx, ax
mov word [rdi + 0x64], ax
mov word [rdi + 0x66], cx
jmp 0x1000b9b6a
mov word [rdi + 0x64], bx
mov word [rdi + 0x66], bx
movzx eax, word [rdi + 0x3c]
mov word [rdi + 0x6c], ax
movzx eax, word [rdi + 0x3a]
mov word [rdi + 0x72], ax
cmp qword [r12], rbx
je 0x1000baa2a
movzx eax, word [rdi + 0x4c]
or ebp, 0x10
or r9, 0xffffffffffffffff
mov dword [rdi + 0x18], ebp
mov ecx, dword [r14 + 0xc]
mov esi, 0xffff
add ecx, r10d
cmp eax, ecx
jae 0x1000b9dc1
mov ebx, ecx
mov eax, 0xa8
mul rbx
lea rdx, [0x100002840]
cmovo rax, r9
add rax, 8
cmovb rax, r9
mov rcx, rax
call fcn.10007b104
xor ecx, ecx
cmp rax, rcx
je 0x1000b9c0d
lea r9d, [rbx - 1]
lea rbp, [rax + 8]
mov dword [rax], ebx
xor ebx, ebx
mov qword [rsp + 0x48], rbp
mov rcx, rbp
cmp r9d, ebx
jl 0x1000b9c03
mov ebx, 1
call fcn.1000bb3c4
add rcx, 0xa8
sub r9d, ebx
jns 0x1000b9bf0
xor ebx, ebx
mov qword [rsp + 0xe0], rbp
jmp 0x1000b9c1f
xor ebx, ebx
mov rbp, rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0xe0], rbx
cmp rbp, rbx
jne 0x1000b9c2e
mov esi, 0x8007000e
jmp 0x1000ba334
mov edx, dword [rsp + 0x68]
lea rcx, [rsp + 0xe0]
add edx, dword [r14 + 0xc]
call fcn.1000bab48
cmp eax, ebx
jge 0x1000b9c5e
mov rbp, qword [rsp + 0xe0]
mov esi, 0x8007000e
mov qword [rsp + 0x48], rbp
jmp 0x1000ba334
mov rax, qword [rdi + 8]
mov rbx, qword [rsp + 0xe0]
movzx ecx, word [rax + 0x7a]
lea rax, [0x10001901c]
mov word [rbx + 0x7a], cx
lea rcx, [rcx + rcx*4]
mov eax, dword [rax + rcx*8]
mov rcx, rbx
mov dword [rbx + 0x80], eax
mov eax, 1
mov word [rbx + 0x7c], si
mov word [rbx + 0x7e], ax
mov rdx, qword [rdi + 8]
lea r8d, [rax + 0x3f]
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 8]
xor edx, edx
mov ecx, dword [rax + 0x40]
mov r11d, 1
shl ecx, 0x1f
sar ecx, 0x1f
xor ecx, dword [rbx + 0x40]
and ecx, r11d
xor dword [rbx + 0x40], ecx
mov rax, qword [rdi + 8]
mov ecx, dword [rax + 0x40]
shl ecx, 0x1e
sar ecx, 0x1e
xor ecx, dword [rbx + 0x40]
and ecx, 2
xor ecx, dword [rbx + 0x40]
mov dword [rbx + 0x40], ecx
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x58]
mov qword [rbx + 0x58], rcx
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x48]
mov qword [rbx + 0x48], rcx
mov rax, qword [rdi + 8]
movzx ecx, word [rax + 0x76]
mov word [rbx + 0x76], cx
mov rax, qword [rdi + 8]
movzx ecx, word [rax + 0x78]
mov word [rbx + 0x78], cx
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x50]
mov qword [rbx + 0x50], rcx
mov rax, qword [rdi + 8]
mov qword [rax + 0x48], rdx
mov rax, qword [rdi + 8]
mov word [rax + 0x76], dx
mov rax, qword [rdi + 8]
mov word [rax + 0x78], dx
mov rax, qword [rdi + 8]
mov qword [rax + 0x50], rdx
mov rcx, qword [rdi + 8]
mov eax, dword [rcx + 0x70]
add rax, qword [rdi]
mov qword [rcx + 0x98], rax
mov rax, qword [rdi + 8]
cmp rax, rdx
je 0x1000b9d9d
lea rcx, [rax - 8]
mov qword [rsp + 0x48], rcx
movsxd rbp, dword [rcx]
mov rsi, rbp
imul rsi, rsi, 0xa8
add rsi, rax
sub ebp, r11d
js 0x1000b9d92
mov r15, r11
sub rsi, 0xa8
mov rcx, rsi
call fcn.1000bb444
sub ebp, r15d
jns 0x1000b9d71
mov r15, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
mov r11d, 1
mov qword [rdi + 8], rbx
mov rax, qword [r12]
xor ebx, ebx
movzx ecx, word [rax + 0xc]
mov rbp, rbx
mov qword [rsp + 0x48], rbx
add cx, r11w
lea r8, [rdi + 0x38]
mov word [rdi + 0x4c], cx
jmp 0x1000b9dc6
mov rbp, qword [rsp + 0x48]
mov cx, word [rsp + 0x42]
movzx eax, word [rdi + 0x64]
shl eax, 4
cmp word [r8], cx
mov dword [rdi + 0x54], eax
movzx eax, cx
cmova ax, word [r8]
mov r8d, 3
movzx ecx, ax
shl ecx, 4
mov eax, ecx
and ecx, r8d
shr eax, 2
lea edx, [rcx + rax*4]
mov cx, word [rsp + 0x40]
cmp word [rdi + 0x3a], cx
movzx eax, cx
mov dword [rsp + 0xf0], edx
cmova ax, word [rdi + 0x3a]
mov dword [rdi + 0x5c], edx
movzx eax, ax
lea ecx, [rdx + rax*4]
mov eax, ecx
and ecx, r8d
shr eax, 2
lea edx, [rcx + rax*4]
mov ecx, dword [rsp + 0xe8]
cmp word [rdi + 0x3c], cx
movzx eax, cx
mov dword [rsp + 0x80], edx
cmova ax, word [rdi + 0x3c]
mov dword [rdi + 0x58], edx
movzx ecx, ax
shl ecx, 4
add ecx, edx
mov eax, ecx
and ecx, r8d
shr eax, 2
lea eax, [rcx + rax*4]
movzx ecx, word [rdi + 0x3e]
mov dword [rsp + 0xe0], eax
lea eax, [rax + rcx*4]
mov word [rdi + 0x48], cx
mov dword [rdi + 0x20], eax
cmp qword [rsp + 0x70], rbx
je 0x1000ba314
movzx eax, word [rdi + 0x4a]
mov r12, rax
add ax, r11w
mov word [rdi + 0x4a], ax
imul r12, r12, 0xa8
add r12, qword [rdi + 8]
mov eax, dword [r12 + 0x40]
mov qword [r12 + 0x10], rbx
lea rbx, [r12 + 0x50]
and eax, 0xfffffff5
or eax, r11d
mov dword [r12 + 0x40], eax
or dword [rdi + 0x18], 8
xor eax, eax
cmp rbx, rax
jne 0x1000b9eba
mov esi, 0x8876086c
jmp 0x1000b9ecd
mov ecx, dword [rsp + 0x78]
mov rdx, rbx
add ecx, 0x68
call fcn.1000a97d0
mov esi, eax
xor eax, eax
cmp esi, eax
jl 0x1000ba9f3
mov rcx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov edx, dword [r13 + 0xc]
mov r8d, dword [r13 + 4]
add edx, dword [r13]
add r8d, dword [r13 + 0x10]
mov rbp, rax
mov r9d, dword [r13 + 0x14]
shl edx, 2
shl r8d, 2
add r9d, dword [r13 + 8]
mov eax, edx
xor r10d, r10d
shr eax, 1
shl r9d, 2
mov dword [rbp + 0x18], r10d
or edx, eax
mov eax, edx
shr eax, 2
or edx, eax
mov eax, edx
shr eax, 4
or edx, eax
mov eax, edx
shr eax, 8
or edx, eax
mov eax, edx
shr eax, 0x10
or edx, eax
mov eax, r8d
shr eax, 1
mov dword [rbp], edx
or r8d, eax
mov eax, r8d
shr eax, 2
or r8d, eax
mov eax, r8d
shr eax, 4
or r8d, eax
mov eax, r8d
shr eax, 8
or r8d, eax
mov eax, r8d
shr eax, 0x10
or r8d, eax
mov eax, r9d
shr eax, 1
mov dword [rbp + 4], r8d
or r9d, eax
mov eax, r9d
shr eax, 2
or r9d, eax
mov eax, r9d
shr eax, 4
or r9d, eax
mov eax, r9d
shr eax, 8
or r9d, eax
mov eax, r9d
shr eax, 0x10
or r9d, eax
mov dword [rbp + 8], r9d
mov eax, dword [r13 + 0xc]
add eax, dword [r13]
shl eax, 2
mov dword [rbp + 0xc], eax
cmp eax, r10d
jbe 0x1000b9fa8
dec eax
mov dword [rbp + 0xc], eax
mov eax, dword [r13 + 4]
add eax, dword [r13 + 0x10]
shl eax, 2
mov dword [rbp + 0x10], eax
cmp eax, r10d
jbe 0x1000b9fc0
dec eax
mov dword [rbp + 0x10], eax
mov eax, dword [r13 + 0x14]
add eax, dword [r13 + 8]
shl eax, 2
mov dword [rbp + 0x14], eax
cmp eax, r10d
jbe 0x1000b9fd8
dec eax
mov dword [rbp + 0x14], eax
mov eax, dword [rbp + 0xc]
shr eax, 1
or eax, dword [rbp + 0xc]
mov ecx, eax
shr ecx, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or eax, ecx
mov ecx, eax
shr ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0x10]
shr eax, 1
or eax, dword [rbp + 0x10]
mov ecx, eax
shr ecx, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or eax, ecx
mov ecx, eax
shr ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov dword [rbp + 0x10], eax
mov eax, dword [rbp + 0x14]
shr eax, 1
or eax, dword [rbp + 0x14]
mov ecx, eax
shr ecx, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or eax, ecx
mov ecx, eax
shr ecx, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov dword [rbp + 0x14], eax
mov ecx, dword [rdi + 0x20]
mov eax, ecx
and ecx, 7
shr eax, 3
lea eax, [rcx + rax*8]
mov dword [rdi + 0x20], eax
mov dword [rbp + 0x1c], eax
mov eax, edx
shl eax, 3
add dword [rdi + 0x20], eax
mov ecx, dword [rdi + 0x20]
mov eax, ecx
and ecx, 7
shr eax, 3
lea eax, [rcx + rax*8]
mov dword [rdi + 0x20], eax
mov dword [rbp + 0x20], eax
mov eax, r8d
shl eax, 3
add dword [rdi + 0x20], eax
mov ecx, dword [rdi + 0x20]
mov eax, ecx
and ecx, 7
shr eax, 3
lea eax, [rcx + rax*8]
mov dword [rdi + 0x20], eax
mov dword [rbp + 0x24], eax
mov eax, r9d
shl eax, 3
add dword [rdi + 0x20], eax
mov ecx, dword [rdi + 0x20]
lea eax, [r9 + r8]
add eax, edx
jne 0x1000ba0b4
lea eax, [rcx + 8]
mov dword [rdi + 0x20], eax
mov eax, dword [rsp + 0xf0]
mov dword [rbp + 0x28], r10d
mov r8d, 3
mov dword [rbp + 0x2c], eax
mov eax, dword [rsp + 0x80]
mov rcx, r13
mov dword [rbp + 0x30], eax
lea rdx, [rbp + 0x40]
lea r15d, [r8 - 2]
mov word [r12 + 0x7e], r10w
mov word [r12 + 0x7c], r10w
mov eax, dword [rcx + 0xc]
mov dword [rdx + 0xc], eax
mov eax, dword [rcx]
add rcx, 4
mov dword [rdx], eax
add rdx, 4
sub r8, r15
jne 0x1000ba0e9
mov r9, qword [rsp + 0x70]
mov esi, dword [rsp + 0x78]
lea rax, [rbp + 0x5c]
sub r13d, r9d
mov qword [rsp + 0x70], rax
mov r8, rsi
lea edx, [r13 + 0x80]
mov dword [rax], edx
mov ecx, dword [rdx + r9 - 0x68]
lea edx, [rdx + rcx*8 + 4]
mov dword [rbp + 0x60], edx
mov ecx, dword [rdx + r9 - 0x68]
lea eax, [rdx + rcx*8 + 4]
lea rcx, [rbp + 0x68]
mov rdx, r9
mov dword [rbp + 0x64], eax
call sub.msvcrt.dll_memcpy
lea r9, [r12 + 0x68]
lea r8, [r12 + 0x60]
lea rcx, [rbp + 0x68]
mov edx, esi
call fcn.1000942c8
mov r15, qword [rsp + 0x88]
xor ebx, ebx
cmp eax, ebx
mov esi, eax
jl 0x1000baa13
movzx eax, word [rdi + 0x4a]
mov r9, rbp
mov rdx, rdi
dec eax
mov rcx, r15
movsxd r8, eax
imul r8, r8, 0xa8
add r8, qword [rdi + 8]
call fcn.1000f3c30
cmp eax, ebx
mov esi, eax
jl 0x1000baa13
mov eax, 0xb5
mov dword [r12 + 0x80], 0x11000000
lea r13, [rdi + 0x38]
mov word [r12 + 0x7a], ax
or dword [rdi + 0x18], 2
mov r12d, ebx
lea rax, [rbp + 0x5c]
mov r10, rbx
movzx r8d, word [rsp + r10 + 0xd0]
cmp r8w, bx
je 0x1000ba2a7
mov eax, dword [rax]
mov edx, 0xffff
mov r9d, ebx
add rax, rbp
mov ecx, dword [rax]
add rax, 4
cmp ecx, ebx
jbe 0x1000ba205
mov r11, rcx
cmp dx, word [rax]
cmovae dx, word [rax]
add r9d, dword [rax + 4]
add rax, 8
sub r11, 1
jne 0x1000ba1f0
cmp r12d, ebx
jne 0x1000ba273
mov r11w, word [rsp + r10 + 0xd8]
cmp r11w, bx
jne 0x1000ba223
cmp r9d, ebx
jne 0x1000ba246
movzx edx, bx
jmp 0x1000ba246
cmp r9d, ebx
jne 0x1000ba233
mov dx, word [rsp + r10 + 0xf8]
jmp 0x1000ba246
cmp word [rsp + r10 + 0xf8], dx
cmovb dx, word [rsp + r10 + 0xf8]
cmp word [r13], r8w
movzx ecx, r11w
movzx ebx, dx
cmova r8w, word [r13]
add ecx, r9d
movzx eax, r8w
add ecx, ebx
cmp ecx, eax
jne 0x1000ba2c6
shl ebx, 4
mov word [rdi + 0x64], dx
mov dword [rdi + 0x54], ebx
xor ebx, ebx
jmp 0x1000ba293
cmp word [r13], r8w
movzx r11d, word [rsp + r10 + 0xd8]
cmova r8w, word [r13]
lea ecx, [r9 + r11]
movzx eax, r8w
cmp ecx, eax
jne 0x1000ba2ce
mov rax, qword [rsp + 0x70]
cmp r9d, ebx
jbe 0x1000ba2a7
cmp r11w, bx
jne 0x1000ba2a7
or dword [rdi + 0x18], 0x20
add rax, 4
inc r12d
add r10, 2
add r13, 2
mov qword [rsp + 0x70], rax
cmp r12d, 3
jae 0x1000ba2d2
jmp 0x1000ba1c3
and dword [rdi + 0x18], 0xfffffffd
xor ebx, ebx
jmp 0x1000ba2d2
and dword [rdi + 0x18], 0xfffffffd
test byte [rdi + 0x18], 2
je 0x1000ba314
mov ax, word [rsp + 0x42]
cmp word [rdi + 0x38], ax
cmova ax, word [rdi + 0x38]
sub ax, word [rdi + 0x64]
mov word [rdi + 0x66], ax
mov eax, dword [rsp + 0xe8]
cmp word [rdi + 0x3c], ax
cmova ax, word [rdi + 0x3c]
mov word [rdi + 0x6c], ax
mov ax, word [rsp + 0x40]
cmp word [rdi + 0x3a], ax
cmova ax, word [rdi + 0x3a]
mov word [rdi + 0x72], ax
mov rcx, rdi
call fcn.1000b2c28
cmp eax, ebx
mov esi, eax
jl 0x1000ba32f
mov eax, dword [rdi + 0x20]
cmp eax, dword [rdi + 0x24]
jbe 0x1000ba348
mov esi, 0x8007000e
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov r14, qword [rsp + 0x60]
jmp 0x1000b9993
mov rcx, qword [rdi]
mov r8, rax
xor edx, edx
call sub.msvcrt.dll_memset
mov word [rdi + 0x48], bx
mov ecx, dword [r14 + 0xc]
mov ebp, 8
mov rax, rbp
mul rcx
lea rcx, [rbp - 9]
lea rdx, [0x100002840]
cmovo rax, rcx
mov rcx, rax
call fcn.10007b104
xor r13d, r13d
mov rbx, rax
mov qword [rsp + 0x60], rax
cmp rax, r13
jne 0x1000ba3a1
mov rbp, qword [rsp + 0x48]
mov esi, 0x8007000e
mov r14, rax
jmp 0x1000ba9f8
mov eax, dword [r14 + 0x10]
mov edx, r13d
mov r12d, 1
add rax, r14
cmp dword [r14 + 0xc], r13d
jbe 0x1000ba3cd
mov rcx, rbx
mov qword [rcx], rax
add edx, r12d
add rcx, rbp
add rax, 0x14
cmp edx, dword [r14 + 0xc]
jb 0x1000ba3ba
mov edx, dword [r14 + 0xc]
lea r9, [0x1000f3f78]
mov r8, rbp
mov rcx, rbx
call sub.msvcrt.dll_qsort
mov eax, dword [r14 + 0x10]
movzx r8d, r13w
movzx r9d, r13w
movzx r10d, r13w
cmp dword [r14 + 0xc], r13d
jbe 0x1000ba42d
mov r11d, dword [r14 + 0xc]
lea rdx, [rax + r14 + 4]
movzx ecx, word [rdx]
cmp ecx, r13d
je 0x1000ba420
sub ecx, r12d
je 0x1000ba41a
sub ecx, r12d
jne 0x1000ba424
add r8w, r12w
jmp 0x1000ba424
add r9w, r12w
jmp 0x1000ba424
add r10w, r12w
add rdx, 0x14
sub r11, r12
jne 0x1000ba402
movzx eax, word [r14 + 0xc]
mov r11w, word [rdi + 0x4a]
mov dword [rsp + 0x78], r13d
lea edx, [r8 + r11]
add ax, r11w
mov word [rdi + 0x60], r11w
lea r8d, [r9 + rdx]
mov word [rdi + 0x4a], ax
mov word [rdi + 0x68], dx
lea r9d, [r10 + r8]
mov word [rdi + 0x6e], r8w
mov qword [rsp + 0x70], r11
mov word [rdi + 0x74], r9w
mov word [rsp + 0x40], dx
mov word [rsp + 0x42], r8w
mov word [rsp + 0x68], r9w
cmp dword [r14 + 0xc], r13d
jbe 0x1000ba6fa
mov rax, rbx
mov qword [rsp + 0x88], rbx
mov rbp, qword [rax]
xor eax, eax
movzx ecx, word [rbp + 4]
cmp ecx, eax
je 0x1000ba4d8
sub ecx, r12d
je 0x1000ba4c9
sub ecx, r12d
je 0x1000ba4ba
cmp ecx, r12d
jne 0x1000ba4e6
movzx r13d, r9w
add r9w, r12w
mov word [rsp + 0x68], r9w
jmp 0x1000ba4e6
movzx r13d, r11w
add r11w, r12w
mov qword [rsp + 0x70], r11
jmp 0x1000ba4e6
movzx r13d, dx
add dx, r12w
mov word [rsp + 0x40], dx
jmp 0x1000ba4e6
movzx r13d, r8w
add r8w, r12w
mov word [rsp + 0x42], r8w
movzx eax, word [rbp + 6]
mov ebx, r13d
mov r8d, 0xa
mov rcx, r15
imul rbx, rbx, 0xa8
add rbx, qword [rdi + 8]
mov word [rbx + 0x7c], ax
movzx eax, word [rbp + 8]
or dword [rbx + 0x40], 9
mov word [rbx + 0x7e], ax
mov edx, dword [rbp]
add rdx, r14
call fcn.1000f41a0
xor r8d, r8d
mov r12, rax
cmp rax, r8
je 0x1000ba5e6
test byte [rax + 0x44], 8
je 0x1000ba54c
test byte [rbp + 0xa], 2
je 0x1000ba9e2
xor r13d, r13d
mov word [rbx + 0x7a], r13w
mov dword [rbx + 0x70], r13d
jmp 0x1000ba6b3
mov esi, 1
cmp word [rbx + 0x78], si
jae 0x1000ba598
lea rdx, [0x100002840]
lea ecx, [rsi + 0x37]
call fcn.10007b104
xor ecx, ecx
cmp rax, rcx
je 0x1000ba584
mov dword [rax], esi
add rax, 8
mov qword [rax + 0x20], rax
mov qword [rax + 0x28], rax
mov qword [rax + 0x10], rcx
mov qword [rax], rcx
jmp 0x1000ba587
mov rax, rcx
mov qword [rbx + 0x48], rax
cmp rax, rcx
je 0x1000ba9e9
mov word [rbx + 0x78], si
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
mov rcx, r15
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], r12
call fcn.1000b7e14
mov esi, eax
xor eax, eax
cmp esi, eax
jl 0x1000ba9ee
mov eax, 1
mov rcx, rbx
mov rdx, r12
lea r8d, [rax + 0x3f]
mov word [rbx + 0x76], ax
call sub.msvcrt.dll_memcpy
xor r8d, r8d
and dword [rbx + 0x40], 0xfffffffd
mov qword [rbx + 0x30], r8
mov qword [rbx + 0x38], r8
mov qword [rbx + 0x58], r14
movzx ecx, word [rbp + 4]
cmp ecx, r8d
je 0x1000ba96d
mov r11d, 1
sub ecx, r11d
je 0x1000ba8a4
sub ecx, r11d
je 0x1000ba712
cmp ecx, r11d
jne 0x1000ba6a3
mov ecx, dword [rsp + 0xe0]
mov eax, 0xb2
mov dword [rbx + 0x80], 0xf000000
mov word [rbx + 0x7a], ax
movzx eax, word [rbp + 6]
and dword [rbx + 0x40], 0xfffffffd
lea ecx, [rcx + rax*4]
mov dword [rbx + 0x70], ecx
mov rax, qword [rdi]
cmp r12, r8
je 0x1000ba677
movzx edx, word [r12 + 0x70]
add dx, r11w
mov word [rcx + rax], dx
mov rax, qword [rdi]
mov ecx, dword [rbx + 0x70]
mov word [rcx + rax + 2], r8w
movzx eax, word [r12 + 0x72]
cmp word [rbx + 0x7e], ax
cmovb ax, word [rbx + 0x7e]
mov word [rbx + 0x7e], ax
jmp 0x1000ba68b
mov ecx, dword [rbx + 0x70]
mov word [rcx + rax], r8w
mov ecx, dword [rbx + 0x70]
mov rax, qword [rdi]
mov word [rcx + rax + 2], r8w
movzx eax, word [rdi + 0x48]
mov ecx, dword [rdi + 0x28]
lea rdx, [rcx + rax*2]
mov rax, qword [rdi]
mov word [rdx + rax], r13w
add word [rdi + 0x48], r11w
xor r13d, r13d
mov eax, dword [rbx + 0x70]
add rax, qword [rdi]
mov qword [rbx + 0x98], rax
mov r10d, dword [rsp + 0x78]
mov rax, qword [rsp + 0x88]
movzx edx, word [rsp + 0x40]
movzx r8d, word [rsp + 0x42]
mov r11, qword [rsp + 0x70]
movzx r9d, word [rsp + 0x68]
add rax, 8
mov r12d, 1
add r10d, r12d
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x78], r10d
cmp r10d, dword [r14 + 0xc]
jb 0x1000ba48e
mov word [rdi + 0x62], r11w
mov word [rdi + 0x6a], dx
mov word [rdi + 0x70], r8w
mov word [rdi + 0x76], r9w
jmp 0x1000ba9ee
xor r13d, r13d
cmp r12, r13
je 0x1000ba834
mov rax, qword [r12 + 8]
mov ecx, r11d
mov r10d, dword [rax]
cmp dword [rax + 0x10], r11d
jb 0x1000ba732
mov ecx, dword [rax + 0x10]
mov edx, dword [rax + 4]
mov r9d, dword [rax + 0x18]
mov r8d, dword [rbp + 0xc]
cmp edx, r13d
jl 0x1000ba834
cmp edx, r11d
jle 0x1000ba809
cmp edx, 2
je 0x1000ba7bb
cmp edx, 5
jne 0x1000ba834
lea rcx, [rsp + 0xd8]
mov rdx, rax
mov qword [rsp + 0xd8], rax
call fcn.1000b2b98
cmp eax, r13d
je 0x1000ba834
mov qword [rsp + 0xd8], rdx
lea rcx, [rsp + 0xd8]
mov edx, 4
call fcn.1000f3634
or dword [rbx + 0x40], 0x10
mov rcx, qword [r12]
mov qword [rbx + 0x88], rcx
movzx ecx, word [rbp + 8]
cmp eax, ecx
cmovb ecx, eax
shl ecx, 4
mov dword [rbx + 0x90], ecx
jmp 0x1000ba834
mov eax, 3
cmp r10d, eax
jne 0x1000ba834
cmp word [r8 + r14], ax
jne 0x1000ba834
cmp ecx, r11d
jne 0x1000ba7ed
or dword [rbx + 0x40], 0x10
mov rax, qword [r12]
mov qword [rbx + 0x88], rax
movzx eax, word [rbp + 8]
cmp r9d, eax
cmovb eax, r9d
jmp 0x1000ba82b
cmp r9d, 4
jne 0x1000ba834
or dword [rbx + 0x40], 0x10
mov rax, qword [r12]
mov qword [rbx + 0x88], rax
mov eax, ecx
shl eax, 2
jmp 0x1000ba7a7
mov eax, 3
cmp r10d, eax
jne 0x1000ba834
or dword [rbx + 0x40], 0x10
mov rax, qword [r12]
mov qword [rbx + 0x88], rax
movzx eax, word [rbp + 8]
cmp ecx, eax
cmovb eax, ecx
shl eax, 4
mov dword [rbx + 0x90], eax
mov dword [rbx + 0x80], 0xd000000
mov eax, 0x9c
mov word [rbx + 0x7a], ax
movzx ecx, word [rbp + 6]
shl ecx, 4
mov dword [rbx + 0x70], ecx
movzx eax, word [rbp + 8]
add rcx, qword [rdi]
shl eax, 2
movsxd r8, eax
shl r8, 2
cmp dword [rbp + 0x10], r13d
je 0x1000ba875
mov edx, dword [rbp + 0x10]
add rdx, r14
call sub.msvcrt.dll_memcpy
jmp 0x1000ba87c
xor edx, edx
call sub.msvcrt.dll_memset
cmp byte [rdi + 0x44], r13b
je 0x1000ba6a6
mov rax, qword [rsp + 0x90]
cmp rax, r13
je 0x1000ba897
and dword [rax + 0x40], 0xfffffffe
mov qword [rsp + 0x90], rbx
jmp 0x1000ba6a6
mov eax, 0x9e
mov dword [rbx + 0x80], 0xd020000
xor r13d, r13d
mov word [rbx + 0x7a], ax
movzx eax, word [rbp + 6]
mov r8d, r13d
shl eax, 4
add eax, dword [rsp + 0x80]
mov dword [rbx + 0x70], eax
cmp r13w, word [rbp + 8]
jae 0x1000ba920
lea edx, [r13 + 8]
mov ecx, dword [rbx + 0x70]
mov rax, qword [rdi]
add r8d, r11d
add rcx, rdx
mov dword [rcx + rax - 8], r13d
mov ecx, dword [rbx + 0x70]
mov rax, qword [rdi]
add rcx, rdx
mov dword [rcx + rax - 4], r13d
mov ecx, dword [rbx + 0x70]
mov rax, qword [rdi]
add rcx, rdx
mov dword [rcx + rax], r11d
mov ecx, dword [rbx + 0x70]
mov rax, qword [rdi]
add rcx, rdx
add rdx, 0x10
mov dword [rcx + rax + 4], r13d
movzx eax, word [rbp + 8]
cmp r8d, eax
jb 0x1000ba8d9
cmp dword [rbp + 0x10], r13d
je 0x1000ba945
movzx eax, word [rbp + 8]
mov ecx, dword [rbx + 0x70]
mov edx, dword [rbp + 0x10]
add rcx, qword [rdi]
shl eax, 2
add rdx, r14
movsxd r8, eax
shl r8, 2
call sub.msvcrt.dll_memcpy
cmp byte [rdi + 0x46], r13b
je 0x1000ba6a6
mov rax, qword [rsp + 0x98]
cmp rax, r13
je 0x1000ba960
and dword [rax + 0x40], 0xfffffffe
mov qword [rsp + 0x98], rbx
jmp 0x1000ba6a6
mov ecx, dword [rsp + 0xf0]
mov dword [rbx + 0x80], 0xd010000
mov eax, 0x9d
mov word [rbx + 0x7a], ax
movzx eax, word [rbp + 6]
xor r13d, r13d
lea ecx, [rcx + rax*4]
mov dword [rbx + 0x70], ecx
movzx r8d, word [rbp + 8]
add rcx, qword [rdi]
shl r8, 2
cmp dword [rbp + 0x10], r13d
je 0x1000ba9b3
mov edx, dword [rbp + 0x10]
add rdx, r14
call sub.msvcrt.dll_memcpy
jmp 0x1000ba9ba
xor edx, edx
call sub.msvcrt.dll_memset
cmp byte [rdi + 0x45], r13b
je 0x1000ba6a6
mov rax, qword [rsp + 0xa0]
cmp rax, r13
je 0x1000ba9d5
and dword [rax + 0x40], 0xfffffffe
mov qword [rsp + 0xa0], rbx
jmp 0x1000ba6a6
mov esi, 0x8876086c
jmp 0x1000ba9ee
mov esi, 0x8007000e
mov rbp, qword [rsp + 0x48]
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
xor ebx, ebx
jmp 0x1000b9993
mov rbp, rax
jmp 0x1000ba9f8
mov rbp, r14
jmp 0x1000ba9f8
mov r12, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r14, rbx
jmp 0x1000b9993
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov r14, rbp
jmp 0x1000b9993
mov r13, qword [rsp + 0x50]
mov rbp, r14
jmp 0x1000b9993
sub rbx, 0xa8
mov rcx, rbx
call fcn.1000bb444
sub edi, r12d
jns 0x1000baa4e
lea rcx, [rbp - 8]
call sub.msvcrt.dll_free
mov rcx, r14
call sub.msvcrt.dll_free
mov eax, esi
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.10017a260
mov rbx, qword [rsp + 0x160]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret