Function at 0x140002e19
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x38
mov esi, r8d
mov qword [rsp + 0x30], 0
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0x28
mov al, 0x62
mov byte [rsp + 0x22], al
mov byte [rsp + 0x23], 0x46
mov byte [rsp + 0x24], 0x68
mov byte [rsp + 0x25], 0x4a
mov byte [rsp + 0x26], pe_nt_image_headers64
mov byte [rsp + 0x27], 0xcc
mov byte [rsp + 0x28], 0xce
mov byte [rsp + 0x29], 0xf6
mov byte [rsp + 0x2a], al
mov al, 0x72
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], al
mov byte [rsp + 0x2d], 0xaa
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140002e98
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x55
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xe
jne 0x140002e7e
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0x12
mov al, 0x4e
mov byte [rsp + 0x22], al
mov byte [rsp + 0x23], 0x60
mov byte [rsp + 0x24], 0x58
mov byte [rsp + 0x25], al
mov al, 0x5c
mov byte [rsp + 0x26], al
mov byte [rsp + 0x27], 0xe2
mov byte [rsp + 0x28], 0xe0
mov byte [rsp + 0x29], 0xd8
mov byte [rsp + 0x2a], 0x4c
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], al
mov byte [rsp + 0x2d], 0x84
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140002f04
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x42
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xe
jne 0x140002eea
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0xde
mov byte [rsp + 0x22], 0x88
mov byte [rsp + 0x23], 0xaa
mov byte [rsp + 0x24], 0x80
mov byte [rsp + 0x25], 0xa2
mov byte [rsp + 0x26], 0x90
mov byte [rsp + 0x27], 0x24
mov byte [rsp + 0x28], 0x26
mov byte [rsp + 0x29], 0x1e
mov byte [rsp + 0x2a], 0x8a
mov al, 0x9a
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], al
mov byte [rsp + 0x2d], 0x42
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140002f71
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x21
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xe
jne 0x140002f57
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0xaa
mov al, 0xd8
mov byte [rsp + 0x22], al
mov byte [rsp + 0x23], 0xe8
mov r8b, 0xe0
mov byte [rsp + 0x24], r8b
mov byte [rsp + 0x25], al
mov byte [rsp + 0x26], 0xfa
mov byte [rsp + 0x27], al
mov byte [rsp + 0x28], 0xea
mov byte [rsp + 0x29], 0x64
mov byte [rsp + 0x2a], 0xf0
mov byte [rsp + 0x2b], r8b
mov byte [rsp + 0x2c], r8b
mov byte [rsp + 0x2d], 0x38
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140002fe0
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x1c
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xe
jne 0x140002fc6
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0x1e
mov byte [rsp + 0x22], 0x5c
mov al, 0x52
mov byte [rsp + 0x23], al
mov r8b, 0x5e
mov byte [rsp + 0x24], r8b
mov byte [rsp + 0x25], al
mov byte [rsp + 0x26], 0x60
mov byte [rsp + 0x27], 0x74
mov byte [rsp + 0x28], r8b
mov byte [rsp + 0x29], 0xe6
mov byte [rsp + 0x2a], 0x72
mov al, 0x62
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], al
mov byte [rsp + 0x2d], 0xba
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140003050
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x5d
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xe
jne 0x140003036
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0xca
mov byte [rsp + 0x22], 0xc2
mov al, 0x40
mov byte [rsp + 0x23], al
mov byte [rsp + 0x24], 0x9a
mov byte [rsp + 0x25], 0x42
mov byte [rsp + 0x26], al
mov byte [rsp + 0x27], pe_nt_image_headers64
mov byte [rsp + 0x28], 0xec
mov al, 0xfc
mov byte [rsp + 0x29], al
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], 0x24
mov al, byte [rsp + 0x20]
test al, 1
jne 0x1400030b3
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x12
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xc
jne 0x140003099
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0x68
mov byte [rsp + 0x22], 0x24
mov byte [rsp + 0x23], 8
mov byte [rsp + 0x24], 0x26
mov byte [rsp + 0x25], 0xa4
mov byte [rsp + 0x26], 0xa6
mov byte [rsp + 0x27], 0x9e
mov byte [rsp + 0x28], 0xa
mov al, 0x1a
mov byte [rsp + 0x29], al
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], 0xc2
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140003116
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x61
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xc
jne 0x1400030fc
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0x56
mov byte [rsp + 0x22], 0x20
mov al, 0x28
mov byte [rsp + 0x23], al
mov byte [rsp + 0x24], 0x1e
mov byte [rsp + 0x25], 0x32
mov byte [rsp + 0x26], 0x10
mov byte [rsp + 0x27], 0x22
mov byte [rsp + 0x28], 0xac
mov byte [rsp + 0x29], 0x38
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], 0xf0
mov al, byte [rsp + 0x20]
test al, 1
jne 0x14000317d
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x78
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xd
jne 0x140003163
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0xa0
mov byte [rsp + 0x22], 0xd6
mov byte [rsp + 0x23], 0xcc
mov al, 0xde
mov byte [rsp + 0x24], al
mov byte [rsp + 0x25], al
mov byte [rsp + 0x26], 0x60
mov byte [rsp + 0x27], 0x62
mov byte [rsp + 0x28], 0x5a
mov byte [rsp + 0x29], 0xce
mov byte [rsp + 0x2a], al
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], 6
mov al, byte [rsp + 0x20]
test al, 1
jne 0x1400031e3
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 3
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xd
jne 0x1400031c9
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0xce
mov al, 0x88
mov byte [rsp + 0x22], al
mov byte [rsp + 0x23], 0x9a
mov byte [rsp + 0x24], 0x36
mov byte [rsp + 0x25], 0x34
mov byte [rsp + 0x26], 0xc
mov byte [rsp + 0x27], 0x98
mov byte [rsp + 0x28], al
mov byte [rsp + 0x29], al
mov byte [rsp + 0x2a], 0x50
mov al, byte [rsp + 0x20]
test al, 1
jne 0x140003240
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x28
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xb
jne 0x140003226
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0xb4
mov al, 0xf2
mov byte [rsp + 0x22], al
mov byte [rsp + 0x23], 0xe0
mov byte [rsp + 0x24], 0xa8
mov byte [rsp + 0x25], 0xc0
mov byte [rsp + 0x26], 0xc2
mov byte [rsp + 0x27], 0x4c
mov byte [rsp + 0x28], 0x4e
mov byte [rsp + 0x29], 0x76
mov byte [rsp + 0x2a], 0xe2
mov byte [rsp + 0x2b], al
mov byte [rsp + 0x2c], al
mov byte [rsp + 0x2d], 0x2a
mov al, byte [rsp + 0x20]
test al, 1
jne 0x1400032ac
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x15
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xe
jne 0x140003292
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 0x38
mov byte [rsp + 0x22], 0xc
mov al, 0x2c
mov byte [rsp + 0x23], al
mov r8b, 0x3c
mov byte [rsp + 0x24], r8b
mov byte [rsp + 0x25], r8b
mov byte [rsp + 0x26], 0xb8
mov byte [rsp + 0x27], al
mov byte [rsp + 0x28], r8b
mov byte [rsp + 0x29], r8b
mov byte [rsp + 0x2a], 0xe4
mov al, byte [rsp + 0x20]
test al, 1
jne 0x14000330d
mov eax, 1
mov r8b, byte [rsp + rax + 0x20]
ror r8b, 1
xor r8b, 0x72
mov byte [rsp + rax + 0x20], r8b
inc rax
cmp rax, 0xb
jne 0x1400032f3
test rcx, rcx
je 0x140003343
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
jbe 0x14000339e
add dword [rsp + 0x20], 2
mov eax, dword [rsp + 0x20]
test al, 3
jne 0x140003566
inc dword [rsp + 0x20]
jmp 0x140003331
add edx, 0xfffffff1
cmp edx, 0xb
ja case.default.0x140003362
lea rcx, [rsp + 0x21]
lea rax, section..rdata
movsxd rdx, dword [rax + rdx*4]
add rdx, rax
jmp rdx
call qword [0x1400130e0]
mov dword [rsp + 0x20], eax
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555554
jbe 0x1400033f6
add dword [rsp + 0x20], 2
mov ecx, dword [rsp + 0x20]
test cl, 3
jne 0x1400038e0
inc dword [rsp + 0x20]
jmp 0x14000338b
mov edx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
test dl, 1
jne 0x140003452
mov edx, dword [rsp + 0x20]
test al, 3
je 0x1400034d6
lea eax, [rdx + rdx*2]
add eax, 6
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x140003566
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
mov eax, 0
adc eax, 0xffffffff
or eax, 1
add dword [rsp + 0x20], eax
jmp 0x1400033c5
mov edx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
test dl, 1
jne 0x140003492
mov edx, dword [rsp + 0x20]
test cl, 3
je 0x14000384a
lea ecx, [rdx + rdx*2]
add ecx, 6
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
test cl, 1
jne 0x1400038e0
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333333
mov ecx, 0
adc ecx, 0xffffffff
or ecx, 1
add dword [rsp + 0x20], ecx
jmp 0x14000341e
add eax, 0xfffffffe
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
ja 0x140003566
inc dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555555
jb 0x140003473
jmp 0x140003566
add ecx, 0xfffffffe
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555554
ja 0x1400038e0
inc dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555555
jb 0x1400034b5
jmp 0x1400038e0
imul edx, edx, 0xcccccccd
add edx, 0x19999999
mov eax, dword [rsp + 0x20]
cmp edx, 0x33333332
jbe 0x1400039c6
mov edx, eax
add edx, 0xb
movsxd rdx, edx
imul rdx, rdx, 0xffffffffb21642c9
shr rdx, 0x20
add eax, edx
add eax, 0xb
mov edx, eax
shr edx, 0x1f
sar eax, 4
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
ja 0x140003566
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
mov eax, 0
sbb eax, eax
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555555
jb 0x14000352e
call qword [0x1400130e0]
mov dword [rsp + 0x20], eax
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555554
jbe 0x1400035a0
add dword [rsp + 0x20], 2
mov ecx, dword [rsp + 0x20]
test cl, 3
jne 0x1400036d2
inc dword [rsp + 0x20]
jmp 0x14000358d
mov edx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
test dl, 1
jne 0x1400035f8
mov edx, dword [rsp + 0x20]
test cl, 3
je 0x14000363c
lea ecx, [rdx + rdx*2]
add ecx, 6
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
test cl, 1
jne 0x1400036d2
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333333
mov ecx, 0
adc ecx, 0xffffffff
or ecx, 1
add dword [rsp + 0x20], ecx
jmp 0x1400035c4
add ecx, 0xfffffffe
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555554
ja 0x1400036d2
inc dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555555
jb 0x14000361b
jmp 0x1400036d2
imul edx, edx, 0xcccccccd
add edx, 0x19999999
mov ecx, dword [rsp + 0x20]
cmp edx, 0x33333332
jbe 0x1400039fb
mov edx, ecx
add edx, 0xb
movsxd rdx, edx
imul rdx, rdx, 0xffffffffb21642c9
shr rdx, 0x20
add ecx, edx
add ecx, 0xb
mov edx, ecx
shr edx, 0x1f
sar ecx, 4
add ecx, edx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555554
ja 0x1400036d2
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333333
mov ecx, 0
sbb ecx, ecx
or ecx, 1
add dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555555
jb 0x140003696
test rax, rax
je case.default.0x140003362
lea rdi, [rsp + 0x30]
mov rcx, rax
mov edx, esi
mov r8, rdi
call fcn.140006a45
mov qword [rdi], rax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
jbe 0x140003721
add dword [rsp + 0x20], 2
mov eax, dword [rsp + 0x20]
test al, 3
jne 0x14000415a
inc dword [rsp + 0x20]
jmp 0x14000370f
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
test cl, 1
jne 0x140003771
mov ecx, dword [rsp + 0x20]
test al, 3
je 0x1400037b1
lea eax, [rcx + rcx*2]
add eax, 6
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
mov eax, 0
adc eax, 0xffffffff
or eax, 1
add dword [rsp + 0x20], eax
jmp 0x140003740
add eax, 0xfffffffe
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
ja 0x14000415a
inc dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555555
jb 0x140003792
jmp 0x14000415a
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
mov eax, dword [rsp + 0x20]
cmp ecx, 0x33333332
jbe 0x140003aca
mov ecx, eax
add ecx, 0xb
movsxd rcx, ecx
imul rcx, rcx, 0xffffffffb21642c9
shr rcx, 0x20
add eax, ecx
add eax, 0xb
mov ecx, eax
shr ecx, 0x1f
sar eax, 4
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
ja 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
mov eax, 0
sbb eax, eax
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555555
jb 0x14000380d
jmp 0x14000415a
imul edx, edx, 0xcccccccd
add edx, 0x19999999
mov ecx, dword [rsp + 0x20]
cmp edx, 0x33333332
jbe 0x140003aff
mov edx, ecx
add edx, 0xb
movsxd rdx, edx
imul rdx, rdx, 0xffffffffb21642c9
shr rdx, 0x20
add ecx, edx
add ecx, 0xb
mov edx, ecx
shr edx, 0x1f
sar ecx, 4
add ecx, edx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555554
ja 0x1400038e0
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333333
mov ecx, 0
sbb ecx, ecx
or ecx, 1
add dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xaaaaaaab
add ecx, 0x2aaaaaaa
cmp ecx, 0x55555555
jb 0x1400038a4
test rax, rax
je case.default.0x140003362
lea rdi, [rsp + 0x30]
mov rcx, rax
mov edx, esi
mov r8, rdi
call fcn.140006a45
mov qword [rdi], rax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
jbe 0x140003932
add dword [rsp + 0x20], 2
mov eax, dword [rsp + 0x20]
test al, 3
jne 0x14000415a
inc dword [rsp + 0x20]
jmp 0x140003919
xor eax, eax
jmp 0x14000415f
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
test cl, 1
jne 0x140003986
mov ecx, dword [rsp + 0x20]
test al, 3
je 0x140003a31
lea eax, [rcx + rcx*2]
add eax, 6
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
mov eax, 0
adc eax, 0xffffffff
or eax, 1
add dword [rsp + 0x20], eax
jmp 0x140003955
add eax, 0xfffffffe
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
ja 0x14000415a
inc dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555555
jb 0x1400039a7
jmp 0x14000415a
imul edx, eax, 0xb6db6db7
add edx, 0x12492492
mov eax, dword [rsp + 0x20]
cmp edx, 0x24924924
jbe 0x140003b35
add eax, 2
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 7
jne 0x140003566
inc dword [rsp + 0x20]
jmp 0x1400039e9
imul edx, ecx, 0xb6db6db7
add edx, 0x12492492
mov ecx, dword [rsp + 0x20]
cmp edx, 0x24924924
jbe 0x140003ba3
add ecx, 2
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
test cl, 7
jne 0x1400036d2
inc dword [rsp + 0x20]
jmp 0x140003a1e
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
mov eax, dword [rsp + 0x20]
cmp ecx, 0x33333332
jbe 0x140003c18
mov ecx, eax
add ecx, 0xb
movsxd rcx, ecx
imul rcx, rcx, 0xffffffffb21642c9
shr rcx, 0x20
add eax, ecx
add eax, 0xb
mov ecx, eax
shr ecx, 0x1f
sar eax, 4
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555554
ja 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
mov eax, 0
sbb eax, eax
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xaaaaaaab
add eax, 0x2aaaaaaa
cmp eax, 0x55555555
jb 0x140003a8d
jmp 0x14000415a
imul ecx, eax, 0xb6db6db7
add ecx, 0x12492492
mov eax, dword [rsp + 0x20]
cmp ecx, 0x24924924
jbe 0x140003c4d
add eax, 2
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 7
jne 0x14000415a
inc dword [rsp + 0x20]
jmp 0x140003aed
imul edx, ecx, 0xb6db6db7
add edx, 0x12492492
mov ecx, dword [rsp + 0x20]
cmp edx, 0x24924924
jbe 0x140003cbb
add ecx, 2
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
test cl, 7
jne 0x1400038e0
inc dword [rsp + 0x20]
jmp 0x140003b22
mov edx, dword [rsp + 0x20]
test al, 7
je 0x140003d30
lea eax, [rdx + rdx*2]
add eax, 6
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333332
ja 0x140003566
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xba2e8ba3
add eax, 0xba2e8ba
cmp eax, 0x1745d175
mov eax, 0
adc eax, 0xffffffff
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
jb 0x140003b65
jmp 0x140003566
mov edx, dword [rsp + 0x20]
test cl, 7
je 0x140003dc9
lea ecx, [rdx + rdx*2]
add ecx, 6
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333332
ja 0x1400036d2
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xba2e8ba3
add ecx, 0xba2e8ba
cmp ecx, 0x1745d175
mov ecx, 0
adc ecx, 0xffffffff
or ecx, 1
add dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333333
jb 0x140003bd6
jmp 0x1400036d2
imul ecx, eax, 0xb6db6db7
add ecx, 0x12492492
mov eax, dword [rsp + 0x20]
cmp ecx, 0x24924924
jbe 0x140003e68
add eax, 2
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 7
jne 0x14000415a
inc dword [rsp + 0x20]
jmp 0x140003c3b
mov ecx, dword [rsp + 0x20]
test al, 7
je 0x140003ed6
lea eax, [rcx + rcx*2]
add eax, 6
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333332
ja 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xba2e8ba3
add eax, 0xba2e8ba
cmp eax, 0x1745d175
mov eax, 0
adc eax, 0xffffffff
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
jb 0x140003c7d
jmp 0x14000415a
mov edx, dword [rsp + 0x20]
test cl, 7
je 0x140003f6f
lea ecx, [rdx + rdx*2]
add ecx, 6
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333332
ja 0x1400038e0
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xba2e8ba3
add ecx, 0xba2e8ba
cmp ecx, 0x1745d175
mov ecx, 0
adc ecx, 0xffffffff
or ecx, 1
add dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xcccccccd
add ecx, 0x19999999
cmp ecx, 0x33333333
jb 0x140003cee
jmp 0x1400038e0
imul edx, edx, 0xba2e8ba3
add edx, 0xba2e8ba
mov eax, dword [rsp + 0x20]
cmp edx, 0x1745d174
jbe 0x14000400e
mov edx, eax
add edx, 0xb
movsxd rdx, edx
imul rdx, rdx, 0xffffffffb21642c9
shr rdx, 0x20
add eax, edx
add eax, 0xb
mov edx, eax
shr edx, 0x1f
sar eax, 4
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b12
ja 0x140003566
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xba2e8ba3
add eax, 0xba2e8ba
cmp eax, 0x1745d175
mov eax, 0
sbb eax, eax
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b13
jb 0x140003d8c
jmp 0x140003566
imul edx, edx, 0xba2e8ba3
add edx, 0xba2e8ba
mov ecx, dword [rsp + 0x20]
cmp edx, 0x1745d174
jbe 0x140004036
mov edx, ecx
add edx, 0xb
movsxd rdx, edx
imul rdx, rdx, 0xffffffffb21642c9
shr rdx, 0x20
add ecx, edx
add ecx, 0xb
mov edx, ecx
shr edx, 0x1f
sar ecx, 4
add ecx, edx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xc4ec4ec5
add ecx, 0x9d89d89
cmp ecx, 0x13b13b12
ja 0x1400036d2
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xba2e8ba3
add ecx, 0xba2e8ba
cmp ecx, 0x1745d175
mov ecx, 0
sbb ecx, ecx
or ecx, 1
add dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xc4ec4ec5
add ecx, 0x9d89d89
cmp ecx, 0x13b13b13
jb 0x140003e27
jmp 0x1400036d2
mov ecx, dword [rsp + 0x20]
test al, 7
je 0x140004060
lea eax, [rcx + rcx*2]
add eax, 6
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333332
ja 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xba2e8ba3
add eax, 0xba2e8ba
cmp eax, 0x1745d175
mov eax, 0
adc eax, 0xffffffff
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xcccccccd
add eax, 0x19999999
cmp eax, 0x33333333
jb 0x140003e98
jmp 0x14000415a
imul ecx, ecx, 0xba2e8ba3
add ecx, 0xba2e8ba
mov eax, dword [rsp + 0x20]
cmp ecx, 0x1745d174
jbe 0x1400040f6
mov ecx, eax
add ecx, 0xb
movsxd rcx, ecx
imul rcx, rcx, 0xffffffffb21642c9
shr rcx, 0x20
add eax, ecx
add eax, 0xb
mov ecx, eax
shr ecx, 0x1f
sar eax, 4
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b12
ja 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xba2e8ba3
add eax, 0xba2e8ba
cmp eax, 0x1745d175
mov eax, 0
sbb eax, eax
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b13
jb 0x140003f32
jmp 0x14000415a
imul edx, edx, 0xba2e8ba3
add edx, 0xba2e8ba
mov ecx, dword [rsp + 0x20]
cmp edx, 0x1745d174
jbe 0x14000410d
mov edx, ecx
add edx, 0xb
movsxd rdx, edx
imul rdx, rdx, 0xffffffffb21642c9
shr rdx, 0x20
add ecx, edx
add ecx, 0xb
mov edx, ecx
shr edx, 0x1f
sar ecx, 4
add ecx, edx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xc4ec4ec5
add ecx, 0x9d89d89
cmp ecx, 0x13b13b12
ja 0x1400038e0
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xba2e8ba3
add ecx, 0xba2e8ba
cmp ecx, 0x1745d175
mov ecx, 0
sbb ecx, ecx
or ecx, 1
add dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx, ecx, 0xc4ec4ec5
add ecx, 0x9d89d89
cmp ecx, 0x13b13b13
jb 0x140003fcd
jmp 0x1400038e0
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b12
jbe 0x14000332c
mov eax, dword [rsp + 0x20]
lea eax, [rax + rax*2]
inc eax
mov dword [rsp + 0x20], eax
jmp 0x140003566
imul ecx, ecx, 0xc4ec4ec5
add ecx, 0x9d89d89
cmp ecx, 0x13b13b12
jbe 0x140003588
mov ecx, dword [rsp + 0x20]
lea ecx, [rcx + rcx*2]
inc ecx
mov dword [rsp + 0x20], ecx
jmp 0x1400036d2
imul ecx, ecx, 0xba2e8ba3
add ecx, 0xba2e8ba
mov eax, dword [rsp + 0x20]
cmp ecx, 0x1745d174
jbe 0x140004137
mov ecx, eax
add ecx, 0xb
movsxd rcx, ecx
imul rcx, rcx, 0xffffffffb21642c9
shr rcx, 0x20
add eax, ecx
add eax, 0xb
mov ecx, eax
shr ecx, 0x1f
sar eax, 4
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b12
ja 0x14000415a
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xba2e8ba3
add eax, 0xba2e8ba
cmp eax, 0x1745d175
mov eax, 0
sbb eax, eax
or eax, 1
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b13
jb 0x1400040bc
jmp 0x14000415a
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b12
ja 0x14000414d
jmp 0x14000370a
imul ecx, ecx, 0xc4ec4ec5
add ecx, 0x9d89d89
cmp ecx, 0x13b13b12
jbe 0x140003386
mov ecx, dword [rsp + 0x20]
lea ecx, [rcx + rcx*2]
inc ecx
mov dword [rsp + 0x20], ecx
jmp 0x1400038e0
imul eax, eax, 0xc4ec4ec5
add eax, 0x9d89d89
cmp eax, 0x13b13b12
jbe 0x140003914
mov eax, dword [rsp + 0x20]
lea eax, [rax + rax*2]
inc eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x30]
add rsp, 0x38
pop rdi
pop rsi
ret