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

Disassembly:
push rbp
push rdi
push r13
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x1401ca2e0]
xor rax, rsp
mov qword [rbp + 0xa0], rax
xor edi, edi
mov dword [rbp - 0x44], r9d
mov r9, rcx
mov qword [rbp - 0x60], rcx
xor ecx, ecx
mov qword [rbp - 0x38], r8
mov dword [rsp + 0x50], edi
mov r13d, edi
mov dword [rsp + 0x4c], edi
mov r10, qword [r9 + 0x48]
mov qword [rsp + 0x70], r10
mov dword [rbp - 0x48], edi
mov dword [rbp + 0x88], ecx
mov byte [rbp + 0x8c], cl
mov dword [rsp + 0x78], edi
mov qword [rbp - 0x78], rdi
test r8, r8
jne 0x140021fd0
lea eax, [rdi + 7]
jmp 0x1400233dc
movzx ecx, word [r9 + 0x16]
movzx r8d, byte [r9 + 0xc]
mov qword [rsp + 0x208], rbx
mov qword [rsp + 0x1c8], rsi
mov qword [rsp + 0x1c0], r12
lea ebx, [r8 + rcx]
mov qword [rsp + 0x1b8], r14
mov qword [rsp + 0x1b0], r15
cmp ebx, 2
jae 0x14002200f
mov edx, edi
jmp 0x140022037
test edx, edx
jne 0x140022017
mov edx, edi
jmp 0x14002202a
cmp edx, ebx
jne 0x140022028
mov eax, dword [rbp + 0x110]
lea edx, [rax - 2]
add edx, ebx
jmp 0x140022030
dec edx
mov eax, dword [rbp + 0x110]
mov ebx, 2
sub ebx, eax
mov eax, edx
mov dword [rsp + 0x54], edx
sub eax, r8d
mov dword [rsp + 0x5c], ebx
add eax, ebx
lea r11d, [rbx + 1]
mov dword [rsp + 0x58], r11d
cmp eax, ecx
jne 0x14002205e
movzx ecx, byte [r9 + 9]
add rcx, 8
jmp 0x14002207a
add eax, eax
movsxd rcx, eax
mov rax, qword [r9 + 0x60]
movzx edx, word [rcx + rax]
movzx eax, word [r9 + 0x18]
ror dx, 8
movzx ecx, dx
and rcx, rax
add rcx, qword [r9 + 0x50]
lea r15, [rbp - 0x30]
movsxd rax, ebx
mov qword [rbp - 0x40], rcx
mov esi, dword [rcx]
bswap esi
mov dword [rbp - 0x68], esi
lea r15, [r15 + rax*4]
mov dword [rsp + 0x68], esi
lea r14, [rax*8]
lea rax, [0x140174e34]
movsxd r12, ebx
cmp esi, dword [r10 + 0x3c]
jbe 0x1400220e1
mov r9d, 0xfa8a
mov qword [rsp + 0x20], rax
lea r8, str.database_corruption
mov ecx, 0xb
lea rdx, str._s_at_line__d_of___.10s_
call fcn.14000c7a0
mov esi, 0xb
mov dword [rsp + 0x40], esi
jmp 0x140022172
mov rax, qword [r10]
lea r8, [rsp + 0x60]
xor r9d, r9d
mov edx, esi
mov rcx, rax
call qword [rax + 0x108]
mov dword [rsp + 0x40], eax
mov esi, eax
test eax, eax
jne 0x140022172
mov rdx, qword [rsp + 0x60]
mov rax, qword [rdx + 0x10]
mov qword [rbp + r14], rax
cmp byte [rax], sil
jne 0x14002216c
mov rcx, qword [rdx + 0x10]
mov r8d, dword [rbp - 0x68]
cmp r8d, dword [rcx + 4]
je 0x14002214c
mov rax, qword [rdx + 8]
cmp r8d, 1
mov qword [rcx + 0x50], rax
mov rax, qword [rsp + 0x70]
mov qword [rcx + 0x48], rax
mov eax, edi
mov qword [rcx + 0x70], rdx
mov edx, 0x64
cmove eax, edx
mov dword [rcx + 4], r8d
mov byte [rcx + 9], al
mov rcx, qword [rbp + r14]
call fcn.1400245e0
mov dword [rsp + 0x40], eax
mov esi, eax
test eax, eax
je 0x14002216c
mov rcx, qword [rbp + r14]
call fcn.140044d60
jmp 0x140022172
mov esi, edi
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x44], esi
test esi, esi
jne 0x140023323
mov rax, qword [rbp + r14]
sub r15, 4
sub r14, 8
movzx edx, word [rax + 0x16]
movzx ecx, byte [rax + 0xc]
mov eax, ebx
add ecx, r13d
dec ebx
lea r13d, [rdx + 1]
add r13d, ecx
test eax, eax
je 0x140022382
mov r8, qword [rbp - 0x60]
movzx edx, byte [r8 + 0xc]
test dl, dl
je 0x1400221fb
mov eax, dword [rsp + 0x54]
movzx ecx, word [r8 + 0x1a]
add eax, ebx
cmp eax, ecx
jne 0x1400221fb
mov rdx, qword [r8 + 0x28]
mov rcx, r8
mov qword [rbp + r14 + 0x90], rdx
mov esi, dword [rdx]
bswap esi
mov dword [rbp - 0x68], esi
mov dword [rsp + 0x68], esi
call qword [r8 + 0x78]
mov r10, qword [rsp + 0x70]
movzx eax, ax
mov dword [r15], eax
mov rax, qword [rbp - 0x60]
mov byte [rax + 0xc], 0
jmp 0x1400220a0
mov ecx, dword [rsp + 0x54]
movzx eax, dl
sub ecx, eax
mov rax, qword [r8 + 0x60]
add ecx, ebx
add ecx, ecx
movsxd rcx, ecx
movzx edx, word [rcx + rax]
mov rcx, r8
movzx eax, word [r8 + 0x18]
ror dx, 8
movzx edi, dx
and rdi, rax
add rdi, qword [r8 + 0x50]
mov rdx, rdi
mov qword [rbp + r14 + 0x90], rdi
mov eax, dword [rdi]
bswap eax
mov dword [rbp - 0x68], eax
mov dword [rsp + 0x68], eax
call qword [r8 + 0x78]
mov rdx, qword [rsp + 0x70]
movzx esi, ax
mov dword [r15], esi
test byte [rdx + 0x26], 0xc
je 0x14002228d
mov rax, qword [rbp - 0x60]
mov ecx, edi
sub ecx, dword [rax + 0x50]
lea eax, [rsi + rcx]
cmp eax, dword [rdx + 0x34]
jg 0x1400222b9
movsxd rcx, ecx
mov r8d, esi
add rcx, qword [rbp - 0x38]
mov rdx, rdi
call fcn.1400c6560
mov rcx, qword [rbp - 0x60]
sub rdi, qword [rcx + 0x50]
add rdi, qword [rbp - 0x38]
mov qword [rbp + r14 + 0x90], rdi
jmp 0x140022291
mov rcx, qword [rbp - 0x60]
movzx eax, byte [rcx + 0xc]
lea r9, [rsp + 0x44]
mov edx, dword [rsp + 0x54]
mov r8d, esi
sub edx, eax
add edx, ebx
call fcn.14002db00
mov r10, qword [rsp + 0x70]
xor edi, edi
mov esi, dword [rbp - 0x68]
jmp 0x1400220a0
lea rax, [0x140174e34]
mov r9d, 0x10f06
lea r8, str.database_corruption
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
mov ecx, 0xb
call fcn.14000c7a0
mov r8, r12
lea rcx, [rbp]
shl r8, 3
xor edx, edx
mov esi, 0xb
call fcn.1400c71f0
xor edi, edi
movsxd rax, dword [rsp + 0x58]
mov rbx, rdi
mov r15, qword [rsp + 0x1b0]
mov r14, rax
mov r12, qword [rsp + 0x1c0]
test eax, eax
jle 0x140023351
nop
mov r8, qword [rbp + rbx*8]
test r8, r8
je 0x140023345
mov r8, qword [r8 + 0x70]
test byte [r8 + 0x34], 0x20
je 0x14002333d
mov r10, qword [r8 + 0x28]
dec dword [r10 + 0x98]
mov rax, qword [r10 + 0xa8]
mov qword [r8 + 0x20], rax
movsxd rax, dword [r10 + 0xbc]
mov rcx, qword [r10 + 0x48]
mov qword [r10 + 0xa8], r8
mov edx, dword [r8 + 0x30]
mov r8, qword [r8 + 8]
dec edx
mov r9, qword [rcx]
imul rdx, rax
call qword [r9 + 0x90]
jmp 0x140023345
mov rax, qword [rsp + 0x70]
lea ebx, [r13 + 3]
and ebx, 0xfffffffc
mov eax, dword [rax + 0x30]
lea ecx, [rbx + rbx*4]
lea ecx, [rax + rcx*2]
movsxd rcx, ecx
call fcn.140067eb0
mov qword [rbp - 0x78], rax
mov r8, rax
test rax, rax
jne 0x1400223b3
lea esi, [rax + 7]
jmp 0x1400222fc
mov esi, dword [rsp + 0x58]
mov r13d, edi
movsxd rax, ebx
mov r12, rdi
lea rdx, [r8 + rax*8]
lea rax, [rdx + rax*2]
mov qword [rbp - 0x70], rdx
mov qword [rsp + 0x60], rax
mov rax, qword [rbp]
mov qword [rbp - 0x80], rax
movzx r9d, byte [rax + 8]
movzx eax, byte [rax + 3]
shl r9w, 2
mov word [rsp + 0x48], r9w
mov qword [rbp - 0x58], rax
test esi, esi
jg 0x140022564
mov rax, qword [rsp + 0x70]
xor r12d, r12d
movzx ecx, r9w
mov r15d, r12d
mov eax, dword [rax + 0x34]
add eax, 0xfffffff4
add eax, ecx
movsxd rcx, esi
mov dword [rsp + 0x5c], eax
test esi, esi
jle 0x140022499
mov r8, rcx
lea rdx, [rbp + 0x58]
shl r8, 2
lea rcx, [rbp - 0x18]
call fcn.1400c6560
mov r13d, dword [rsp + 0x5c]
nop dword [rax + rax]
mov rbx, qword [rbp + r15*8]
mov edi, r13d
mov r14d, r12d
movzx eax, word [rbx + 0x14]
sub edi, eax
mov dword [rbp + r15*4 - 0x30], edi
cmp byte [rbx + 0xc], r12b
jbe 0x14002248a
lea rsi, [rbx + 0x28]
mov rdx, qword [rsi]
mov rcx, rbx
call qword [rbx + 0x78]
movzx eax, ax
inc r14d
add eax, 2
lea rsi, [rsi + 8]
add edi, eax
movzx eax, byte [rbx + 0xc]
cmp r14d, eax
jl 0x140022460
mov esi, dword [rsp + 0x58]
mov dword [rbp + r15*4 - 0x30], edi
inc r15
movsxd rax, esi
cmp r15, rax
jl 0x140022440
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x4c], esi
mov r13d, esi
mov r15d, r12d
test esi, esi
jle 0x1400228d1
mov r8d, dword [rsp + 0x78]
lea rdi, [rbp - 0x18]
sub rdi, 4
mov r14d, 1
mov qword [rsp + 0x60], rdi
mov rsi, r12
cmp dword [rbp + rsi - 0x30], eax
jle 0x1400227d4
cmp r14d, r13d
jl 0x1400224f2
lea r13d, [r14 + 1]
mov dword [rsp + 0x4c], r13d
cmp rsi, 0xc
jg 0x1400228bb
mov dword [rbp + rsi - 0x2c], r12d
mov dword [rbp + rsi - 0x14], r8d
movsxd rbx, dword [rbp + rsi - 0x18]
mov rcx, qword [rbp - 0x70]
lea edi, [rbx - 1]
movsxd rax, edi
movzx eax, word [rcx + rax*2]
test ax, ax
jne 0x14002251a
mov edx, edi
lea rcx, [rsp + 0x78]
call fcn.140029ef0
mov rcx, qword [rbp - 0x70]
movzx eax, ax
add eax, 2
sub dword [rbp + rsi - 0x30], eax
cmp qword [rbp - 0x58], r12
jne 0x1400227b4
cmp ebx, dword [rsp + 0x78]
jge 0x1400227b1
mov rax, rbx
movzx eax, word [rcx + rbx*2]
test ax, ax
jne 0x140022550
mov edx, ebx
lea rcx, [rsp + 0x78]
call fcn.140029ef0
movzx eax, ax
add eax, 2
jmp 0x1400227b4
mov rdx, qword [rbp - 0x70]
mov r14, qword [rbp + r12*8]
mov rax, qword [rbp]
mov rdi, qword [r14 + 0x50]
mov rcx, qword [rax + 0x50]
movzx ebx, word [r14 + 0x12]
movzx esi, word [r14 + 0x18]
add rbx, rdi
movzx eax, byte [rcx]
cmp byte [rdi], al
jne 0x14002277d
movzx r8d, word [r14 + 0x16]
movzx eax, byte [r14 + 0xc]
movsxd r15, dword [rsp + 0x78]
add r8, rax
add r8, r8
lea rcx, [rdx + r15*2]
xor edx, edx
call fcn.1400c71f0
cmp byte [r14 + 0xc], 0
jbe 0x140022633
movzx eax, word [r14 + 0x1a]
mov r9, qword [rbp - 0x78]
test eax, eax
je 0x1400225fc
mov edx, eax
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbx]
add rbx, 2
ror ax, 8
movzx ecx, ax
movzx eax, si
and rcx, rax
movsxd rax, r15d
add rcx, rdi
inc r15d
mov qword [r9 + rax*8], rcx
sub rdx, 1
jne 0x1400225d0
mov dword [rsp + 0x78], r15d
xor r8d, r8d
cmp byte [r14 + 0xc], r8b
jbe 0x140022633
lea rdx, [r14 + 0x28]
nop dword [rax]
mov rax, qword [rdx]
lea rdx, [rdx + 8]
movsxd rcx, r15d
inc r8d
inc r15d
mov qword [r9 + rcx*8], rax
movzx eax, byte [r14 + 0xc]
cmp r8d, eax
jl 0x140022610
mov dword [rsp + 0x78], r15d
movzx edx, word [r14 + 0x16]
movzx ecx, word [r14 + 0x12]
add rcx, rdi
lea rax, [rcx + rdx*2]
xor ecx, ecx
mov r8, rax
mov edx, ecx
sub r8, rbx
inc r8
shr r8, 1
cmp rbx, rax
cmova r8, rcx
test r8, r8
je 0x14002269e
mov r9, qword [rbp - 0x78]
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rbx]
lea rbx, [rbx + 2]
ror ax, 8
inc rdx
movzx ecx, ax
movzx eax, si
and rcx, rax
movsxd rax, r15d
add rcx, rdi
inc r15d
mov qword [r9 + rax*8], rcx
cmp rdx, r8
jb 0x140022670
mov dword [rsp + 0x78], r15d
mov dword [rbp + r12*4 + 0x58], r15d
cmp r13d, dword [rsp + 0x5c]
jge 0x14002275e
cmp qword [rbp - 0x58], 0
jne 0x14002275e
movzx ecx, word [rbp + r12*4 - 0x30]
mov rax, qword [rbp - 0x70]
mov r8d, ecx
mov rdx, qword [rbp + r12*8 + 0x90]
movsxd rdi, r15d
movsxd r15, dword [rsp + 0x4c]
lea rsi, [rax + rdi*2]
mov rbx, r15
mov word [rsi], cx
add rbx, qword [rsp + 0x60]
add r15d, ecx
mov rcx, rbx
mov dword [rsp + 0x4c], r15d
call fcn.1400c6560
movzx r9d, word [rsp + 0x48]
mov r8, qword [rbp - 0x78]
lea rax, [rbx + r9]
mov qword [r8 + rdi*8], rax
sub word [rsi], r9w
cmp byte [r14 + 8], 0
jne 0x140022725
mov rax, qword [r14 + 0x50]
mov rcx, qword [r8 + rdi*8]
inc dword [rsp + 0x78]
mov eax, dword [rax + 8]
mov dword [rcx], eax
jmp 0x140022764
cmp word [rsi], 4
jae 0x140022758
mov rcx, qword [rsp + 0x60]
movsxd rax, r15d
add rcx, rax
nop word [rax + rax]
mov byte [rcx], 0
lea rcx, [rcx + 1]
inc word [rsi]
inc r15d
cmp word [rsi], 4
jb 0x140022740
mov dword [rsp + 0x4c], r15d
inc dword [rsp + 0x78]
jmp 0x140022764
movzx r9d, word [rsp + 0x48]
movsxd rsi, dword [rsp + 0x58]
inc r13d
inc r12
cmp r12, rsi
jl 0x140022560
jmp 0x1400223f9
mov r9d, 0x10f47
lea rax, [0x140174e34]
mov ecx, 0xb
lea r8, str.database_corruption
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
call fcn.14000c7a0
mov esi, 0xb
jmp 0x1400232b9
mov eax, r12d
add dword [rbp + rsi - 0x2c], eax
mov eax, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x78]
mov dword [rbp + rsi - 0x18], edi
cmp dword [rbp + rsi - 0x30], eax
jg 0x1400224d0
mov rdi, qword [rsp + 0x60]
cmp dword [rbp + rsi - 0x18], r8d
jge 0x14002287f
mov edi, dword [rsp + 0x5c]
mov r9, qword [rbp - 0x70]
mov r13, qword [rbp - 0x58]
nop dword [rax + rax]
movsxd rbx, dword [rbp + rsi - 0x18]
mov rax, rbx
movzx eax, word [r9 + rbx*2]
test ax, ax
jne 0x140022817
mov edx, ebx
lea rcx, [rsp + 0x78]
call fcn.140029ef0
mov r8d, dword [rsp + 0x78]
mov r9, qword [rbp - 0x70]
mov edx, dword [rbp + rsi - 0x30]
movzx ecx, ax
add ecx, 2
add edx, ecx
cmp edx, edi
jg 0x140022875
inc ebx
mov dword [rbp + rsi - 0x30], edx
mov dword [rbp + rsi - 0x18], ebx
test r13, r13
jne 0x140022868
cmp ebx, r8d
jge 0x140022865
movsxd rax, ebx
movzx eax, word [r9 + rax*2]
test ax, ax
jne 0x14002285d
mov edx, ebx
lea rcx, [rsp + 0x78]
call fcn.140029ef0
mov r8d, dword [rsp + 0x78]
mov r9, qword [rbp - 0x70]
movzx ecx, ax
add ecx, 2
jmp 0x140022868
mov ecx, r12d
sub dword [rbp + rsi - 0x2c], ecx
cmp ebx, r8d
jl 0x1400227f0
mov r13d, dword [rsp + 0x4c]
mov rdi, qword [rsp + 0x60]
mov ecx, dword [rbp + rsi - 0x18]
cmp ecx, r8d
jl 0x140022892
mov r13d, r14d
mov dword [rsp + 0x4c], r14d
jmp 0x1400228a3
test r15d, r15d
jle 0x14002289c
mov eax, dword [rdi + rsi]
jmp 0x14002289f
mov eax, r12d
cmp ecx, eax
jle 0x1400228c6
inc r15d
inc r14d
add rsi, 4
cmp r15d, r13d
jge 0x1400228d1
mov eax, dword [rsp + 0x5c]
jmp 0x1400224c6
mov r9d, 0x10fb4
jmp 0x140022783
mov r9d, 0x10fd5
jmp 0x140022783
lea eax, [r13 - 1]
movsxd r13, eax
mov r12, r13
test eax, eax
jle 0x1400229ef
lea rax, [rbp - 0x18]
lea rcx, [rbp - 0x30]
sub rax, rcx
add rax, 0xfffffffffffffffc
mov qword [rsp + 0x60], rax
nop word [rax + rax]
mov ebx, dword [rbp + r12*4 - 0x1c]
lea rax, [rbp + r12*4 - 0x34]
mov r15d, dword [rax]
dec ebx
mov rdi, qword [rbp - 0x70]
mov edx, ebx
sub edx, dword [rbp - 0x58]
mov esi, dword [rbp + r12*4 - 0x30]
inc edx
movsxd rax, edx
cmp word [rdi + rax*2], 0
lea r14, [rdi + rax*2]
jne 0x140022937
lea rcx, [rsp + 0x78]
call fcn.140029ef0
movsxd rax, ebx
lea rdi, [rdi + rax*2]
nop
cmp word [rdi], 0
jne 0x140022952
mov edx, ebx
lea rcx, [rsp + 0x78]
call fcn.140029ef0
test esi, esi
je 0x14002298c
cmp dword [rbp + 0x110], 0
jne 0x1400229b4
mov ecx, dword [rsp + 0x4c]
mov eax, 2
dec ecx
mov edx, r15d
cmp r13d, ecx
mov ecx, 0
cmove eax, ecx
lea ecx, [rsi + 2]
sub edx, eax
movzx eax, word [rdi]
sub edx, eax
movzx eax, word [r14]
add ecx, eax
cmp ecx, edx
jg 0x1400229b4
movzx eax, word [r14]
mov ecx, 0xfffffffe
add eax, 2
mov dword [rbp + r12*4 - 0x1c], ebx
add esi, eax
sub r14, 2
movzx eax, word [rdi]
sub rdi, 2
sub ecx, eax
add r15d, ecx
sub ebx, 1
jns 0x140022940
mov dword [rbp + r12*4 - 0x34], r15d
lea rax, [rbp + r12*4 - 0x34]
mov dword [rbp + r12*4 - 0x30], esi
cmp r12, 1
jle 0x1400229d3
mov rcx, qword [rsp + 0x60]
mov eax, dword [rax + rcx]
jmp 0x1400229d5
xor eax, eax
cmp dword [rbp + r12*4 - 0x1c], eax
jle 0x140022a7b
dec r13d
dec r12
test r12, r12
jg 0x140022900
mov rax, qword [rbp]
xor r12d, r12d
movsxd rsi, dword [rsp + 0x4c]
mov edi, r12d
mov rcx, qword [rax + 0x50]
movzx r14d, byte [rcx]
mov dword [rbp - 0x50], r14d
test rsi, rsi
jle 0x140022b8d
lea r15d, [r12 + 1]
nop dword [rax + rax]
movsxd rax, dword [rsp + 0x58]
cmp rdi, rax
jge 0x140022adf
mov rax, qword [rbp + rdi*8]
mov qword [rbp + rdi*8 + 0x18], rax
mov qword [rbp + rdi*8], r12
mov qword [rsp + 0x60], rax
mov rbx, qword [rax + 0x70]
test byte [rbx + 0x34], 4
mov rcx, qword [rbx + 0x28]
je 0x140022a95
mov eax, dword [rbx + 0x30]
cmp dword [rcx + 0x1c], eax
jb 0x140022a95
cmp dword [rcx + 0x80], r12d
je 0x140022a90
mov rcx, rbx
call fcn.14008f8f0
test eax, eax
je 0x140022a86
mov rcx, rbx
call fcn.14008fa30
mov dword [rsp + 0x40], eax
jmp 0x140022ac1
mov r9d, 0x10fff
jmp 0x140022783
mov dword [rsp + 0x40], r12d
mov eax, r12d
jmp 0x140022ac1
mov eax, r12d
jmp 0x140022abd
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x140022ac1
mov eax, dword [rcx + 0xbc]
cmp dword [rcx + 0xb8], eax
mov rcx, rbx
jbe 0x140022ab8
call fcn.14003ffc0
jmp 0x140022abd
call fcn.140041320
mov dword [rsp + 0x40], eax
mov r13d, dword [rsp + 0x50]
inc r13d
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x50], r13d
test eax, eax
jne 0x1400232b5
jmp 0x140022b7f
mov r9d, dword [rbp - 0x68]
lea r8, [rsp + 0x68]
cmp dword [rbp + 0x110], r12d
lea rdx, [rsp + 0x60]
mov r13, qword [rsp + 0x70]
cmovne r9d, r15d
mov byte [rsp + 0x20], r12b
mov rcx, r13
call fcn.14001f210
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1400232b5
mov rbx, qword [rsp + 0x60]
mov edx, r14d
mov rcx, rbx
call fcn.1400a34f0
inc dword [rsp + 0x50]
mov eax, dword [rsp + 0x78]
mov qword [rbp + rdi*8 + 0x18], rbx
mov dword [rbp + rdi*4 + 0x58], eax
cmp byte [r13 + 0x21], r12b
je 0x140022b71
mov edx, dword [rbx + 4]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r8b, 5
mov rax, qword [rbp - 0x60]
mov rcx, r13
mov r9d, dword [rax + 4]
call fcn.140043470
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x1400232b5
mov r8d, dword [rsp + 0x68]
mov r13d, dword [rsp + 0x50]
mov dword [rbp - 0x68], r8d
inc rdi
cmp rdi, rsi
jl 0x140022a20
jmp 0x140022b90
mov r13d, edi
movsxd r15, r13d
mov rdx, r12
test r13d, r13d
jle 0x140022beb
nop dword [rax + rax]
mov rax, qword [rbp + rdx*8 + 0x18]
mov r8d, dword [rax + 4]
mov rax, qword [rax + 0x70]
mov dword [rbp + rdx*4 + 0x70], r8d
mov dword [rbp + rdx*4 + 0x40], r8d
movzx ecx, word [rax + 0x34]
mov rax, r12
mov word [rbp + rdx*2 + 0x90], cx
test rdx, rdx
jle 0x140022be3
nop dword [rax + rax]
cmp dword [rbp + rax*4 + 0x70], r8d
je 0x140022d7c
inc rax
cmp rax, rdx
jl 0x140022bd0
inc rdx
cmp rdx, r15
jl 0x140022ba0
mov rdi, r12
test r13d, r13d
jle 0x140022cae
mov r14d, 1
nop dword [rax]
mov r10d, r12d
mov rbx, r12
mov edx, r14d
mov rcx, r14
cmp r14, r15
jge 0x140022c47
mov r9, r12
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rbp + r9 + 0x40]
lea r8, [rcx*4]
cmp dword [rbp + r8 + 0x40], eax
jae 0x140022c3d
mov r10d, edx
mov rbx, rcx
mov r9, r8
inc edx
inc rcx
cmp rcx, r15
jl 0x140022c20
mov esi, dword [rbp + rbx*4 + 0x40]
mov dword [rbp + rbx*4 + 0x40], 0xffffffff
cmp rbx, rdi
je 0x140022c9e
jle 0x140022c7a
mov rax, qword [rsp + 0x70]
mov edx, dword [rax + 0x3c]
mov rax, qword [rbp + rbx*8 + 0x18]
inc edx
add edx, r10d
mov rcx, qword [rax + 0x70]
mov word [rcx + 0x34], r12w
call fcn.14006b800
mov rax, qword [rbp + rdi*8 + 0x18]
mov edx, esi
mov rcx, qword [rax + 0x70]
movzx eax, word [rbp + rbx*2 + 0x90]
mov word [rcx + 0x34], ax
call fcn.14006b800
mov rax, qword [rbp + rdi*8 + 0x18]
mov dword [rax + 4], esi
inc rdi
cmp rdi, r15
jl 0x140022c00
mov r14d, dword [rbp - 0x50]
lea eax, [r13 - 1]
movsxd r13, eax
mov qword [rbp + 0x90], r13
mov rax, qword [rbp + r13*8 + 0x18]
mov ecx, dword [rax + 4]
mov rax, qword [rbp - 0x40]
bswap ecx
mov dword [rax], ecx
test r14b, 8
jne 0x140022d09
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x58]
cmp ecx, eax
je 0x140022d09
cmp eax, ecx
lea rdx, [rbp + 0x18]
lea eax, [rcx - 1]
movsxd rcx, eax
lea r8, [rbp]
cmovle rdx, r8
mov rax, qword [rdx + rcx*8]
mov rdx, qword [rax + 0x50]
mov rax, qword [rbp + r13*8 + 0x18]
mov rcx, qword [rax + 0x50]
mov eax, dword [rdx + 8]
mov dword [rcx + 8], eax
mov r11, qword [rsp + 0x70]
cmp byte [r11 + 0x21], r12b
je 0x140022ef5
mov rbx, qword [rbp + 0x18]
xor esi, esi
mov edx, dword [r11 + 0x34]
mov dword [rsp + 0x4c], edx
movzx r9d, word [rbx + 0x16]
movzx eax, byte [rbx + 0xc]
mov r12, qword [rbx + 0x50]
add r9d, eax
mov dword [rsp + 0x68], r9d
cmp dword [rsp + 0x78], esi
jle 0x140022efb
mov rax, qword [rbp - 0x70]
lea rcx, [rbp + 0x18]
mov r13, qword [rbp - 0x78]
lea r8, [rbp - 0x18]
mov qword [rbp - 0x50], rax
xor edi, edi
mov qword [rsp + 0x60], rcx
mov qword [rbp - 0x68], r8
mov r14, qword [r13]
cmp esi, r9d
jne 0x140022dc0
inc rdi
cmp rdi, r15
jge 0x140022d87
mov rdx, qword [rbp + rdi*8 + 0x18]
jmp 0x140022d8c
mov r9d, 0x11049
jmp 0x140022783
mov rdx, qword [rbp + rdi*8]
movzx eax, word [rdx + 0x16]
xor ecx, ecx
mov r10, qword [rbp - 0x58]
mov r12, qword [rdx + 0x50]
test r10d, r10d
sete cl
add ecx, eax
movzx eax, byte [rdx + 0xc]
mov edx, dword [rsp + 0x4c]
add r9d, eax
mov rax, qword [rbp - 0x50]
add r9d, ecx
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x68], r9d
jmp 0x140022dc4
mov r10, qword [rbp - 0x58]
cmp esi, dword [r8]
jne 0x140022de7
mov rbx, qword [rcx + 8]
add rcx, 8
add r8, 4
mov qword [rsp + 0x60], rcx
mov qword [rbp - 0x68], r8
test r10, r10
je 0x140022ec5
cmp rdi, r15
jge 0x140022e09
mov eax, dword [rbp + rdi*4 + 0x70]
cmp dword [rbx + 4], eax
jne 0x140022e09
cmp r14, r12
jb 0x140022e09
movsxd rax, edx
add rax, r12
cmp r14, rax
jb 0x140022ec1
cmp word [rsp + 0x48], 0
jne 0x140022e37
mov edx, dword [r14]
lea rax, [rsp + 0x44]
mov r9d, dword [rbx + 4]
mov r8b, 5
bswap edx
mov rcx, r11
mov qword [rsp + 0x20], rax
call fcn.140043470
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x40], eax
mov rax, qword [rbp - 0x50]
movzx eax, word [rax]
test ax, ax
jne 0x140022e4f
mov edx, esi
lea rcx, [rsp + 0x78]
call fcn.140029ef0
cmp ax, word [rbx + 0x10]
jbe 0x140022eac
cmp dword [rsp + 0x40], 0
jne 0x1400232b5
lea r8, [rbp + 0x40]
mov rdx, r14
mov rcx, rbx
call qword [rbx + 0x80]
movzx eax, word [rbp + 0x54]
cmp eax, dword [rbp + 0x50]
jae 0x140022eb8
movzx eax, word [rbp + 0x56]
mov r8b, 3
mov r9d, dword [rbx + 4]
sub eax, 4
mov rcx, qword [rbx + 0x48]
cdqe
mov edx, dword [rax + r14]
lea rax, [rsp + 0x44]
bswap edx
mov qword [rsp + 0x20], rax
call fcn.140043470
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x40], eax
jmp 0x140022eb0
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x1400232b5
mov r11, qword [rsp + 0x70]
mov r8, qword [rbp - 0x68]
mov rax, qword [rbp - 0x50]
mov r9d, dword [rsp + 0x68]
add rax, 2
mov rcx, qword [rsp + 0x60]
inc esi
mov edx, dword [rsp + 0x4c]
add r13, 8
mov qword [rbp - 0x50], rax
cmp esi, dword [rsp + 0x78]
jl 0x140022d64
mov r13, qword [rbp + 0x90]
xor r12d, r12d
mov rbx, qword [rbp + 0x18]
jmp 0x140022efe
xor r12d, r12d
mov r14, r12
test r13, r13
jle 0x140023033
nop word [rax + rax]
movsxd rdx, dword [rbp + r14*4 - 0x18]
mov rcx, qword [rbp - 0x70]
mov rsi, qword [rbp + r14*8 + 0x18]
mov r10, qword [rbp - 0x78]
movzx r9d, word [rsp + 0x48]
movzx ecx, word [rcx + rdx*2]
movsxd rdi, dword [rbp - 0x48]
add r9d, ecx
add rdi, qword [rbp - 0x38]
cmp byte [rsi + 8], 0
mov rbx, qword [r10 + rdx*8]
jne 0x140022f4f
mov rcx, qword [rsi + 0x50]
mov eax, dword [rbx]
mov dword [rcx + 8], eax
jmp 0x140022fe1
cmp qword [rbp - 0x58], 0
je 0x140022fc7
lea eax, [rdx - 1]
mov rcx, rsi
movsxd rdx, eax
lea r8, [rbp + 0x70]
mov rdx, qword [r10 + rdx*8]
call qword [rsi + 0x80]
mov rdx, qword [rbp + 0x70]
lea rcx, [rdi + 4]
mov rbx, rdi
cmp rdx, 0x7f
ja 0x140022f91
mov eax, 1
and dl, 0x7f
mov byte [rcx], dl
mov rdi, r12
lea r9d, [rax + 4]
jmp 0x140022fe1
cmp rdx, 0x3fff
ja 0x140022fb9
mov rax, rdx
mov rdi, r12
shr rax, 7
or al, 0x80
mov byte [rcx], al
and dl, 0x7f
mov eax, 2
mov byte [rcx + 1], dl
lea r9d, [rax + 4]
jmp 0x140022fe1
call fcn.140043e90
mov rdi, r12
lea r9d, [rax + 4]
jmp 0x140022fe1
sub rbx, 4
cmp ecx, 4
jne 0x140022fe1
mov rax, qword [rbp - 0x60]
mov rdx, rbx
mov rcx, rax
call qword [rax + 0x78]
movzx r9d, ax
mov rcx, qword [rbp - 0x60]
lea rax, [rsp + 0x44]
add dword [rbp - 0x48], r9d
mov r8, rbx
mov ebx, dword [rsp + 0x54]
mov edx, ebx
mov qword [rsp + 0x30], rax
mov eax, dword [rsi + 4]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
call fcn.140038fe0
mov esi, dword [rsp + 0x44]
mov dword [rsp + 0x40], esi
test esi, esi
jne 0x1400232b9
inc ebx
inc r14
mov dword [rsp + 0x54], ebx
cmp r14, r13
jl 0x140022f10
mov rbx, qword [rbp + 0x18]
mov r13d, dword [rsp + 0x50]
mov r14d, 1
sub r14d, r13d
cmp r14d, r13d
jge 0x14002312a
mov edi, dword [rbp - 0x18]
nop dword [rax]
mov eax, r14d
cdq
mov r8d, eax
xor r8d, edx
sub r8d, edx
movsxd rbx, r8d
cmp byte [rbp + rbx + 0x88], 0
jne 0x14002311a
test r14d, r14d
jns 0x140023088
lea ecx, [r8 - 1]
movsxd rdx, ecx
mov eax, dword [rbp + rdx*4 - 0x18]
cmp dword [rbp + rdx*4 + 0x58], eax
jl 0x14002311a
test r8d, r8d
jne 0x140023098
mov edx, r12d
mov r8d, r12d
mov r9d, edi
jmp 0x1400230d9
cmp r8d, dword [rsp + 0x58]
jge 0x1400230b6
cmp dword [rbp - 0x58], 0
lea eax, [r8 - 1]
mov edx, r12d
movsxd rcx, eax
sete dl
add edx, dword [rbp + rcx*4 + 0x58]
jmp 0x1400230ba
mov edx, dword [rsp + 0x78]
cmp dword [rbp - 0x58], 0
lea eax, [r8 - 1]
mov r9d, dword [rbp + rbx*4 - 0x18]
mov r8d, r12d
sete r8b
movsxd rcx, eax
add r8d, dword [rbp + rcx*4 - 0x18]
sub r9d, r8d
mov rcx, qword [rbp + rbx*8 + 0x18]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
call fcn.14002dd80
mov dword [rsp + 0x40], eax
mov esi, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1400232b9
mov rax, qword [rbp + rbx*8 + 0x18]
movzx ecx, word [rsp + 0x5c]
sub cx, word [rbp + rbx*4 - 0x30]
mov byte [rbp + rbx + 0x88], 1
mov word [rax + 0x14], cx
inc r14d
cmp r14d, r13d
jl 0x140023050
mov rbx, qword [rbp + 0x18]
cmp dword [rbp - 0x44], 0
je 0x14002321d
mov rsi, qword [rbp - 0x60]
cmp word [rsi + 0x16], 0
jne 0x14002321d
movzx eax, byte [rsi + 9]
cmp ax, word [rbx + 0x14]
ja 0x14002321d
or edx, 0xffffffff
mov rcx, rbx
call fcn.14002ca70
mov r13, qword [rbp + 0x18]
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x140023282
mov rdi, qword [r13 + 0x50]
mov r14, qword [rsi + 0x50]
movzx ebx, byte [r13 + 9]
mov r12, qword [r13 + 0x48]
mov esi, dword [rsi + 4]
lea eax, [rbx + 5]
movzx edx, byte [rax + rdi + 1]
movzx eax, byte [rax + rdi]
mov r8d, dword [r12 + 0x34]
shl eax, 8
or edx, eax
mov ecx, edx
sub r8d, edx
add rcx, r14
add rdx, rdi
call fcn.1400c6560
movzx ecx, word [r13 + 0x16]
lea rdx, [rdi + rbx]
movzx eax, word [r13 + 0x12]
lea r8, [rax + rcx*2]
xor ecx, ecx
mov eax, 0x64
cmp esi, 1
cmove ecx, eax
add rcx, r14
call fcn.1400c6560
mov rbx, qword [rbp - 0x60]
mov rcx, rbx
mov byte [rbx], 0
call fcn.1400245e0
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x140023282
cmp byte [r12 + 0x21], al
je 0x140023203
mov rcx, rbx
call fcn.140049c20
mov dword [rsp + 0x40], eax
test eax, eax
jne 0x140023282
mov rcx, qword [rbp + 0x18]
mov rdx, rcx
mov r8d, dword [rcx + 4]
mov rcx, qword [rcx + 0x48]
call fcn.140034f20
mov dword [rsp + 0x40], eax
jmp 0x140023282
mov r10, qword [rsp + 0x70]
cmp byte [r10 + 0x21], 0
je 0x14002327e
cmp word [rsp + 0x48], 0
jne 0x14002327e
mov rbx, r12
test r15, r15
jle 0x14002327e
nop dword [rax]
mov rcx, qword [rbp + rbx*8 + 0x18]
mov r8b, 5
mov rax, qword [rcx + 0x50]
mov r9d, dword [rcx + 4]
mov rcx, r10
mov edx, dword [rax + 8]
lea rax, [rsp + 0x44]
bswap edx
mov qword [rsp + 0x20], rax
call fcn.140043470
mov r10, qword [rsp + 0x70]
inc rbx
cmp rbx, r15
jl 0x140023240
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x40], eax
jmp 0x140023282
mov eax, dword [rsp + 0x40]
movsxd rcx, dword [rsp + 0x58]
mov rbx, rcx
cmp r15, rcx
jge 0x1400232b5
nop
mov rcx, qword [rbp + r15*8]
test eax, eax
jne 0x1400232a9
mov r8d, dword [rcx + 4]
mov rdx, rcx
mov rcx, qword [rcx + 0x48]
call fcn.140034f20
inc r15
cmp r15, rbx
jl 0x140023290
mov dword [rsp + 0x40], eax
mov esi, dword [rsp + 0x40]
cmp dword [0x1401c9170], 0
je 0x140023314
mov rcx, qword [0x1401efbc0]
test rcx, rcx
je 0x1400232d4
call qword [0x1401c9200]
mov rcx, qword [rbp - 0x78]
call qword [0x1401c91b8]
dec qword [0x1401efd18]
movsxd rcx, eax
sub qword [0x1401efcd0], rcx
mov rcx, qword [rbp - 0x78]
call qword [0x1401c91a8]
mov rcx, qword [0x1401efbc0]
test rcx, rcx
je 0x1400222fa
call qword [0x1401c9210]
jmp 0x1400222fa
mov rcx, qword [rbp - 0x78]
call qword [0x1401c91a8]
jmp 0x1400222fa
lea eax, [rbx + 1]
xor edx, edx
movsxd r8, eax
lea rcx, [rbp]
shl r8, 3
call fcn.1400c71f0
jmp 0x1400222fc
mov rcx, r8
call fcn.14006b8d0
inc rbx
cmp rbx, r14
jl 0x140022320
movsxd rbx, dword [rsp + 0x50]
mov r14, qword [rsp + 0x1b8]
test rbx, rbx
jle 0x1400233ca
mov r8, qword [rbp + rdi*8 + 0x18]
test r8, r8
je 0x1400233c2
mov r8, qword [r8 + 0x70]
test byte [r8 + 0x34], 0x20
je 0x1400233ba
mov r10, qword [r8 + 0x28]
dec dword [r10 + 0x98]
mov rax, qword [r10 + 0xa8]
mov qword [r8 + 0x20], rax
movsxd rax, dword [r10 + 0xbc]
mov rcx, qword [r10 + 0x48]
mov qword [r10 + 0xa8], r8
mov edx, dword [r8 + 0x30]
mov r8, qword [r8 + 8]
dec edx
mov r9, qword [rcx]
imul rdx, rax
call qword [r9 + 0x90]
jmp 0x1400233c2
mov rcx, r8
call fcn.14006b8d0
inc rdi
cmp rdi, rbx
jl 0x140023363
mov rbx, qword [rsp + 0x208]
mov eax, esi
mov rsi, qword [rsp + 0x1c8]
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400a7ab0
add rsp, 0x1d0
pop r13
pop rdi
pop rbp
ret