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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4a8
movaps xmmword [rsp + 0x490], xmm6
mov rbp, qword [rsp + 0x518]
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x488], rax
test rbp, rbp
je 0x1404cb24a
cmp dword [rbp], 0
jg 0x1404cb24a
mov rsi, rcx
test rcx, rcx
je 0x1404c9e47
mov r14, rdx
test rdx, rdx
je 0x1404c9e47
mov ebx, r8d
cmp r8d, 0xffffffff
jl 0x1404c9e47
mov r13d, r9d
mov eax, r9d
add al, 0x82
jns 0x1404c9e47
cmp ebx, 0xffffffff
je 0x1404c9e53
cmp dword [rsi + 0x84], 3
jne 0x1404c9e6a
mov dword [rsi + 0x84], 0
test ebx, ebx
je 0x1404c9f30
movsxd r12, ebx
lea rcx, [r12*8]
sub rcx, r12
call fcn.1405117f0
test rax, rax
je 0x1404c9fa7
mov r15, rax
mov edi, dword [rsi + 0x88]
test dil, 1
je 0x1404c9c9c
mov eax, edi
and eax, 0xfffffffc
or eax, 2
mov dword [rsi + 0x88], eax
and r13b, 1
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], 0
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
mov r9d, r13d
call fcn.1404c9bc0
cmp dword [rbp], 0
jg 0x1404c9fb1
mov byte [rsp + 0x80], r13b
mov rdx, rbp
lea r13, [r15 + r12*4]
lea r12, [r12*2]
add r12, r13
mov rcx, rsi
call fcn.1404ce480
movsxd r8, dword [rsi + 0x14]
mov qword [rsp + 0x78], r12
mov rcx, r12
mov rdx, rax
call fcn.140562340
mov eax, dword [rsi + 0xc4]
mov r12d, dword [rsi + 0x14]
mov ebp, dword [rsi + 0xb8]
mov rcx, qword [rsp + 0x518]
mov qword [rsp + 0x20], rcx
mov rcx, rsi
mov qword [rsp + 0x48], r13
mov rdx, r13
mov r13d, eax
mov r8d, ebx
mov r9w, 2
call fcn.1405120e0
mov dword [rsp + 0x58], eax
mov rcx, rsi
mov rdx, r15
mov r8, qword [rsp + 0x518]
call fcn.1404cf0d0
mov rcx, qword [rsp + 0x518]
cmp dword [rcx], 0
jg 0x1404c9df8
mov rax, rcx
mov dword [rsp + 0x88], ebp
mov dword [rsp + 0x8c], r12d
mov dword [rsp + 0x74], r13d
mov dword [rsi + 0x88], edi
mov dword [rsi + 0x84], 5
movzx r9d, byte [rsp + 0x80]
xor r9b, 1
movzx edi, byte [rsi + 0x68]
mov byte [rsi + 0x68], 0
mov r12, rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
mov rcx, rsi
mov rdx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x58]
call fcn.1404c9bc0
mov byte [rsi + 0x68], dil
mov rcx, rsi
mov rdx, r12
call fcn.1404ce5c0
cmp dword [r12], 0
mov r13, qword [rsp + 0x78]
jle 0x1404caa33
xor byte [rsi + 0x8d], 1
mov r13d, dword [rsp + 0x74]
mov r12d, dword [rsp + 0x8c]
mov ebp, dword [rsp + 0x88]
mov qword [rsi + 8], r14
mov dword [rsi + 0x14], r12d
mov dword [rsi + 0x10], ebx
mov dword [rsi + 0xb8], ebp
mov eax, dword [rsi + 0x20]
cmp r12d, eax
cmovl eax, r12d
mov rcx, qword [rsi + 0x78]
movsxd r8, eax
mov rdx, qword [rsp + 0x78]
call fcn.140562340
mov dword [rsi + 0xc4], r13d
cmp dword [rsi + 0x128], 2
jl 0x1404c9fb1
mov dword [rsi + 0xb8], 2
jmp 0x1404c9fb1
mov dword [rbp], 1
jmp 0x1404cb24a
mov rcx, r14
call fcn.1405073c0
mov ebx, eax
cmp dword [rsi + 0x84], 3
je 0x1404c9c51
mov qword [rsi], 0
mov qword [rsi + 8], r14
mov dword [rsi + 0x18], ebx
mov dword [rsi + 0x10], ebx
mov dword [rsi + 0x14], ebx
mov byte [rsi + 0x8d], r13b
mov ecx, r13d
and cl, 1
movzx eax, cl
mov dword [rsi + 0xb8], eax
mov dword [rsi + 0xc8], 1
mov qword [rsi + 0x130], 0
mov qword [rsi + 0x1a4], 0
cmp r13b, 0xfe
xorps xmm0, xmm0
movups xmmword [rsi + 0x70], xmm0
setae byte [rsi + 0x8e]
test ebx, ebx
je 0x1404c9f54
mov dword [rsi + 0x128], 0xffffffff
mov rax, qword [rsi + 0x50]
lea rdi, [rsi + 0xd8]
test rax, rax
cmove rax, rdi
mov rcx, qword [rsi + 0x38]
mov qword [rsi + 0xd0], rax
movzx eax, byte [rsi + 0x68]
test rcx, rcx
je 0x1404c9fc8
cmp dword [rsi + 0x1c], ebx
jge 0x1404c9ff2
test al, al
je 0x1404ca011
movsxd rdx, ebx
call fcn.140511820
test rax, rax
je 0x1404ca011
mov rcx, rax
mov qword [rsi + 0x38], rax
jmp 0x1404c9fe0
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], 0
xor r15d, r15d
mov rcx, rsi
mov rdx, r14
xor r8d, r8d
mov r9d, r13d
call fcn.1404c9bc0
jmp 0x1404c9fb1
cmp r13b, 0xfe
jb 0x1404c9f67
mov byte [rsi + 0x8d], cl
mov byte [rsi + 0x8e], 0
lea rcx, [0x140644a00]
mov eax, dword [rcx + rax*4]
mov dword [rsi + 0xbc], eax
mov dword [rsi + 0x128], 0
mov dword [rsi + 0xc8], 0
mov dword [rsi + 0x98], 0
mov dword [rsi + 0xa8], 0
mov qword [rsi], rsi
jmp 0x1404cb24a
mov dword [rbp], 7
xor r15d, r15d
mov rcx, r15
call fcn.1405118c0
mov dword [rsi + 0x84], 3
jmp 0x1404cb24a
test al, al
je 0x1404ca011
movsxd rcx, ebx
call fcn.1405117f0
mov rcx, rax
mov qword [rsi + 0x38], rax
test rax, rax
je 0x1404ca011
mov dword [rsi + 0x1c], ebx
mov r14, qword [rsi + 8]
mov ebx, dword [rsi + 0x10]
movzx r13d, byte [rsi + 0x8d]
lea rax, [rsi + 0x70]
mov qword [rax], rcx
cmp r13b, 0xfe
jb 0x1404ca01d
mov eax, dword [rsi + 0x84]
add eax, 0xfffffffb
cmp eax, 2
setb r8b
jmp 0x1404ca020
mov dword [rbp], 7
jmp 0x1404cb24a
xor r8d, r8d
mov eax, dword [rsi + 0x88]
mov dword [rsp + 0x58], eax
test al, 4
je 0x1404ca035
mov dword [rsi + 0x14], 0
mov edx, r13d
and dl, 1
mov rax, qword [rsi + 0xd0]
mov byte [rsp + 0x68], dl
movzx edx, dl
cmp r13b, 0xfe
mov qword [rsp + 0x48], rcx
mov byte [rsp + 0x80], r13b
mov dword [rsp + 0x78], r8d
mov dword [rsp + 0x74], edx
jb 0x1404ca15f
mov dword [rax + 4], edx
mov r15d, dword [rsi + 0x98]
mov dword [rsp + 0x40], 1
test r15d, r15d
jle 0x1404ca1b8
mov qword [rsp + 0x50], rdi
mov rbp, qword [rsi + 0x90]
mov r13b, 0xa
xor edi, edi
jmp 0x1404ca0b0
cmp cl, 7
movzx r13d, r13b
mov eax, 0xa
cmove r13d, eax
cmp edi, r15d
jge 0x1404ca176
lea eax, [rdi + 1]
movsxd rcx, edi
movzx r12d, word [rbp + rcx*2]
mov ecx, r12d
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x1404ca0fd
cmp eax, r15d
je 0x1404ca0fd
movsxd rcx, eax
movzx ecx, word [rbp + rcx*2]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x1404ca0fd
add edi, 2
shl r12d, 0xa
add r12d, ecx
add r12d, 0xfca02400
jmp 0x1404ca0ff
mov edi, eax
mov rax, qword [rsi + 0x1c0]
test rax, rax
je 0x1404ca11c
mov rcx, qword [rsi + 0x1c8]
mov edx, r12d
call rax
cmp eax, 0x17
jne 0x1404ca124
mov ecx, r12d
call fcn.140508240
mov ecx, 0xa
cmp eax, 0x17
jge 0x1404ca130
mov ecx, eax
cmp r13b, 0xa
jne 0x1404ca097
mov r13b, 0xa
cmp cl, 0xd
ja 0x1404ca0a7
movzx eax, cl
mov edx, 0x2003
bt edx, eax
jae 0x1404ca0a7
mov r13d, ecx
jmp 0x1404ca0a7
movzx ecx, r13b
mov dword [rax + 4], ecx
mov al, 0xa
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x40], 0
jmp 0x1404ca1c1
movzx eax, byte [rsp + 0x68]
mov dword [rsp + 0x3c], eax
cmp r13b, 0xa
mov rdi, qword [rsp + 0x50]
je 0x1404ca1c1
movzx eax, r13b
test eax, eax
jne 0x1404ca1a2
mov rax, qword [rsi + 0xd0]
mov dword [rax + 4], 0
jmp 0x1404ca1b0
mov rax, qword [rsi + 0xd0]
mov dword [rax + 4], 1
mov dword [rsp + 0x40], 0
movzx eax, byte [rsp + 0x68]
mov dword [rsp + 0x3c], eax
test ebx, ebx
jle 0x1404ca1e5
xor r15d, r15d
mov ebp, 0xffffffff
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x60], 0xffffffff
xor r13d, r13d
jmp 0x1404ca45a
xor r13d, r13d
mov dword [rsp + 0x60], 0xffffffff
mov ebp, 0xffffffff
mov dword [rsp + 0x50], 0
cmp ebp, 0x7d
mov eax, 0x7d
cmovl eax, ebp
test eax, eax
js 0x1404ca243
cmp ebp, 0x7e
mov eax, eax
mov ecx, 2
mov edx, dword [rsp + 0x40]
cmovge edx, ecx
inc rax
mov r8d, dword [rsp + 0x78]
nop word cs:[rax + rax]
cmp edx, 2
je 0x1404ca24a
mov edx, dword [rsp + rax*4 + 0x8c]
dec rax
jg 0x1404ca230
jmp 0x1404ca251
mov r8d, dword [rsp + 0x78]
jmp 0x1404ca251
or r13d, 0x100000
test byte [rsi + 0x88], 4
jne 0x1404ca278
mov rax, qword [rsi + 0xd0]
movsxd rcx, dword [rsi + 0xc8]
mov dword [rax + rcx*8 - 8], ebx
mov eax, dword [rsp + 0x50]
mov dword [rsi + 0x1b8], eax
jmp 0x1404ca283
cmp dword [rsi + 0x14], ebx
jge 0x1404ca283
dec dword [rsi + 0xc8]
cmp byte [rsp + 0x3c], 1
sete al
and r8b, al
cmp r8b, 1
jne 0x1404ca2aa
mov rax, qword [rsi + 0xd0]
movsxd rcx, dword [rsi + 0xc8]
mov dword [rax + rcx*8 - 4], 1
cmp byte [rsp + 0x80], 0xfe
jb 0x1404ca2c5
mov rax, qword [rsi + 0xd0]
movzx eax, byte [rax + 4]
mov byte [rsi + 0x8d], al
mov rdi, qword [rsp + 0x510]
mov edx, dword [rsi + 0xc8]
test edx, edx
jle 0x1404ca374
mov rcx, qword [rsi + 0xd0]
mov eax, edx
and eax, 3
cmp edx, 4
jae 0x1404ca2f1
xor r8d, r8d
jmp 0x1404ca33d
and edx, 0xfffffffc
xor r8d, r8d
lea r9, [0x140644a00]
nop
mov r10d, dword [rcx + r8*8 + 4]
mov r11d, dword [rcx + r8*8 + 0xc]
and r10d, 1
or r13d, dword [r9 + r10*4]
and r11d, 1
or r13d, dword [r9 + r11*4]
mov r10d, dword [rcx + r8*8 + 0x14]
and r10d, 1
or r13d, dword [r9 + r10*4]
mov r10d, dword [rcx + r8*8 + 0x1c]
and r10d, 1
or r13d, dword [r9 + r10*4]
add r8, 4
cmp rdx, r8
jne 0x1404ca300
test rax, rax
je 0x1404ca374
lea rcx, [rcx + r8*8]
add rcx, 4
xor edx, edx
lea r8, [0x140644a00]
nop word cs:[rax + rax]
mov r9d, dword [rcx + rdx*8]
and r9d, 1
or r13d, dword [r8 + r9*4]
inc rdx
cmp rax, rdx
jne 0x1404ca360
cmp byte [rsi + 0x8c], 0
setne al
test r13b, r13b
sets cl
and cl, al
movzx eax, cl
or eax, r13d
mov dword [rsi + 0xbc], eax
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0xc0], eax
mov r15, qword [rsi + 0x70]
mov r9d, dword [rsi + 0x14]
mov dword [rsi + 0xc4], r9d
test rdi, rdi
mov qword [rsp + 0x58], r9
je 0x1404ca3ce
mov qword [rsi + 0x78], rdi
mov rcx, rsi
mov rbx, qword [rsp + 0x518]
mov rdx, rbx
call fcn.1404cbe20
jmp 0x1404ca403
movzx r8d, byte [rsi + 0x68]
lea rdx, [rsi + 0x20]
lea rcx, [rsi + 0x40]
call fcn.1404c9a60
test al, al
mov rbx, qword [rsp + 0x518]
je 0x1404ca96d
mov rax, qword [rsi + 0x40]
mov qword [rsi + 0x78], rax
mov rcx, rsi
mov rdx, rbx
call fcn.1404cb2e0
cmp dword [rbx], 0
jg 0x1404cb24a
mov ebp, eax
mov r9d, dword [rsi + 0x144]
cmp r9d, 5
jg 0x1404ca8cf
lea rax, [rsi + 0x150]
jmp 0x1404ca8f3
mov rax, qword [rsi + 0xd0]
movsxd rcx, dword [rsi + 0xc8]
mov dword [rax + rcx*8 - 4], 0
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x3c], 0
cmp r15d, ebx
jge 0x1404ca1fd
mov eax, r13d
mov r13d, eax
jmp 0x1404ca474
cmp ecx, 0x16
je 0x1404ca60e
cmp r15d, ebx
jge 0x1404ca1fd
lea eax, [r15 + 1]
movsxd rcx, r15d
movzx r12d, word [r14 + rcx*2]
mov ecx, r12d
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x1404ca4d0
cmp eax, ebx
je 0x1404ca4d0
movsxd rcx, eax
movzx ecx, word [r14 + rcx*2]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x1404ca4d0
add r15d, 2
shl r12d, 0xa
add r12d, ecx
add r12d, 0xfca02400
jmp 0x1404ca4d3
mov r15d, eax
mov rax, qword [rsi + 0x1c0]
test rax, rax
je 0x1404ca4f0
mov rcx, qword [rsi + 0x1c8]
mov edx, r12d
call rax
cmp eax, 0x17
jne 0x1404ca4f8
mov ecx, r12d
call fcn.140508240
mov edx, 0xa
cmp eax, 0x17
jge 0x1404ca504
mov edx, eax
bts r13d, edx
movsxd rax, r15d
mov rcx, qword [rsp + 0x48]
mov byte [rcx + rax - 1], dl
cmp r12d, 0x10000
jb 0x1404ca529
or r13d, 0x40000
mov byte [rax + rcx - 2], 0x12
test byte [rsp + 0x58], 2
je 0x1404ca56a
mov ecx, r12d
and ecx, 0xfffffffc
cmp ecx, 0x200c
sete cl
lea r8d, [r12 - 0x202a]
cmp r8d, 5
setb r8b
or r8b, cl
lea ecx, [r12 - 0x2066]
cmp ecx, 4
setb cl
or cl, r8b
movzx ecx, cl
add dword [rsp + 0x50], ecx
movzx ecx, dl
test ecx, ecx
je 0x1404ca680
lea r8, [rax - 1]
cmp dl, 0xd
je 0x1404ca652
cmp ecx, 1
je 0x1404ca652
lea r9d, [rcx - 0x13]
cmp r9d, 2
jbe 0x1404ca5c8
cmp dl, 7
jne 0x1404ca462
cmp r15d, ebx
setl cl
cmp r12d, 0xd
jne 0x1404ca6e1
cmp r15d, ebx
jge 0x1404ca6e1
cmp word [r14 + rax*2], 0xa
je 0x1404ca46b
jmp 0x1404ca6df
lea edx, [rbp + 1]
cmp ebp, 0x7c
jg 0x1404ca5e8
movsxd rax, edx
mov dword [rsp + rax*4 + 0x290], r8d
mov r9d, dword [rsp + 0x40]
mov dword [rsp + rax*4 + 0x90], r9d
mov dword [rsp + 0x40], 3
cmp ecx, 0x13
jne 0x1404ca607
mov rax, qword [rsp + 0x48]
mov byte [rax + r8], 0x14
mov dword [rsp + 0x40], 2
mov eax, r13d
mov ebp, edx
jmp 0x1404ca644
mov eax, r13d
or eax, 0x100000
mov rdx, rbp
cmp edx, 0x7e
cmovge eax, r13d
cmp dword [rsp + 0x40], 2
cmovne eax, r13d
test edx, edx
js 0x1404ca644
cmp edx, 0x7d
jg 0x1404ca63f
mov ecx, edx
mov ecx, dword [rsp + rcx*4 + 0x90]
mov dword [rsp + 0x40], ecx
dec edx
mov rbp, rdx
cmp r15d, ebx
jl 0x1404ca45d
jmp 0x1404cab2b
mov eax, dword [rsp + 0x40]
cmp eax, 2
je 0x1404ca69b
cmp eax, 1
jne 0x1404ca6c5
mov rax, qword [rsi + 0xd0]
movsxd rdx, dword [rsi + 0xc8]
mov dword [rax + rdx*8 - 4], 1
mov dword [rsp + 0x40], 0
jmp 0x1404ca6c5
mov eax, dword [rsp + 0x40]
cmp eax, 2
je 0x1404ca79d
cmp eax, 1
je 0x1404ca42b
jmp 0x1404ca7b4
mov dword [rsp + 0x40], 3
mov rax, rbp
cmp eax, 0x7d
jg 0x1404ca6c5
cdqe
movsxd rax, dword [rsp + rax*4 + 0x290]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rax], 0x15
or r13d, 0x200000
cmp ecx, 0xd
mov eax, dword [rsp + 0x60]
cmove eax, r8d
mov dword [rsp + 0x60], eax
mov al, 1
mov dword [rsp + 0x3c], eax
jmp 0x1404ca451
mov cl, 1
mov rax, qword [rsi + 0xd0]
movsxd rdx, dword [rsi + 0xc8]
mov dword [rax + rdx*8 - 8], r15d
cmp byte [rsp + 0x3c], 1
sete al
and al, byte [rsp + 0x78]
cmp al, 1
jne 0x1404ca73b
mov rax, qword [rsi + 0xd0]
movsxd rdx, dword [rsi + 0xc8]
mov dword [rax + rdx*8 - 4], 1
test byte [rsi + 0x88], 4
je 0x1404ca744
mov dword [rsi + 0x14], r15d
mov eax, dword [rsp + 0x50]
mov dword [rsi + 0x1b8], eax
test cl, cl
je 0x1404ca451
jmp 0x1404ca74c
test byte [rsi + 0x88], 4
jne 0x1404ca723
test cl, cl
je 0x1404ca451
mov eax, dword [rsi + 0xc8]
mov rcx, rdi
lea edi, [rax + 1]
mov dword [rsi + 0xc8], edi
mov r12, rcx
cmp qword [rsi + 0xd0], rcx
je 0x1404ca7c1
shl edi, 4
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x1404ca7fb
cmp dword [rsi + 0x28], edi
jge 0x1404ca813
movsxd rdx, edi
mov rcx, rax
call fcn.140511820
test rax, rax
je 0x1404cb192
mov qword [rsi + 0x50], rax
jmp 0x1404ca810
mov eax, r13d
or eax, 0x100000
cmp ebp, 0x7e
cmovl r13d, eax
mov dword [rsp + 0x40], 3
mov dword [rsp + 0x3c], 0
jmp 0x1404ca451
cmp eax, 0xa
mov rdi, r12
jl 0x1404ca86d
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x1404ca81f
cmp dword [rsi + 0x28], 0x9f
jg 0x1404ca840
mov edx, 0xa0
mov rcx, rax
call fcn.140511820
test rax, rax
je 0x1404cb192
mov qword [rsi + 0x50], rax
jmp 0x1404ca836
movsxd rcx, edi
call fcn.1405117f0
mov qword [rsi + 0x50], rax
test rax, rax
je 0x1404cb192
mov dword [rsi + 0x28], edi
mov rdi, r12
mov qword [rsi + 0xd0], rax
jmp 0x1404ca86d
mov ecx, 0xa0
call fcn.1405117f0
mov qword [rsi + 0x50], rax
test rax, rax
je 0x1404cb192
mov dword [rsi + 0x28], 0xa0
mov rdi, r12
mov qword [rsi + 0xd0], rax
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmm3, xmmword [rdi + 0x30]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
cmp byte [rsp + 0x80], 0xfe
jb 0x1404ca8a4
mov rax, qword [rsi + 0xd0]
movsxd rcx, dword [rsi + 0xc8]
mov edx, dword [rsp + 0x74]
mov dword [rax + rcx*8 - 4], edx
mov ebp, 0xffffffff
mov dword [rsp + 0x40], 1
movzx eax, byte [rsp + 0x68]
jmp 0x1404ca6d6
movzx eax, byte [rsi + 0x8d]
mov rcx, qword [rsi + 0xd0]
movsxd rdx, dword [rsi + 0xc8]
mov dword [rcx + rdx*8 - 4], eax
mov ebp, 0xffffffff
mov dword [rsp + 0x40], 0
jmp 0x1404ca451
shl r9d, 4
lea r14, [rsi + 0x60]
cmp r9d, dword [rsi + 0x30]
jle 0x1404ca8f0
lea rdx, [rsi + 0x30]
mov rcx, r14
mov r8b, 1
call fcn.1404c9a60
test al, al
je 0x1404ca96d
mov rax, qword [r14]
mov qword [rsi + 0x148], rax
mov dword [rsi + 0x144], 0xffffffff
mov dword [rsi + 0xb8], ebp
cmp ebp, 1
mov rbx, qword [rsp + 0x58]
je 0x1404ca91c
test ebp, ebp
jne 0x1404caa07
mov dword [rsi + 0xc4], 0
cmp byte [rsi + 0x8e], 0
je 0x1404cb28b
test byte [rsi + 0x88], 1
je 0x1404cb28b
mov eax, dword [rsi + 0x84]
add eax, 0xfffffffb
cmp eax, 1
ja 0x1404cb28b
mov eax, dword [rsi + 0xc8]
test eax, eax
jle 0x1404cb28b
lea rdi, [r15 - 1]
xor ebx, ebx
mov ebp, 0x2002
jmp 0x1404ca99b
mov dword [rbx], 7
jmp 0x1404cb24a
mov rcx, rsi
mov r8d, 4
call fcn.1404cc9e0
mov eax, dword [rsi + 0xc8]
inc rbx
movsxd rcx, eax
cmp rbx, rcx
jge 0x1404cb28b
mov rcx, qword [rsi + 0xd0]
cmp byte [rcx + rbx*8 + 4], 0
je 0x1404ca98c
test rbx, rbx
je 0x1404ca9b5
mov r10d, dword [rcx + rbx*8 - 8]
jmp 0x1404ca9b8
xor r10d, r10d
mov r8d, dword [rcx + rbx*8]
cmp r8d, r10d
jle 0x1404ca98c
movsxd rcx, r8d
lea edx, [rcx - 1]
lea r9, [rcx - 1]
movsxd r10, r10d
movzx r11d, byte [r15 + r9]
test r11d, r11d
je 0x1404ca9ec
bt ebp, r11d
jb 0x1404ca98c
lea r11, [r9 - 1]
cmp r9, r10
mov r9, r11
jg 0x1404ca9ce
jmp 0x1404ca98c
cmp edx, r9d
jle 0x1404ca978
add rcx, rdi
mov edx, r8d
dec edx
cmp byte [rcx], 7
lea rcx, [rcx - 1]
je 0x1404ca9f7
jmp 0x1404ca978
mov eax, dword [rsi + 0x84]
cmp rax, 6
ja case.0x1404caa25.3
lea rcx, [0x1404cb2b8]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
lea rax, [0x140644a08]
jmp 0x1404cadd7
mov r12d, dword [rsi + 0x128]
test r12d, r12d
jle 0x1404c9ddd
mov r11, qword [rsi + 0x130]
xor eax, eax
xor edi, edi
xor ecx, ecx
mov qword [rsp + 0x50], r11
jmp 0x1404caa64
inc rax
cmp rax, r12
mov r11, qword [rsp + 0x50]
je 0x1404caacd
mov r9d, ecx
lea r8, [rax + rax*2]
mov ecx, dword [r11 + r8*4 + 4]
mov edx, ecx
sub edx, r9d
cmp edx, 2
jl 0x1404caa57
mov r8d, dword [r11 + r8*4]
and r8d, 0x7fffffff
add edx, r8d
jmp 0x1404caa9e
inc edi
inc r8
lea r9d, [r8 + 1]
cmp edx, r9d
jle 0x1404caa57
movsxd r9, dword [r15 + r8*4 + 4]
mov r10d, r8d
movsxd r10, dword [r15 + r10*4]
mov r11d, r9d
sub r11d, r10d
mov ebp, r11d
neg ebp
cmovs ebp, r11d
cmp ebp, 1
jne 0x1404caa90
movzx r9d, byte [r13 + r9]
cmp r9b, byte [r13 + r10]
jne 0x1404caa90
jmp 0x1404caa92
test edi, edi
je 0x1404cab89
lea eax, [rdi + r12]
shl eax, 2
lea r9d, [rax + rax*2]
movzx r8d, byte [rsi + 0x69]
lea rdx, [rsi + 0x2c]
lea rbp, [rsi + 0x58]
mov rcx, rbp
call fcn.1404c9a60
mov rdx, qword [rsp + 0x50]
test al, al
je 0x1404c9ddd
cmp r12d, 1
jne 0x1404cab18
mov rax, qword [rbp]
mov ecx, dword [rdx + 8]
mov dword [rax + 8], ecx
mov rcx, qword [rdx]
mov qword [rax], rcx
mov r11, qword [rsi + 0x58]
mov qword [rsi + 0x130], r11
add dword [rsi + 0x128], edi
jmp 0x1404cab8b
mov r13d, eax
jmp 0x1404ca1fd
lea rax, [0x140644a28]
jmp 0x1404cadd7
lea rax, [0x140644a48]
jmp 0x1404cadd7
lea rax, str._Ld_
jmp 0x1404cadd7
test byte [rsi + 0x88], 1
jne 0x1404cadc7
lea rax, str._Kd_
jmp 0x1404cadd7
test byte [rsi + 0x88], 1
jne 0x1404cadd0
lea rax, [0x140644ae8]
jmp 0x1404cadd7
xor edi, edi
test r12d, r12d
jle 0x1404c9ddd
mov qword [rsp + 0x50], r11
jmp 0x1404cabe6
movsxd rax, dword [rsp + 0x48]
mov edx, dword [r15 + rax*4]
movsxd rax, dword [rsp + 0x58]
mov eax, dword [r15 + rax*4]
cmp edx, eax
cmovl eax, edx
mov r12, qword [rsp + 0x80]
cdqe
movzx edx, byte [r13 + rax]
mov r8d, dword [rsp + 0x3c]
xor r8d, edx
shl r8d, 0x1f
or eax, r8d
lea rcx, [rcx + rcx*2]
mov dword [r11 + rcx*4], eax
cmp r12, 1
mov r12, r9
jle 0x1404c9ddd
lea r9, [r12 - 1]
test r9d, r9d
je 0x1404cac0f
mov ecx, r9d
lea rax, [rcx + rcx*2]
mov r8d, dword [r11 + rax*4 + 4]
lea eax, [r12 - 2]
lea rdx, [rax + rax*2]
mov eax, r8d
sub eax, dword [r11 + rdx*4 + 4]
jmp 0x1404cac18
mov r8d, dword [r11 + 4]
xor ecx, ecx
mov eax, r8d
lea rcx, [rcx + rcx*2]
lea rbp, [r11 + rcx*4]
mov r10d, dword [r11 + rcx*4]
mov edx, r10d
shr edx, 0x1f
mov dword [rsp + 0x3c], edx
mov edx, r10d
and edx, 0x7fffffff
cmp eax, 1
jg 0x1404cac65
lea eax, [rdi + r9]
movsxd rcx, eax
test edi, edi
je 0x1404cac5c
lea rax, [rcx + rcx*2]
mov r8d, dword [rbp + 8]
mov dword [r11 + rax*4 + 8], r8d
mov r8, qword [rbp]
mov qword [r11 + rax*4], r8
mov eax, dword [r15 + rdx*4]
jmp 0x1404cabba
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x80], r12
test r10d, r10d
lea eax, [rax + rdx - 1]
mov r9d, edx
cmovns r9d, eax
cmovns eax, edx
mov dword [rsp + 0x58], eax
cmp r9d, eax
mov dword [rsp + 0x48], r9d
je 0x1404cad90
mov eax, r9d
xor edx, edx
test r10d, r10d
sets dl
lea r9, [rdx + rdx]
lea r10, [rdx + rdx - 1]
lea r11, [r11 + rcx*4 + 4]
movsxd rdx, eax
lea rax, [r15 + r9*4]
add rax, 0xfffffffffffffffc
mov qword [rsp + 0x40], rax
jmp 0x1404cad44
movsxd rax, dword [rsp + 0x48]
mov r9d, dword [r15 + rax*4]
cmp r9d, ebp
cmovl ebp, r9d
movsxd r9, ebp
movzx ebp, byte [r13 + r9]
xor ebp, dword [rsp + 0x3c]
shl ebp, 0x1f
or r9d, ebp
mov r12, qword [rsp + 0x60]
lea ebp, [rdi + r12]
movsxd r12, ebp
lea r12, [r12 + r12*2]
mov rbp, qword [rsp + 0x50]
mov dword [rbp + r12*4], r9d
mov dword [rbp + r12*4 + 4], r8d
mov r9d, ecx
sub r9d, eax
mov r8d, r9d
neg r8d
cmovs r8d, r9d
not r8d
add r8d, dword [r11]
mov dword [r11], r8d
mov eax, dword [r11 + 4]
and eax, 0xa
mov dword [rbp + r12*4 + 8], eax
not eax
and dword [r11 + 4], eax
dec edi
lea eax, [r10 + rcx]
mov dword [rsp + 0x48], eax
mov ecx, edx
cmp ecx, dword [rsp + 0x58]
je 0x1404cad90
mov ecx, edx
movsxd rbp, dword [r15 + rdx*4]
mov rax, qword [rsp + 0x40]
movsxd r9, dword [rax + rdx*4]
add rdx, r10
mov r12d, ebp
sub r12d, r9d
mov rax, r13
mov r13d, r12d
neg r13d
cmovs r13d, r12d
cmp r13d, 1
mov r13, rax
jne 0x1404cacc5
movzx r12d, byte [r13 + rbp]
cmp r12b, byte [r13 + r9]
jne 0x1404cacc5
add ecx, r10d
cmp ecx, dword [rsp + 0x58]
jne 0x1404cad44
mov r9, qword [rsp + 0x60]
lea ecx, [rdi + r9]
movsxd rcx, ecx
test edi, edi
mov r11, qword [rsp + 0x50]
je 0x1404cab9b
lea rdx, [rcx + rcx*2]
mov rax, qword [rsp + 0x68]
mov r8d, dword [rax + 8]
mov dword [r11 + rdx*4 + 8], r8d
mov r8, qword [rax]
mov qword [r11 + rdx*4], r8
jmp 0x1404cab9b
lea rax, [0x140644a88]
jmp 0x1404cadd7
lea rax, str.PMd_
mov qword [rsi + 0xb0], rax
test rdi, rdi
mov qword [rsp + 0x50], r15
jne 0x1404cae33
mov eax, dword [rsi + 0xc8]
cmp eax, 1
jg 0x1404cae33
cmp dword [rsi + 0xbc], 0
js 0x1404cae33
cmp byte [rsi + 0x8e], 0
je 0x1404cb1a5
mov ecx, eax
mov rax, qword [rsi + 0xd0]
cmp ebx, dword [rax]
jle 0x1404cb1b8
lea edx, [rcx - 1]
xor r8d, r8d
test ecx, ecx
cmovle r8d, edx
movsxd rdx, r8d
movzx eax, byte [rax + rdx*8 + 4]
jmp 0x1404cb1bf
mov r10, qword [rsi + 0x78]
cmp byte [rsi + 0x8e], 0
je 0x1404cae4c
mov rax, qword [rsi + 0xd0]
cmp dword [rax], 0
jle 0x1404cae55
movzx eax, byte [rsi + 0x8d]
jmp 0x1404cae99
mov ecx, dword [rsi + 0xc8]
test ecx, ecx
jle 0x1404cae7b
mov edx, 1
mov r8, rdx
cmp rcx, rdx
je 0x1404cae7f
lea rdx, [r8 + 1]
cmp dword [rax + r8*8], 0
jle 0x1404cae64
dec edx
jmp 0x1404cae81
dec ecx
jmp 0x1404cae91
mov edx, ecx
cmp r8, rcx
setb r8b
dec ecx
test r8b, 1
cmovne ecx, edx
movsxd rcx, ecx
movzx eax, byte [rax + rcx*8 + 4]
movsxd r12, ebx
movzx r13d, byte [r10]
movzx eax, al
cmp al, r13b
mov ebp, r13d
cmova ebp, eax
and bpl, 1
lea eax, [rbx - 1]
mov dword [rsp + 0x3c], eax
mov eax, 1
sub eax, ebx
mov qword [rsp + 0x40], rax
lea rax, [r10 + 0x10]
mov qword [rsp + 0x60], rax
xor r14d, r14d
movaps xmm6, xmmword [0x1405acab0]
mov qword [rsp + 0x48], r10
mov edi, 0x5d800
jmp 0x1404caf06
mov byte [rsp + 0x20], bpl
mov rcx, rsi
mov r8d, r14d
call fcn.1404cc020
mov r10, qword [rsp + 0x48]
test r15b, 1
mov r15, qword [rsp + 0x50]
je 0x1404cb236
mov eax, r13d
mov edx, r14d
test r14d, r14d
jle 0x1404caf3c
lea ecx, [rdx - 1]
cmp byte [r15 + rcx], 7
mov r9d, ebp
jne 0x1404caf96
cmp byte [rsi + 0x8e], 0
je 0x1404caf32
mov rcx, qword [rsi + 0xd0]
cmp edx, dword [rcx]
jge 0x1404caf41
movzx r9d, byte [rsi + 0x8d]
jmp 0x1404caf92
mov r9d, ebp
jmp 0x1404caf96
mov r8d, dword [rsi + 0xc8]
test r8d, r8d
jle 0x1404caf6a
mov r9d, 1
mov r10, r9
cmp r8, r9
je 0x1404caf6f
lea r9, [r10 + 1]
cmp dword [rcx + r10*8], edx
jle 0x1404caf53
dec r9d
jmp 0x1404caf72
dec r8d
jmp 0x1404caf89
mov r9d, r8d
cmp r10, r8
setb r10b
dec r8d
test r10b, 1
cmovne r8d, r9d
mov r10, qword [rsp + 0x48]
movsxd r8, r8d
movzx r9d, byte [rcx + r8*8 + 4]
and r9b, 1
movsxd rcx, edx
lea r14, [rcx + 1]
cmp r14d, ebx
jge 0x1404cb001
lea r8, [r10 + r14]
lea r11, [r15 + r14]
mov ebp, edx
add rbp, qword [rsp + 0x40]
mov r15b, 1
xor r10d, r10d
jmp 0x1404cafd8
lea rbx, [r10 + r14]
inc rbx
cmp rbx, r12
setl r15b
inc r10
mov ebx, r10d
add ebx, ebp
je 0x1404cb012
movzx r13d, byte [r8 + r10]
cmp r13b, al
je 0x1404cafc0
movzx ebx, byte [r11 + r10]
bt edi, ebx
jb 0x1404cafc0
lea r8d, [rdx + r10]
lea r14d, [rdx + r10]
inc r14d
mov rbx, qword [rsp + 0x58]
jmp 0x1404cb08d
xor r15d, r15d
mov r8d, edx
cmp byte [rsi + 0x8e], 0
jne 0x1404cb028
jmp 0x1404cb05d
mov r8d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x58]
mov r14d, ebx
cmp byte [rsi + 0x8e], 0
je 0x1404cb05d
mov r10, qword [rsi + 0xd0]
cmp ebx, dword [r10]
jle 0x1404cb05d
mov r11d, dword [rsi + 0xc8]
test r11d, r11d
jle 0x1404cb067
mov r13d, 1
mov rbp, r13
cmp r11, r13
je 0x1404cb06c
lea r13, [rbp + 1]
cmp dword [r10 + rbp*8], ebx
jl 0x1404cb046
dec r13d
jmp 0x1404cb06f
movzx r13d, byte [rsi + 0x8d]
jmp 0x1404cb08d
dec r11d
jmp 0x1404cb084
mov r13d, r11d
cmp rbp, r11
setb bl
dec r11d
test bl, 1
cmovne r11d, r13d
mov rbx, qword [rsp + 0x58]
movsxd r11, r11d
movzx r13d, byte [r10 + r11*8 + 4]
mov r10d, eax
and r10b, 0x7f
mov r11d, r13d
and r11b, 0x7f
cmp r10b, r11b
movzx r10d, r13b
movzx ebp, al
cmovb ebp, r10d
and bpl, 1
test al, al
jns 0x1404caee2
cmp r8d, edx
cmovle r8d, edx
mov r9d, r8d
sub r9d, edx
cmp r9d, 7
jae 0x1404cb0d5
mov r9, rcx
mov r10, qword [rsp + 0x48]
jmp 0x1404cb173
lea rax, [r9 + 1]
cmp r9d, 0x1f
movabs r11, 0x7f7f7f7f7f7f7f7f
jae 0x1404cb0ed
xor edx, edx
jmp 0x1404cb136
mov rdx, rax
and rdx, 0xffffffffffffffe0
mov r9, qword [rsp + 0x60]
add r9, rcx
xor r10d, r10d
movups xmm0, xmmword [r9 + r10 - 0x10]
movups xmm1, xmmword [r9 + r10]
andps xmm0, xmm6
andps xmm1, xmm6
movups xmmword [r9 + r10 - 0x10], xmm0
movups xmmword [r9 + r10], xmm1
add r10, 0x20
cmp rdx, r10
jne 0x1404cb0ff
cmp rax, rdx
mov r10, qword [rsp + 0x48]
je 0x1404caef7
test al, 0x18
je 0x1404cb16d
mov r10, rax
and r10, 0xfffffffffffffff8
lea r9, [r10 + rcx]
add rcx, qword [rsp + 0x48]
nop word cs:[rax + rax]
and qword [rcx + rdx], r11
add rdx, 8
cmp r10, rdx
jne 0x1404cb150
cmp rax, r10
mov r10, qword [rsp + 0x48]
je 0x1404caef7
jmp 0x1404cb173
add rdx, rcx
mov r9, rdx
inc r8d
mov eax, r8d
nop dword [rax]
and byte [r10 + r9], 0x7f
inc r9
cmp eax, r9d
jne 0x1404cb180
jmp 0x1404caef7
mov rax, qword [rsp + 0x518]
mov dword [rax], 7
jmp 0x1404cb24a
movzx eax, byte [rsi + 0x8d]
and al, 1
movzx r9d, byte [rsi + 0x8d]
jmp 0x1404cb221
movzx eax, byte [rsi + 0x8d]
and al, 1
mov rdx, qword [rsi + 0xd0]
cmp dword [rdx], 0
jle 0x1404cb1d7
movzx r9d, byte [rsi + 0x8d]
jmp 0x1404cb221
test ecx, ecx
jle 0x1404cb1f9
mov r9d, 1
mov r8, r9
cmp rcx, r9
je 0x1404cb200
lea r9, [r8 + 1]
cmp dword [rdx + r8*8], 0
jle 0x1404cb1e1
dec r9d
jmp 0x1404cb203
dec ecx
mov r10d, ecx
jmp 0x1404cb20e
mov r9d, ecx
lea r10d, [rcx - 1]
cmp r8, rcx
cmovb r10d, r9d
movsxd rcx, r10d
movzx r9d, byte [rdx + rcx*8 + 4]
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
and r9b, 1
mov byte [rsp + 0x20], al
mov rcx, rsi
xor edx, edx
mov r8d, ebx
call fcn.1404cc020
mov eax, dword [rsi + 0x1ac]
test eax, eax
jle 0x1404cb276
mov rcx, qword [rsp + 0x518]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x488]
xor rcx, rsp
call fcn.1405602f0
movaps xmm6, xmmword [rsp + 0x490]
add rsp, 0x4a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
call fcn.1404cc7e0
cmp byte [rsi + 0x8e], 0
jne 0x1404ca933
test byte [rsi + 0x88], 2
jne 0x1404cb29f
mov eax, dword [rsi + 0x18]
add eax, dword [rsi + 0x1a4]
jmp 0x1404cb2a8
mov eax, dword [rsi + 0x18]
sub eax, dword [rsi + 0x1b8]
mov dword [rsi + 0x18], eax
jmp 0x1404c9f8b
call fcn.14056f538
int3