Function at 0x1400d4b50
Capabilities:
Check for software breakpoints

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x890
mov rax, qword [0x1401ad1c0]
xor rax, rsp
mov qword [rsp + 0x888], rax
movsxd rax, dword [rsp + 0x8b0]
mov rcx, qword [rsp + 0x8a8]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x20], rax
mov eax, dword [rsp + 0x8b0]
add eax, 1
cdqe
mov rcx, qword [rsp + 0x8a8]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov byte [rsp + Ordinal_1111], 0
lea rax, [rsp + 0x451]
mov rdi, rax
xor eax, eax
mov ecx, 0x409
rep stosb byte [rdi], al
mov byte [rsp + 0x40], 0
lea rax, [rsp + 0x41]
mov rdi, rax
xor eax, eax
mov ecx, 0x409
rep stosb byte [rdi], al
cmp qword [rsp + 0x20], 0
je 0x1400d5148
cmp qword [rsp + 0x30], 0
je 0x1400d5148
mov rax, qword [rsp + 0x20]
cmp qword [rax + 0x408], 0
je 0x1400d5148
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x408], 0
je 0x1400d5148
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x408]
movsx eax, word [rax + 2]
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x408]
movsx ecx, word [rcx + 2]
cmp eax, ecx
jge 0x1400d4c58
mov dword [rsp + 0x28], 1
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x408]
movsx eax, word [rax + 2]
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x408]
movsx ecx, word [rcx + 2]
cmp eax, ecx
jne case.0x1400d4cf8.3
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsx eax, word [rax + 2]
mov dword [rsp + 0x86c], eax
cmp dword [rsp + 0x86c], 0x1f7
jg 0x1400d4cfa
cmp dword [rsp + 0x86c], 0x1f5
jge case.0x1400d4cf8.84
mov eax, dword [rsp + 0x86c]
sub eax, 1
mov dword [rsp + 0x86c], eax
cmp dword [rsp + 0x86c], 0xcc
ja case.0x1400d4cf8.3
movsxd rax, dword [rsp + 0x86c]
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0xd5188]
mov eax, dword [rcx + rax*4 + 0xd5168]
add rax, rcx
jmp rax
cmp dword [rsp + 0x86c], 0x3e8
je case.0x1400d4cf8.4
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x408]
mov ecx, dword [rax + 8]
call fcn.1400d8000
mov dword [rsp + Ordinal_2165], eax
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x408]
mov ecx, dword [rcx + 8]
call fcn.1400d8000
mov ecx, dword [rsp + 0x870]
cmp ecx, eax
jge 0x1400d4d52
mov dword [rsp + 0x28], 1
jmp case.0x1400d4cf8.3
mov dword [rsp + 0x860], 0
jmp 0x1400d4d75
mov eax, dword [rsp + 0x860]
add eax, 1
mov dword [rsp + 0x860], eax
cmp dword [rsp + 0x860], 6
jge 0x1400d4dfe
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsxd rcx, dword [rsp + 0x860]
movzx eax, byte [rax + rcx + 8]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x408]
movsxd rdx, dword [rsp + 0x860]
movzx ecx, byte [rcx + rdx + 8]
cmp eax, ecx
jge 0x1400d4db9
jmp 0x1400d4dfe
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsxd rcx, dword [rsp + 0x860]
movzx eax, byte [rax + rcx + 8]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x408]
movsxd rdx, dword [rsp + 0x860]
movzx ecx, byte [rcx + rdx + 8]
cmp eax, ecx
jle 0x1400d4df9
mov dword [rsp + 0x28], 1
jmp 0x1400d4dfe
jmp 0x1400d4d64
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsx eax, word [rax + 2]
cmp eax, 0x18
jne 0x1400d4e25
mov dword [rsp + Ordinal_2165], 1
jmp 0x1400d4e60
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsx eax, word [rax + 2]
cmp eax, 0x19
jne 0x1400d4e47
mov dword [rsp + 0x878], 2
jmp 0x1400d4e52
mov dword [rsp + 0x878], 3
mov eax, dword [rsp + 0x878]
mov dword [rsp + Ordinal_2165], eax
mov eax, dword [rsp + 0x874]
mov dword [rsp + 0x868], eax
mov dword [rsp + 0x864], 0
jmp 0x1400d4e8c
mov eax, dword [rsp + 0x864]
add eax, 1
mov dword [rsp + 0x864], eax
mov eax, dword [rsp + 0x868]
cmp dword [rsp + 0x864], eax
jge 0x1400d4f13
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsxd rcx, dword [rsp + 0x864]
mov rdx, qword [rsp + 0x30]
mov rdx, qword [rdx + 0x408]
movsxd rdi, dword [rsp + 0x864]
mov edx, dword [rdx + rdi*4 + 8]
cmp dword [rax + rcx*4 + 8], edx
jae 0x1400d4ed2
jmp 0x1400d4f13
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
movsxd rcx, dword [rsp + 0x864]
mov rdx, qword [rsp + 0x30]
mov rdx, qword [rdx + 0x408]
movsxd rdi, dword [rsp + 0x864]
mov edx, dword [rdx + rdi*4 + 8]
cmp dword [rax + rcx*4 + 8], edx
jbe 0x1400d4f0e
mov dword [rsp + 0x28], 1
jmp 0x1400d4f13
jmp 0x1400d4e7b
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x8a0]
mov rax, qword [rax + 0xf8]
mov eax, dword [rax + 0x112c]
and eax, 0x4000
test eax, eax
jne 0x1400d4faa
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x408]
add rax, 8
mov rdx, rax
lea rcx, [rsp + 0x450]
call sub.MSVCR110.dll_strcpy
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x408]
add rax, 8
mov rdx, rax
lea rcx, [rsp + 0x40]
call sub.MSVCR110.dll_strcpy
lea rcx, [rsp + 0x450]
call fcn.14008eb80
lea rcx, [rsp + 0x40]
call fcn.14008eb80
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x450]
call sub.MSVCR110.dll_strcmp
test eax, eax
jle 0x1400d4fa8
mov dword [rsp + 0x28], 1
jmp 0x1400d4fde
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x408]
add rax, 8
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x408]
add rcx, 8
mov rdx, rax
call sub.MSVCR110.dll_strcmp
test eax, eax
jle 0x1400d4fde
mov dword [rsp + 0x28], 1
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x408]
add rax, 8
mov rcx, rax
call fcn.1400d69b0
mov dword [rsp + 0x87c], eax
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x408]
add rcx, 8
call fcn.1400d69b0
mov ecx, dword [rsp + 0x87c]
cmp ecx, eax
jge 0x1400d502a
mov dword [rsp + 0x28], 1
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x408]
call fcn.1400db9e0
mov qword [rsp + 0x880], rax
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x408]
call fcn.1400db9e0
mov rcx, qword [rsp + 0x880]
mov rdx, rcx
mov rcx, rax
call sub.MSVCR110.dll_strcmp
test eax, eax
jle 0x1400d5078
mov dword [rsp + 0x28], 1
jmp case.0x1400d4cf8.3
mov rax, qword [rsp + 0x20]
mov rdx, qword [rax + 0x408]
mov rcx, qword [rsp + 0x8a0]
call fcn.1400e0970
mov rdx, rax
lea rcx, [rsp + 0x450]
call sub.MSVCR110.dll_strcpy
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + 0x408]
mov rcx, qword [rsp + 0x8a0]
call fcn.1400e0970
mov rdx, rax
lea rcx, [rsp + 0x40]
call sub.MSVCR110.dll_strcpy
lea rcx, [rsp + 0x450]
call fcn.14008eb80
lea rcx, [rsp + 0x40]
call fcn.14008eb80
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x450]
call sub.MSVCR110.dll_strcmp
test eax, eax
jle 0x1400d5103
mov dword [rsp + 0x28], 1
jmp case.0x1400d4cf8.3
mov dword [rsp + 0x28], 0
cmp dword [rsp + 0x28], 0
je 0x1400d5148
movsxd rax, dword [rsp + 0x8b0]
mov rcx, qword [rsp + 0x8a8]
mov rdx, qword [rsp + 0x30]
mov qword [rcx + rax*8], rdx
mov eax, dword [rsp + 0x8b0]
add eax, 1
cdqe
mov rcx, qword [rsp + 0x8a8]
mov rdx, qword [rsp + 0x20]
mov qword [rcx + rax*8], rdx
mov eax, dword [rsp + 0x28]
mov rcx, qword [rsp + 0x888]
xor rcx, rsp
call fcn.14006b6a0
add rsp, 0x890
pop rdi
ret