// File: /workspace/github_c_makefile_star2_O0/Openvario[P]sensord/humidity.c
// Function: si7021_open
int si7021_open (t_ds2482 *sensor, unsigned char i2c_address) {

	int sernuma, sernumb;
	uint8_t i;

	sensor->fd = open(I2C_DEVICE, O_RDWR);
	if (sensor->fd < 0) {
		fprintf(stderr, "Error opening file: %s\n", strerror(errno));
		return 1;
	}
	if (ioctl(sensor->fd, I2C_SLAVE, i2c_address) < 0) {
		fprintf(stderr, "ioctl error: %s\n", strerror(errno));
		return 1;
	}

	uint8_t data[8]={0xfe,0xe6,131,0,0xe7,0x1e,0x08,0x0a};
	uint8_t data2[4]={0xfa,0x0f,0xfc,0xc9};

	if (write(sensor->fd,data+5,1)!=1) {                                    // Do HTU31D soft reset
		struct timespec nstime = {0,15e6};
		while (nanosleep (&nstime,&nstime)) ;                                           // Wait 15 microseconds after reset
		if (write(sensor->fd,data+6,1)!=1) {					// Request Status byte
			if (read(sensor->fd,data+6,1)==1) {
				fprintf(stderr, "In4\n");
				if (data[6]!=0) return 3;						// Confirm status is good
				if (write(sensor->fd,data+7,1)!=1) return 3;				// Request Serial Number
				if (read(sensor->fd,data2,4)!=4) return 3;				// Read Serial Number
				if (si7021_crc_check((data2[0]<<16)|(data2[1]<<8)|(data2[2]),data2[2])>0) return 4; // Verify CRC on serial number
				switch (sensor->databits) {                                             // Set proper bit configuration
					case 11 : sensor->databits=0x40; break;
					case 12 : sensor->databits=0x4a; break;
					case 13 : sensor->databits=0x54; break;
					case 14 :
					default : sensor->databits=0x5e; break;
				}
				fprintf(stderr, "HTU31D, Serial Number 0x%x%x%x - ",data[0],data[1],data[2]);
				sensor->sensor_type=HTU31D;
				if (g_debug > 0) fprintf(stderr, "Opened HTU31D on 0x%x\n", i2c_address);         // Debug info
				sensor->address = i2c_address;
				return 0;
			}
		}
	}
	if (write(sensor->fd,data,1)<0) return 2;					// Do soft reset for HTU21D/Si7021
	struct timespec nstime = {0,15e6};
	while (nanosleep (&nstime,&nstime)) ;						// Wait 15 microseconds after reset
	if (write(sensor->fd,data+1,2)<0) return 2;					// Program for 11 bits
	if (write(sensor->fd,data+4,1)<0) return 2;					// Initiate readback configuration
	if (read (sensor->fd,data+3,1)<0) return 3;					// Readback configuration
	if ((data[2]&129)!=(data[3]&129)) return 3;					// Is it valid?

	switch (sensor->databits) {							// Set proper bit configuration
		case 11 : data[2] = 131; break;
		case 12 : data[2] = 3;   break;
		case 13 : data[2] = 130; break;
		case 14 :
		default : data[2] = 2;   break;
	}
	if (write(sensor->fd,data+1,2)<0) return 4;					// Program proper bit configuration
	if (write(sensor->fd,data+4,1)<0) return 4;					// Initiate readback configuration
	if (read(sensor->fd,data+3,1)<0) return 4;					// Read back configuration
	if ((data[2]&129)!=(data[3]&129)) return 4; 					// Is it valid?
	if (write(sensor->fd,data2,2)<0) return 4;					// Initiate Serial Number A readback
	if (read (sensor->fd,data,8)<0) return 4;					// Readback Serial Number A
	for (i=sernuma=0 ; i<8 ; i+=2) {
		if (si7021_crc_check(data[i],data[i+1])==1) return 4;			// Check for valid CRC
		sernuma=(sernuma<<8)|(data[i]);
	}

	if (write(sensor->fd,data2+2,2)<0) return 4;					// Initiate Serial Number B readback
	if (read (sensor->fd,data,6)<0) return 4;					// Readback Serial Number B
	for (i=sernumb=0 ; i<6 ; i+=3) {
		if (si7021_crc_check((data[i]<<8)|(data[i+1]),data[i+2])==1) return 4;	// Check for valid CRC
		sernumb=(sernumb<<16)|(data[i]<<8)|(data[i+1]);				// Concatenate Serial Number B
	}

	switch (data[0]) {								// Display Serial number and set sensor type
		case 0x00 :
		case 0xff : sensor->sensor_type=SI7021;
			    fprintf(stderr, "SI7021, Engineering Sample, Serial Number: 0x%x%x\n",sernuma,sernumb); break;
		case 0x0d :
		case 0x14 :
		case 0x15 : sensor->sensor_type=SI7021;
			    fprintf(stderr, "SI70%d, Serial Number: 0x%x%x\n",data[0],sernuma,sernumb); break;
		case 0x32 : sensor->sensor_type=HTU21D;
			    if ((sernumb&0xffff)!=0x4854)
				fprintf(stderr, "HTU21D, but serial number is invalid - ");
			    else
				fprintf(stderr, "HTU21D, Serial Number: 0x%x%x%x%x%x - ",data[3],data[4],sernuma,data[0],data[1]);
			    break;
		default   : sensor->sensor_type=SI7021;
			    fprintf(stderr, "SI70%d, UNKNOWN SENSOR, Serial Number 0x%x%x\n",data[0],sernuma,sernumb);
	}
	if (sensor->sensor_type==SI7021) {						// If it's a SI7021 get the firmware revision
		data[0]=0x84;
		data[1]=0xb8;
		if (write(sensor->fd,data,2)<0) return 4;
		if (read(sensor->fd,data,1)<0) return 4;
		switch (data[0]) {
			case 0xff : fprintf(stderr, "Firmware revision 1.0 - "); break;
			case 0x20 : fprintf(stderr, "Firmware revision 2.0 - "); break;
			default   : fprintf(stderr, "Firmware revision UNKNOWN 0x%x - ",data[0]);
		}
	}

	if (g_debug > 0) {
		if (sensor->sensor_type==SI7021) fprintf(stderr, "Opened SI7021/HTU21D on 0x%x\n", i2c_address);		// Debug info
		else fprintf(stderr, "Opened HTU21D on 0x%x\n",i2c_address);
	}
	sensor->address = i2c_address;
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
leaq 0x26e0(%rip), %rdi      # 0xb3dc
movl $0x2, %esi
movb $0x0, %al
callq 0x2240
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jge 0x8d54
movq 0x62d8(%rip), %rax      # 0xeff8
movq (%rax), %rax
movq %rax, -0x58(%rbp)
callq 0x2030
movl (%rax), %edi
callq 0x22d0
movq -0x58(%rbp), %rdi
movq %rax, %rdx
leaq 0x26a6(%rip), %rsi      # 0xb3e7
movb $0x0, %al
callq 0x21d0
movl $0x1, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
movzbl -0x11(%rbp), %edx
movl $0x703, %esi            # imm = 0x703
movb $0x0, %al
callq 0x2140
cmpl $0x0, %eax
jge 0x8daa
movq 0x6282(%rip), %rax      # 0xeff8
movq (%rax), %rax
movq %rax, -0x60(%rbp)
callq 0x2030
movl (%rax), %edi
callq 0x22d0
movq -0x60(%rbp), %rdi
movq %rax, %rdx
leaq 0x22b5(%rip), %rsi      # 0xb04c
movb $0x0, %al
callq 0x21d0
movl $0x1, -0x4(%rbp)
jmp 0x957b
movq 0x3c8f(%rip), %rax      # 0xca40
movq %rax, -0x25(%rbp)
movl 0x3c91(%rip), %eax      # 0xca4c
movl %eax, -0x29(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x5, %rsi
movl $0x1, %edx
callq 0x20a0
cmpq $0x1, %rax
je 0x8fc6
movq 0x3e81(%rip), %rax      # 0xcc68
movq %rax, -0x40(%rbp)
movq 0x3e7e(%rip), %rax      # 0xcc70
movq %rax, -0x38(%rbp)
leaq -0x40(%rbp), %rsi
movq %rsi, %rdi
callq 0x2120
cmpl $0x0, %eax
je 0x8e09
jmp 0x8df6
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x6, %rsi
movl $0x1, %edx
callq 0x20a0
cmpq $0x1, %rax
je 0x8fc4
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x6, %rsi
movl $0x1, %edx
callq 0x2180
cmpq $0x1, %rax
jne 0x8fc2
movq 0x61a4(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x3c5a(%rip), %rsi      # 0xcab8
movb $0x0, %al
callq 0x21d0
movzbl -0x1f(%rbp), %eax
cmpl $0x0, %eax
je 0x8e7a
movl $0x3, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x7, %rsi
movl $0x1, %edx
callq 0x20a0
cmpq $0x1, %rax
je 0x8ea4
movl $0x3, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x29(%rbp), %rsi
movl $0x4, %edx
callq 0x2180
cmpq $0x4, %rax
je 0x8eca
movl $0x3, -0x4(%rbp)
jmp 0x957b
movzbl -0x29(%rbp), %edi
shll $0x10, %edi
movzbl -0x28(%rbp), %eax
shll $0x8, %eax
orl %eax, %edi
movzbl -0x27(%rbp), %eax
orl %eax, %edi
movzbl -0x27(%rbp), %esi
callq 0x88b0
cmpl $0x0, %eax
jle 0x8efa
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %eax
addl $-0xb, %eax
movl %eax, %ecx
movq %rcx, -0x68(%rbp)
subl $0x3, %eax
ja 0x8f4c
movq -0x68(%rbp), %rax
leaq 0x3a2e(%rip), %rcx      # 0xc948
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movl $0x40, 0x3c(%rax)
jmp 0x8f57
movq -0x10(%rbp), %rax
movl $0x4a, 0x3c(%rax)
jmp 0x8f57
movq -0x10(%rbp), %rax
movl $0x54, 0x3c(%rax)
jmp 0x8f57
jmp 0x8f4c
movq -0x10(%rbp), %rax
movl $0x5e, 0x3c(%rax)
movq 0x609a(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x25(%rbp), %edx
movzbl -0x24(%rbp), %ecx
movzbl -0x23(%rbp), %r8d
leaq 0x3b48(%rip), %rsi      # 0xcabd
movb $0x0, %al
callq 0x21d0
movq -0x10(%rbp), %rax
movb $0x2, 0x30(%rax)
leaq 0x64e9(%rip), %rax      # 0xf474
cmpl $0x0, (%rax)
jle 0x8fac
movq 0x6061(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x11(%rbp), %edx
leaq 0x3b3a(%rip), %rsi      # 0xcadf
movb $0x0, %al
callq 0x21d0
movb -0x11(%rbp), %cl
movq -0x10(%rbp), %rax
movb %cl, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x957b
jmp 0x8fc4
jmp 0x8fc6
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
movl $0x1, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x8fec
movl $0x2, -0x4(%rbp)
jmp 0x957b
movq 0x3c75(%rip), %rax      # 0xcc68
movq %rax, -0x50(%rbp)
movq 0x3c72(%rip), %rax      # 0xcc70
movq %rax, -0x48(%rbp)
leaq -0x50(%rbp), %rsi
movq %rsi, %rdi
callq 0x2120
cmpl $0x0, %eax
je 0x9015
jmp 0x9002
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x1, %rsi
movl $0x2, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x903f
movl $0x2, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x4, %rsi
movl $0x1, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x9069
movl $0x2, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x3, %rsi
movl $0x1, %edx
callq 0x2180
cmpq $0x0, %rax
jge 0x9093
movl $0x3, -0x4(%rbp)
jmp 0x957b
movzbl -0x23(%rbp), %eax
andl $0x81, %eax
movzbl -0x22(%rbp), %ecx
andl $0x81, %ecx
cmpl %ecx, %eax
je 0x90b6
movl $0x3, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %eax
addl $-0xb, %eax
movl %eax, %ecx
movq %rcx, -0x70(%rbp)
subl $0x3, %eax
ja 0x90f3
movq -0x70(%rbp), %rax
leaq 0x3862(%rip), %rcx      # 0xc938
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $-0x7d, -0x23(%rbp)
jmp 0x90f7
movb $0x3, -0x23(%rbp)
jmp 0x90f7
movb $-0x7e, -0x23(%rbp)
jmp 0x90f7
jmp 0x90f3
movb $0x2, -0x23(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x1, %rsi
movl $0x2, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x9121
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x4, %rsi
movl $0x1, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x914b
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
addq $0x3, %rsi
movl $0x1, %edx
callq 0x2180
cmpq $0x0, %rax
jge 0x9175
movl $0x4, -0x4(%rbp)
jmp 0x957b
movzbl -0x23(%rbp), %eax
andl $0x81, %eax
movzbl -0x22(%rbp), %ecx
andl $0x81, %ecx
cmpl %ecx, %eax
je 0x9198
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x29(%rbp), %rsi
movl $0x2, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x91be
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
movl $0x8, %edx
callq 0x2180
cmpq $0x0, %rax
jge 0x91e4
movl $0x4, -0x4(%rbp)
jmp 0x957b
movl $0x0, -0x18(%rbp)
movb $0x0, -0x1d(%rbp)
movzbl -0x1d(%rbp), %eax
cmpl $0x8, %eax
jge 0x9245
movzbl -0x1d(%rbp), %eax
movzbl -0x25(%rbp,%rax), %edi
movzbl -0x1d(%rbp), %eax
addl $0x1, %eax
cltq
movzbl -0x25(%rbp,%rax), %esi
callq 0x88b0
cmpl $0x1, %eax
jne 0x9225
movl $0x4, -0x4(%rbp)
jmp 0x957b
movl -0x18(%rbp), %eax
shll $0x8, %eax
movzbl -0x1d(%rbp), %ecx
movzbl -0x25(%rbp,%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x18(%rbp)
movzbl -0x1d(%rbp), %eax
addl $0x2, %eax
movb %al, -0x1d(%rbp)
jmp 0x91ef
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x29(%rbp), %rsi
addq $0x2, %rsi
movl $0x2, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x926f
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
movl $0x6, %edx
callq 0x2180
cmpq $0x0, %rax
jge 0x9295
movl $0x4, -0x4(%rbp)
jmp 0x957b
movl $0x0, -0x1c(%rbp)
movb $0x0, -0x1d(%rbp)
movzbl -0x1d(%rbp), %eax
cmpl $0x6, %eax
jge 0x931d
movzbl -0x1d(%rbp), %eax
movzbl -0x25(%rbp,%rax), %edi
shll $0x8, %edi
movzbl -0x1d(%rbp), %eax
addl $0x1, %eax
cltq
movzbl -0x25(%rbp,%rax), %eax
orl %eax, %edi
movzbl -0x1d(%rbp), %eax
addl $0x2, %eax
cltq
movzbl -0x25(%rbp,%rax), %esi
callq 0x88b0
cmpl $0x1, %eax
jne 0x92e9
movl $0x4, -0x4(%rbp)
jmp 0x957b
movl -0x1c(%rbp), %eax
shll $0x10, %eax
movzbl -0x1d(%rbp), %ecx
movzbl -0x25(%rbp,%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movzbl -0x1d(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl -0x25(%rbp,%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x1c(%rbp)
movzbl -0x1d(%rbp), %eax
addl $0x3, %eax
movb %al, -0x1d(%rbp)
jmp 0x92a0
movzbl -0x25(%rbp), %eax
movl %eax, -0x74(%rbp)
testl %eax, %eax
je 0x935b
jmp 0x932a
movl -0x74(%rbp), %eax
subl $0xd, %eax
je 0x9386
jmp 0x9334
movl -0x74(%rbp), %eax
addl $-0x14, %eax
subl $0x2, %eax
jb 0x9386
jmp 0x9341
movl -0x74(%rbp), %eax
subl $0x32, %eax
je 0x93b6
jmp 0x934b
movl -0x74(%rbp), %eax
subl $0xff, %eax
jne 0x9419
jmp 0x935b
movq -0x10(%rbp), %rax
movb $0x3, 0x30(%rax)
movq 0x5c8e(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
leaq 0x377c(%rip), %rsi      # 0xcaf6
movb $0x0, %al
callq 0x21d0
jmp 0x9444
movq -0x10(%rbp), %rax
movb $0x3, 0x30(%rax)
movq 0x5c63(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x25(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
leaq 0x377f(%rip), %rsi      # 0xcb29
movb $0x0, %al
callq 0x21d0
jmp 0x9444
movq -0x10(%rbp), %rax
movb $0x1, 0x30(%rax)
movl -0x1c(%rbp), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x4854, %eax           # imm = 0x4854
je 0x93e7
movq 0x5c24(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x376a(%rip), %rsi      # 0xcb48
movb $0x0, %al
callq 0x21d0
jmp 0x9417
movq 0x5c0a(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x22(%rbp), %edx
movzbl -0x21(%rbp), %ecx
movl -0x18(%rbp), %r8d
movzbl -0x25(%rbp), %r9d
movzbl -0x24(%rbp), %eax
leaq 0x3763(%rip), %rsi      # 0xcb70
movl %eax, (%rsp)
movb $0x0, %al
callq 0x21d0
jmp 0x9444
movq -0x10(%rbp), %rax
movb $0x3, 0x30(%rax)
movq 0x5bd0(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x25(%rbp), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
leaq 0x375a(%rip), %rsi      # 0xcb97
movb $0x0, %al
callq 0x21d0
movq -0x10(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x3, %eax
jne 0x9515
movb $-0x7c, -0x25(%rbp)
movb $-0x48, -0x24(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
movl $0x2, %edx
callq 0x20a0
cmpq $0x0, %rax
jge 0x9483
movl $0x4, -0x4(%rbp)
jmp 0x957b
movq -0x10(%rbp), %rax
movl (%rax), %edi
leaq -0x25(%rbp), %rsi
movl $0x1, %edx
callq 0x2180
cmpq $0x0, %rax
jge 0x94a9
movl $0x4, -0x4(%rbp)
jmp 0x957b
movzbl -0x25(%rbp), %eax
movl %eax, -0x78(%rbp)
subl $0x20, %eax
je 0x94dd
jmp 0x94b7
movl -0x78(%rbp), %eax
subl $0xff, %eax
jne 0x94f7
jmp 0x94c3
movq 0x5b2e(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x36f1(%rip), %rsi      # 0xcbc5
movb $0x0, %al
callq 0x21d0
jmp 0x9513
movq 0x5b14(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x36f0(%rip), %rsi      # 0xcbde
movb $0x0, %al
callq 0x21d0
jmp 0x9513
movq 0x5afa(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x25(%rbp), %edx
leaq 0x36eb(%rip), %rsi      # 0xcbf7
movb $0x0, %al
callq 0x21d0
jmp 0x9515
leaq 0x5f58(%rip), %rax      # 0xf474
cmpl $0x0, (%rax)
jle 0x956a
movq -0x10(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x3, %eax
jne 0x954c
movq 0x5ac3(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x11(%rbp), %edx
leaq 0x36d6(%rip), %rsi      # 0xcc19
movb $0x0, %al
callq 0x21d0
jmp 0x9568
movq 0x5aa5(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movzbl -0x11(%rbp), %edx
leaq 0x36d6(%rip), %rsi      # 0xcc37
movb $0x0, %al
callq 0x21d0
jmp 0x956a
movb -0x11(%rbp), %cl
movq -0x10(%rbp), %rax
movb %cl, 0x4(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)