Function at 0x1401613d0
Capabilities:
Authenticate hmac

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x4c8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x440], 0xfffffffffffffffe
mov r14d, r8d
mov rdi, rdx
mov r9d, dword [0x14055761f]
mov eax, 0x1314ee20
add eax, dword [0x14050c640]
test r9d, eax
je 0x140161454
cmp dword [0x14055764f], 0
je 0x140161454
mov edx, r9d
and edx, 1
mov r8d, dword [0x14050c640]
mov r10d, r8d
xor r10d, 0x1314ed20
and r8d, 0x1314ed20
lea r8d, [r10 + r8*2]
cmp edx, r8d
jne 0x140161454
test r14b, r14b
jne 0x140161454
lea rsi, [0x1400980f0]
jmp 0x1401626c0
lea rdx, [fcn.1401613d0]
add edx, edx
add edx, 0x3d40
mov r8d, edx
not r8d
test r8d, edx
jne 0x140161489
mov edx, dword [0x14050c640]
mov r8d, dword [0x140564410]
lea r10d, [r8 - 1]
imul r10d, r8d
test r10b, 1
je 0x1401614a8
mov edx, 0x1314ed77
nop
mov r8d, dword [0x140564414]
mov r10d, dword [0x14050c640]
add r10d, edx
cmp r8d, r10d
jge 0x140161490
jmp 0x14016146e
mov r8d, edx
xor r8d, 0x1314ed21
not edx
and edx, 0x6ceb12de
or edx, r8d
not edx
lea edx, [r8 + rdx*2]
test r9d, edx
je 0x140161650
test r9d, eax
je 0x1401619f6
mov eax, dword [0x140564414]
mov edx, dword [0x14050c640]
mov r8d, edx
xor r8d, 0x1314ed7f
and edx, 0x1314ed7f
lea edx, [r8 + rdx*2]
cmp eax, edx
nop word [rax + rax]
mov r10d, dword [0x140557623]
mov eax, dword [0x140564414]
mov edx, 0x1314ed66
add edx, dword [0x14050c640]
cmp eax, edx
jge 0x140161500
mov eax, r10d
not eax
and eax, 0xffffffef
mov edx, r10d
and edx, 0x10
or edx, eax
xor edx, 0x10
xor eax, 0xffffffef
or eax, edx
not eax
test eax, eax
je 0x1401619fd
xor r11d, r11d
lea edi, [r10 + r10]
lea rsi, [0x1400980f0]
mov eax, r9d
or r9d, 5
lea ecx, [rax + rax*4]
lea eax, [rax + rax*4]
add eax, 0xffffffe7
mov edx, 0x1e
sub edx, ecx
mov ecx, eax
sub ecx, edx
imul ecx, edx
mov edx, eax
xor edx, 0xc60d63e3
and eax, 0x460d63e3
lea ebx, [rdx + rax*2]
sub ebx, ecx
add ebx, 0x39f29c1d
imul ebx, ecx
mov eax, ebx
sub eax, ecx
imul eax, ecx
nop dword [rax]
test r11b, r11b
jne 0x1401615cd
mov ecx, dword [0x140564418]
add ecx, edi
mov dword [0x140557623], ecx
mov dword [0x14055761f], r9d
mov qword [0x140557643], rsi
mov ecx, dword [0x140564410]
mov edx, dword [0x14050c640]
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
je 0x1401626c0
mov ecx, dword [0x14050c640]
mov r8d, r10d
sub r8d, ecx
add r8d, 0xeceb12df
mov edx, ecx
xor edx, 0x1314ed21
and ecx, 0x1314ed21
lea edx, [rdx + rcx*2]
imul edx, r8d
lea ecx, [rdx + rdx]
shl edx, cl
shl edx, cl
mov r14d, dword [0x140564418]
mov r8d, r14d
mov ecx, edx
shl r8d, cl
mov edx, r14d
mov ecx, r8d
shl edx, cl
sub edx, r14d
mov ecx, edx
sub ecx, r14d
imul ecx, r14d
add ecx, edx
mov dword [0x140557623], ecx
mov edx, ebx
mov ecx, eax
shl edx, cl
or edx, ebx
mov dword [0x14055761f], edx
mov qword [0x140557643], rsi
mov ecx, dword [0x140564414]
cmp ecx, 0x11
jge 0x140161590
jmp 0x140161595
mov dword [0x14055764b], 0
xorps xmm0, xmm0
movaps xmmword [rbp + 0x410], xmm0
mov qword [rbp + 0x420], 0
cmp dword [0x140557633], 0
jns 0x1401616c9
call fcn.1401082f0
mov qword [rbp + 0x418], rax
call fcn.140163660
mov qword [rbp + 0x420], rax
mov eax, dword [0x140557633]
mov edx, eax
not edx
xor eax, 0x3fffffff
and edx, 0xc0000000
or edx, eax
not edx
mov dword [rsp + 0x20], 0x8bca6242
lea rcx, [rbp + 0x410]
mov r8d, 0xc72fad96
mov r9d, 0x24db03ba
call fcn.140166520
call fcn.140162990
mov r8d, 0x9c
mov rcx, rax
xor edx, edx
call fcn.140162900
mov rbx, rax
test rax, rax
jne 0x1401616fe
call fcn.1401082f0
mov edx, 0x1314ed32
add edx, dword [0x14050c640]
mov rcx, rax
call fcn.140160f20
mov dword [rbx], 0x9c
mov rcx, rbx
call fcn.140162a00
test eax, eax
jne 0x140161734
call fcn.140162990
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.140162aa0
call fcn.1401082f0
mov rcx, rax
mov edx, 0xff
call fcn.140160f20
mov dword [rsp + 0x30], 0x93e8c974
mov dword [rsp + 0x28], 0xad478152
mov dword [rsp + 0x20], 0xf3eb1558
xor ecx, ecx
xor edx, edx
mov r8d, 1
mov r9, rdi
call fcn.140166440
mov ecx, 0xc69be15c
mov edx, 0x62fe9103
mov r8d, 0xf1c571aa
call fcn.1401496e0
cmp qword [0x1405640b0], 0
jne 0x1401617d0
mov ecx, 0xe8
mov edx, 0xafa11ac1
mov r8d, 0xe8a05639
call fcn.1400aaef0
lea rcx, [0x140426ab8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x140426b18]
mov qword [rax + 0x10], rcx
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x1405640b0], rax
mov rsi, qword [0x1405640b0]
lea rcx, [rsi + 0x48]
mov r8d, 0x9c
mov rdx, rbx
call fcn.14040bf30
mov r8d, dword [0x14050c640]
mov eax, r8d
neg eax
lea edx, [r8 + 0x329ddf49]
add r8d, 0xe087b558
mov ecx, eax
xor ecx, 0x9e87c381
and eax, 0x1e87c381
lea r9d, [rcx + rax*2]
neg r9d
mov rcx, rsi
call fcn.140166500
mov rcx, rsi
mov edx, 0x37620d9c
mov r8d, 0x93e61e8
mov r9d, 0x6213227e
call fcn.140166890
call fcn.140162990
mov rcx, rax
xor edx, edx
mov r8, rbx
call fcn.140162aa0
cmp qword [0x140566be8], 0
jne 0x140161886
mov ecx, 0x900
mov edx, 0xafa11ac1
mov r8d, 0xe8a05639
call fcn.1400aaef0
mov qword [rbp + 0x438], rax
mov rcx, rax
call fcn.140084e30
mov rax, qword [rbp + 0x438]
mov qword [0x140566be8], rax
mov rbx, qword [0x140566be8]
mov rax, qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rbx + 0x2a0], rax
mov dword [rsp + 0x30], 0x6f3c3eca
mov dword [rsp + 0x28], 0x90317778
mov dword [rsp + 0x20], 0xe4b6a16f
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140166780
mov qword [rsi + 0x40], rax
movzx eax, word [rsi + 0xa]
cmp eax, 0x601
setae byte [rbx + 0x4b9]
movzx eax, word [rsi + 0xa]
cmp eax, 0x602
setae byte [rbx + 0x4ba]
mov eax, dword [0x14055763f]
lea r15, [0x14055761f]
mov r12, r15
sub r12, rax
lea r13, [rbp - 0x40]
mov r8d, 0x400
mov rcx, r13
xor edx, edx
call fcn.14040c5e0
mov rcx, r12
mov rdx, r13
mov r8d, 0x400
call fcn.140162b70
mov qword [rsi + 0x38], r12
lea rcx, [rsi + 0x10]
mov dword [rsp + 0x20], 0x42820ac9
mov rdx, r13
mov r8d, 0x93e8c974
mov r9d, 0xcc9db0cd
call fcn.1400fd6e0
call fcn.140160bc0
mov qword [rbp + 0x428], 0
mov r12d, dword [0x14056377f]
mov ecx, 0x40
call fcn.1403e3fbc
add r15, r12
nop dword [rax]
mov edx, dword [0x14056377b]
mov ecx, dword [0x140564414]
cmp ecx, 0x41
jg 0x140161970
add r15, rdx
mov rcx, rax
mov rdx, r15
mov qword [rbp + 0x438], rax
call fcn.140235860
mov r15, qword [rbp + 0x428]
mov r12, qword [rbp + 0x438]
cmp r15, r12
sete al
setne dl
test r15, r15
setne cl
sete r8b
test al, r8b
jne 0x1401619d5
and dl, r8b
jne 0x1401619d5
and al, cl
jne 0x1401619d5
mov rcx, r15
call fcn.140073fa0
mov rcx, r15
call fcn.1400a9570
mov qword [rbp + 0x428], r12
mov rcx, rbx
mov rdx, r12
call fcn.140101520
xor ecx, ecx
test cl, cl
je 0x140161ad8
jmp 0x140161af0
xor esi, esi
jmp 0x1401626c0
mov eax, dword [0x140564410]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
nop dword [rax]
mov eax, dword [0x140564410]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x140161a10
test ecx, ecx
jne 0x1401626b9
mov eax, dword [0x140564414]
cmp eax, 0x60
nop word cs:[rax + rax]
cmp dword [0x14050c640], 0xeceb12e0
jne 0x140161a40
test r10b, 0x20
jne 0x1401626b9
mov eax, r9d
not eax
test eax, 0x804
je 0x1401626b9
mov eax, dword [0x140563733]
mov ecx, eax
not ecx
xor eax, 0x80
and ecx, 0xffffff7f
or ecx, eax
cmp ecx, 0xffffffff
je 0x140161a8f
mov rcx, rdi
call fcn.1401605f0
jmp 0x1401626b9
or r9d, 4
mov dword [0x14055761f], r9d
lea rcx, [0x14055761f]
mov rbx, qword [0x140557643]
lea rdx, [rbp - 0x40]
mov r8d, 0x30
call fcn.140160760
mov rcx, qword [rbp - 0x38]
xor esi, esi
xor edx, edx
mov r8, rdi
mov rax, rbx
call qword [0x1404ee420]
mov rcx, rdi
call fcn.1401605f0
jmp 0x1401626c0
mov ecx, dword [0x140564410]
mov edx, dword [0x14050c640]
add edx, ecx
dec edx
imul edx, ecx
test dl, 1
je 0x140161b41
mov ecx, 0x1314ed20
lea rdx, [fcn.1401613d0]
lea r8d, [rdx + rdx]
add r8d, 0x2e20
mov r9d, r8d
not r9d
mov edx, r9d
and edx, 0xfffffffe
xor edx, r9d
or edx, r8d
not edx
or edx, r8d
not edx
and edx, 0xfffffffe
nop word cs:[rax + rax]
mov r8d, dword [0x14050c640]
add r8d, ecx
cmp edx, r8d
jne 0x140161b30
jmp 0x140161ad8
test al, al
jne 0x140161b71
call fcn.1401082f0
mov rcx, rax
mov edx, 0xff
call fcn.140160f20
jmp 0x140161b71
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140161b60
mov eax, dword [0x14055761f]
mov ecx, dword [0x140564410]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x140161b60
mov ecx, eax
xor ecx, 0x400
not eax
and eax, 0xfffffbff
or eax, ecx
not eax
test eax, eax
je 0x140161d01
cmp qword [rbx + 0x7c0], 0
je 0x140161d01
lea rcx, [rbp + 0x3c0]
lea rdx, [rbp - 0x40]
call fcn.1402386c0
mov r15, qword [rbx + 0x7c0]
lea rcx, [rbp + 0x3c0]
lea rdx, [rbp + 0x3e8]
call fcn.14023b410
cmp qword [rbp + 0x408], 0x10
jb 0x140161bee
mov rcx, qword [rbp + 0x3f0]
jmp 0x140161bf5
lea rcx, [rbp + 0x3f0]
mov rax, r15
call qword [0x1404ee420]
mov rax, qword [rbp + 0x408]
cmp rax, 0x10
jb 0x140161c53
mov rcx, qword [rbp + 0x3f0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140161c4e
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
movabs rdx, 0x6e030b59c7794fba
add rdx, qword [0x14050c648]
cmp rcx, rdx
jae 0x140161e51
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a9560
mov rax, qword [0x140564420]
add rax, qword [rbp + 0x3e0]
mov rcx, qword [0x14050c648]
movabs rdx, 0x6e030b59c7794fa9
mov r8, rcx
xor r8, rdx
and rcx, rdx
lea rcx, [r8 + rcx*2]
cmp rax, rcx
jbe 0x140161ccc
mov rcx, qword [rbp + 0x3c8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140161cc7
mov r8, qword [rcx - 8]
add rcx, qword [0x14050c648]
sub rcx, r8
movabs rdx, 0x6e030b59c7794f92
add rdx, rcx
cmp rdx, 0x20
jae 0x140161e56
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a9560
mov eax, 0x1314ed21
add eax, dword [0x14050c640]
lea rcx, [fcn.1401613d0]
add ecx, ecx
add ecx, 0x2760
xor eax, ecx
not eax
test eax, ecx
nop dword [rax]
mov eax, dword [0x140564410]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x140161cf0
mov eax, 0x1314ed21
lea rcx, [fcn.1401613d0]
add ecx, ecx
add ecx, 0x3860
not ecx
nop word [rax + rax]
mov edx, dword [0x14050c640]
add edx, eax
not edx
mov r8d, edx
xor r8d, ecx
and r8d, edx
or r8d, ecx
cmp r8d, 0xffffffff
je 0x140161d59
mov edx, dword [0x140564410]
mov r8d, dword [0x14050c640]
add r8d, edx
dec r8d
imul r8d, edx
test r8b, 1
jmp 0x140161d20
call fcn.14007d450
mov r15, rax
xor r14b, 1
mov byte [rax + 0x778], r14b
mov rcx, rax
call fcn.140144060
mov rcx, rsi
call fcn.14010e4b0
lea rdx, [0x14055761f]
lea r8, [rbp + 0x428]
mov rcx, r15
call fcn.1400f6070
lea rdx, [0x14055761f]
mov rcx, r15
call fcn.14013d7c0
mov byte [rbp + 0x438], al
cmp byte [rbp + 0x438], 0
je 0x140161ddb
mov eax, 0x1314ed21
add eax, dword [0x14050c640]
lea rcx, [fcn.1401613d0]
add ecx, ecx
add ecx, 0x30e0
xor eax, ecx
not eax
test eax, ecx
jne 0x1401620b0
jmp 0x14016208f
mov eax, dword [0x14055761f]
mov ecx, 0x1314ed21
add ecx, dword [0x14050c640]
or ecx, eax
mov dword [0x14055761f], ecx
mov ecx, eax
xor ecx, 0xfffffeff
test ecx, eax
je 0x140161e2d
test byte [0x140557623], 0x10
je 0x140161e15
lea rcx, [0x14055761f]
call fcn.140130dc0
call fcn.140155630
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140161e70
jmp 0x140161e5b
mov rsi, qword [0x1405640e8]
test rsi, rsi
je 0x140161f5f
mov eax, dword [0x140564414]
cmp eax, 0x30
jle 0x140161ef9
jmp 0x140161f23
call fcn.1403c3cac
call fcn.1403c3cac
mov al, 1
test al, al
jne 0x140161e93
nop word cs:[rax + rax]
mov eax, dword [0x140564410]
mov ecx, dword [0x14050c640]
lea edx, [rax + rcx]
inc edx
imul edx, eax
and edx, 1
add ecx, 0x1314ed20
cmp edx, ecx
jne 0x140161e70
jmp 0x140161e5b
test rdi, rdi
jne 0x140161ee8
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
nop word [rax + rax]
mov rsi, qword [0x140566be8]
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x140161eb0
test rsi, rsi
je 0x140161ee8
mov rcx, rsi
call fcn.140085150
mov rcx, rsi
call fcn.1400a9570
mov qword [0x140566be8], 0
xor ecx, ecx
xor edx, edx
mov r8, rdi
call fcn.1403e4828
jmp 0x140162083
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
mov edx, 1
call qword [0x1404ee420]
mov qword [0x1405640e8], 0
mov eax, dword [0x140564414]
cmp eax, 0x2f
jl 0x140161f5f
mov edi, 0x1314ed21
nop dword [rax + rax]
mov rax, qword [rsi]
mov rax, qword [rax]
mov edx, dword [0x14050c640]
add edx, edi
mov rcx, rsi
call qword [0x1404ee420]
mov qword [0x1405640e8], 0
mov eax, dword [0x140564414]
cmp eax, 0x5c
jge 0x140161f30
jmp 0x140161ef9
mov rcx, qword [0x140564158]
test rcx, rcx
je 0x140161f87
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x1404ee420]
mov qword [0x140564158], 0
xor eax, eax
test al, al
nop dword [rax + rax]
lea rax, [fcn.1401613d0]
add eax, eax
add eax, 0x1580
mov ecx, eax
not ecx
test ecx, eax
jne 0x140161f90
mov rcx, qword [0x140564220]
test rcx, rcx
je 0x140161fe3
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, dword [0x14050c640]
mov r8d, edx
xor r8d, 0x1314ed21
and edx, 0x1314ed21
lea edx, [r8 + rdx*2]
call qword [0x1404ee420]
mov qword [0x140564220], 0
lea rax, [fcn.1401613d0]
add eax, eax
add eax, 0x4320
mov ecx, eax
not ecx
nop word cs:[rax + rax]
cmp dword [0x140564418], 0
jne 0x14016200d
test ecx, eax
je 0x140162023
mov edx, dword [0x140564410]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140162000
jmp 0x140162009
mov rcx, qword [0x1405640b0]
test rcx, rcx
je 0x140162050
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x1404ee420]
mov qword [0x1405640b0], 0
nop dword [rax + rax]
cmp dword [0x14050c640], 0xeceb12e0
jne 0x140162050
mov rsi, qword [0x140566be8]
test rsi, rsi
je 0x140162083
mov rcx, rsi
call fcn.140085150
mov rcx, rsi
call fcn.1400a9570
mov qword [0x140566be8], 0
mov rsi, qword [0x140557643]
jmp 0x140162694
mov eax, 0x100
and eax, dword [r15 + 0x164]
mov ecx, dword [0x14050c640]
mov edx, dword [0x140564414]
cmp edx, 0x36
jl 0x1401620c3
nop dword [rax]
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401620b0
jmp 0x14016208f
mov edx, ecx
xor edx, 0x1314ed20
mov r8d, ecx
xor r8d, 0x6ceb12df
and r8d, ecx
lea ecx, [rdx + r8*2]
cmp eax, ecx
jne 0x140162112
test byte [r15 + 0x162], 0x80
jne 0x140162112
cmp qword [rbx + 0x4e8], 0
je 0x140162112
cmp qword [rbx + 0x4f0], 0
je 0x140162112
mov rax, qword [rbx + 0x4f8]
xor ecx, ecx
call qword [0x1404ee420]
call fcn.140161250
lea rdx, [0x14055761f]
mov rcx, r15
call fcn.140139900
call fcn.1401b5170
call fcn.140162c50
mov rdi, rax
mov r14d, dword [0x140563b56]
mov edx, dword [0x140563b5a]
mov rcx, r15
call fcn.1400f5da0
mov ecx, dword [r15 + 0x160]
mov edx, ecx
xor edx, 0xfffdffff
test edx, ecx
sete r8b
mov edx, dword [0x140563b5e]
mov dword [rsp + 0x20], r14d
mov rcx, rdi
mov r9, rax
call fcn.1401091f0
mov eax, dword [0x140564414]
mov ecx, 0x1314ed5f
add ecx, dword [0x14050c640]
cmp eax, ecx
jge 0x1401621a2
mov dword [0x140563b5e], 0
mov dword [0x140563b56], 0
mov eax, dword [0x140564414]
cmp eax, 0x41
jle 0x1401621b8
mov dword [0x140563b5e], 0
mov dword [0x140563b56], 0
jmp 0x140162183
mov rcx, r15
call fcn.1400b44f0
lea rax, [fcn.1401613d0]
add eax, eax
add eax, 0x20c0
mov ecx, eax
not ecx
nop word cs:[rax + rax]
mov edx, dword [0x14050c640]
mov r8d, edx
xor r8d, 0x1314ed21
and edx, 0x1314ed21
lea edx, [r8 + rdx*2]
mov r8d, eax
xor r8d, edx
not edx
and edx, ecx
or edx, r8d
cmp edx, 0xffffffff
jne 0x14016222c
mov edx, dword [0x140564410]
mov r8d, dword [0x14050c640]
neg r8d
add r8d, edx
inc r8d
imul r8d, edx
test r8b, 1
je 0x140162239
mov edx, dword [0x140564414]
cmp edx, 0x24
jge 0x1401621e0
jmp 0x14016220c
mov rcx, r15
mov dl, 1
xor r8d, r8d
call fcn.1400b2440
mov eax, dword [r15 + 0x160]
not eax
or eax, 0xfffffffb
cmp eax, 0xffffffff
je 0x1401622cb
cmp qword [0x140564428], 0
je 0x140162335
mov r12, qword [0x140564428]
mov edi, dword [0x140563b8e]
mov edx, dword [0x140563b92]
mov rcx, r15
call fcn.1400f5da0
mov edx, dword [0x14056375b]
mov rcx, r12
mov r8, rax
mov r9d, edi
call fcn.14016fa20
mov eax, dword [0x14050c640]
mov ecx, eax
xor ecx, 0x1314ed20
and eax, 0x1314ed20
lea edx, [rcx + rax*2]
mov dword [0x14056375b], edx
add eax, eax
mov edx, ecx
xor edx, eax
and eax, ecx
lea eax, [rdx + rax*2]
mov dword [0x140563b8e], eax
mov dword [0x140563b92], 0
mov eax, dword [r15 + 0x160]
and eax, 8
mov ecx, 0x1314ed20
add ecx, dword [0x14050c640]
cmp eax, ecx
je 0x1401623f9
cmp qword [0x140564288], 0
jne 0x1401623e2
lea rax, [fcn.1401613d0]
add eax, eax
add eax, 0x2240
mov ecx, eax
not ecx
nop dword [rax + rax]
mov edx, dword [0x140564414]
cmp edx, 0x3a
jg 0x14016231f
test ecx, eax
je 0x140162394
mov edx, dword [0x140564410]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140162310
jmp 0x14016231b
mov ecx, 0x98
call fcn.1403e3fbc
mov qword [rbp + 0x430], rax
mov rcx, rax
call fcn.1401637a0
mov rcx, qword [rbp + 0x430]
nop word cs:[rax + rax]
mov qword [0x140564428], rcx
mov eax, dword [0x140564414]
cmp eax, 0x2f
jl 0x140162265
nop word cs:[rax + rax]
mov qword [0x140564428], rcx
mov eax, dword [0x140564414]
cmp eax, 0x15
jge 0x140162380
jmp 0x140162360
mov ecx, 0xa0
call fcn.1403e3fbc
mov qword [rbp + 0x430], rax
mov rcx, rax
call fcn.14015ad60
mov eax, dword [0x140564414]
cmp eax, 0x48
mov rdx, qword [rbp + 0x430]
jle 0x1401623c1
jmp 0x1401623d9
mov qword [0x140564288], rdx
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401623e2
mov qword [0x140564288], rdx
jmp 0x1401623c1
mov rax, qword [0x140564288]
mov ecx, dword [r15 + 0x160]
shr ecx, 0x12
and cl, 1
mov byte [rax + 9], cl
cmp qword [0x140564218], 0
jne 0x140162453
mov eax, dword [0x140564414]
mov ecx, 0x1314ed44
add ecx, dword [0x14050c640]
cmp eax, ecx
mov ecx, 0x40
call fcn.1403e3fbc
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0xf
mov byte [rax + 8], 0
lea rcx, [0x14042c188]
mov qword [rax], rcx
xorps xmm0, xmm0
movups xmmword [rax + 0x28], xmm0
mov dword [rax + 0x38], 0
mov qword [0x140564218], rax
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
nop word cs:[rax + rax]
mov r12, qword [0x140564218]
mov r14d, dword [0x140563b9e]
mov edi, dword [0x140563b9a]
mov r13d, dword [0x140563b96]
mov rcx, qword [r15 + 0x190]
movzx edx, word [0x1405637b0]
mov eax, dword [0x140564414]
cmp eax, 0x24
jg 0x140162470
call fcn.140235a90
mov dword [rsp + 0x20], r14d
mov rcx, r12
mov rdx, rax
mov r8d, r13d
mov r9d, edi
call fcn.140162eb0
mov eax, 0x2314ed20
add eax, dword [0x14050c640]
test dword [0x140563ba2], eax
je 0x1401624eb
mov eax, dword [0x140567a90]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
inc dword [rax + 0x25810]
mov qword [0x140563b9a], 0
mov eax, dword [0x140563ba2]
mov ecx, eax
not ecx
xor eax, 0x30
and ecx, 0xffffffcf
or ecx, eax
not ecx
mov eax, 0x1314ed40
add eax, dword [0x14050c640]
cmp ecx, eax
jne 0x14016257d
mov eax, dword [r15 + 0x160]
mov ecx, dword [0x14050c640]
mov edx, 0xece312df
sub edx, ecx
not eax
mov r8d, eax
xor r8d, edx
and r8d, eax
or r8d, edx
not r8d
add ecx, 0x1314ed20
cmp r8d, ecx
jne 0x14016257d
movzx eax, word [rsi + 0xa]
cmp eax, 0x5ff
ja 0x14016257d
call fcn.140160390
mov rdx, qword [rbx + 0x2b0]
cmp qword [rax + 0x30], 0x10
jb 0x14016256d
mov rax, qword [rax + 0x18]
jmp 0x140162571
add rax, 0x18
mov rcx, rax
mov rax, rdx
call qword [0x1404ee420]
cmp qword [0x1405640b0], 0
jne 0x1401625cf
mov ecx, 0xe8
call fcn.1403e3fbc
lea rcx, [0x140426ab8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x140426b18]
mov qword [rax + 0x10], rcx
mov dword [rax + 8], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x1405640b0], rax
mov rax, qword [0x1405640b0]
mov ecx, dword [0x140563ba6]
add rcx, qword [rax + 0x38]
mov qword [0x140557643], rcx
mov eax, dword [0x140557633]
mov ecx, eax
not ecx
xor eax, 0xc0000000
and ecx, 0x3fffffff
or ecx, eax
cmp ecx, 0x7fffffff
jne 0x14016262a
mov edx, dword [rbp + 0x414]
mov rcx, qword [rbp + 0x420]
call fcn.1401643d0
mov edx, dword [rbp + 0x410]
mov rcx, qword [rbp + 0x418]
call fcn.1401644c0
mov eax, dword [0x140564410]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140162685
mov byte [r15 + 0x778], 0
mov eax, dword [0x14050c640]
mov ecx, eax
sub ecx, dword [0x14055761f]
mov edx, 0xeceb12de
sub edx, ecx
lea r8d, [rcx + rax]
add r8d, 0x2629da43
add eax, ecx
add eax, 0x2629da42
mov ecx, eax
xor ecx, r8d
and eax, r8d
lea ecx, [rcx + rax*2]
shl edx, cl
mov eax, edx
and eax, ecx
xor edx, ecx
xor edx, eax
mov dword [0x14055761f], edx
mov byte [r15 + 0x778], 0
or byte [0x14055761f], 1
mov rdi, qword [rbp + 0x428]
test rdi, rdi
je 0x1401626b0
mov rcx, rdi
call fcn.140073fa0
mov rcx, rdi
call fcn.1400a9570
cmp byte [rbp + 0x438], 0
je 0x1401626c0
mov rsi, qword [0x140557643]
mov rax, rsi
add rsp, 0x4c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret