	.file	"306021.c"
	.intel_syntax noprefix
	.text
	.data
	.align 16
	.type	rui_lora_event, @object
	.size	rui_lora_event, 16
rui_lora_event:
	.long	3
	.zero	4
	.quad	0
	.globl	Radio
	.section	.data.rel.ro.local,"aw"
	.align 32
	.type	Radio, @object
	.size	Radio, 216
Radio:
	.quad	RadioInit
	.quad	RadioGetStatus
	.quad	RadioSetModem
	.quad	RadioSetChannel
	.quad	RadioIsChannelFree
	.quad	RadioRandom
	.quad	RadioSetRxConfig
	.quad	RadioSetTxConfig
	.quad	RadioCheckRfFrequency
	.quad	RadioTimeOnAir
	.quad	RadioSend
	.quad	RadioSleep
	.quad	RadioStandby
	.quad	RadioRx
	.quad	RadioStartCad
	.quad	RadioSetTxContinuousWave
	.quad	RadioRssi
	.quad	RadioWrite
	.quad	RadioRead
	.quad	RadioWriteBuffer
	.quad	RadioReadBuffer
	.quad	RadioSetMaxPayloadLength
	.quad	RadioSetPublicNetwork
	.quad	RadioGetWakeupTime
	.quad	RadioIrqProcess
	.quad	RadioRxBoosted
	.quad	RadioSetRxDutyCycle
	.globl	FskBandwidths
	.section	.rodata
	.align 32
	.type	FskBandwidths, @object
	.size	FskBandwidths, 352
FskBandwidths:
	.quad	4800
	.byte	31
	.zero	7
	.quad	5800
	.byte	23
	.zero	7
	.quad	7300
	.byte	15
	.zero	7
	.quad	9700
	.byte	30
	.zero	7
	.quad	11700
	.byte	22
	.zero	7
	.quad	14600
	.byte	14
	.zero	7
	.quad	19500
	.byte	29
	.zero	7
	.quad	23400
	.byte	21
	.zero	7
	.quad	29300
	.byte	13
	.zero	7
	.quad	39000
	.byte	28
	.zero	7
	.quad	46900
	.byte	20
	.zero	7
	.quad	58600
	.byte	12
	.zero	7
	.quad	78200
	.byte	27
	.zero	7
	.quad	93800
	.byte	19
	.zero	7
	.quad	117300
	.byte	11
	.zero	7
	.quad	156200
	.byte	26
	.zero	7
	.quad	187200
	.byte	18
	.zero	7
	.quad	234300
	.byte	10
	.zero	7
	.quad	312000
	.byte	25
	.zero	7
	.quad	373600
	.byte	17
	.zero	7
	.quad	467000
	.byte	9
	.zero	7
	.quad	500000
	.byte	0
	.zero	7
	.globl	Bandwidths
	.align 8
	.type	Bandwidths, @object
	.size	Bandwidths, 12
Bandwidths:
	.long	4
	.long	5
	.long	6
	.globl	MaxPayloadLength
	.data
	.type	MaxPayloadLength, @object
	.size	MaxPayloadLength, 1
MaxPayloadLength:
	.byte	-1
	.globl	TxTimeout
	.bss
	.align 8
	.type	TxTimeout, @object
	.size	TxTimeout, 8
TxTimeout:
	.zero	8
	.globl	RxTimeout
	.align 8
	.type	RxTimeout, @object
	.size	RxTimeout, 8
RxTimeout:
	.zero	8
	.globl	RxContinuous
	.type	RxContinuous, @object
	.size	RxContinuous, 1
RxContinuous:
	.zero	1
	.globl	RadioPktStatus
	.align 32
	.type	RadioPktStatus, @object
	.size	RadioPktStatus, 40
RadioPktStatus:
	.zero	40
	.globl	RadioRxPayload
	.align 32
	.type	RadioRxPayload, @object
	.size	RadioRxPayload, 255
RadioRxPayload:
	.zero	255
	.globl	IrqFired
	.type	IrqFired, @object
	.size	IrqFired, 1
IrqFired:
	.zero	1
	.local	RadioPublicNetwork
	.comm	RadioPublicNetwork,2,1
	.local	RadioEvents
	.comm	RadioEvents,8,8
	.globl	SX126x
	.align 32
	.type	SX126x, @object
	.size	SX126x, 512
SX126x:
	.zero	512
	.globl	TxTimeoutTimer
	.align 32
	.type	TxTimeoutTimer, @object
	.size	TxTimeoutTimer, 48
TxTimeoutTimer:
	.zero	48
	.globl	RxTimeoutTimer
	.align 32
	.type	RxTimeoutTimer, @object
	.size	RxTimeoutTimer, 48
RxTimeoutTimer:
	.zero	48
	.text
	.type	RadioGetFskBandwidthRegValue, @function
RadioGetFskBandwidthRegValue:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2
	mov	eax, 31
	jmp	.L3
.L2:
	mov	BYTE PTR -1[rbp], 0
	jmp	.L4
.L6:
	movzx	eax, BYTE PTR -1[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, FskBandwidths[rip]
	mov	rax, QWORD PTR [rdx+rax]
	cmp	QWORD PTR -24[rbp], rax
	jb	.L5
	movzx	eax, BYTE PTR -1[rbp]
	add	eax, 1
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, FskBandwidths[rip]
	mov	rax, QWORD PTR [rdx+rax]
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L5
	movzx	eax, BYTE PTR -1[rbp]
	add	eax, 1
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, FskBandwidths[rip+8]
	movzx	eax, BYTE PTR [rdx+rax]
	jmp	.L3
.L5:
	movzx	eax, BYTE PTR -1[rbp]
	add	eax, 1
	mov	BYTE PTR -1[rbp], al
.L4:
	cmp	BYTE PTR -1[rbp], 20
	jbe	.L6
.L7:
	jmp	.L7
.L3:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	RadioGetFskBandwidthRegValue, .-RadioGetFskBandwidthRegValue
	.globl	RadioInit
	.type	RadioInit, @function
RadioInit:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR RadioEvents[rip], rax
	lea	rdi, RadioOnDioIrq[rip]
	call	SX126xInit@PLT
	mov	edi, 0
	call	SX126xSetStandby@PLT
	mov	edi, 1
	call	SX126xSetRegulatorMode@PLT
	mov	esi, 0
	mov	edi, 0
	call	SX126xSetBufferBaseAddress@PLT
	mov	esi, 4
	mov	edi, 0
	call	SX126xSetTxParams@PLT
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 65535
	mov	edi, 65535
	call	SX126xSetDioIrqParams@PLT
	lea	rsi, RadioOnTxTimeoutIrq[rip]
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerInit@PLT
	lea	rsi, RadioOnRxTimeoutIrq[rip]
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerInit@PLT
	mov	BYTE PTR IrqFired[rip], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	RadioInit, .-RadioInit
	.globl	RadioGetStatus
	.type	RadioGetStatus, @function
RadioGetStatus:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	SX126xGetOperatingMode@PLT
	cmp	eax, 7
	je	.L10
	cmp	eax, 7
	ja	.L11
	cmp	eax, 4
	je	.L12
	cmp	eax, 5
	je	.L13
	jmp	.L11
.L12:
	mov	eax, 2
	jmp	.L14
.L13:
	mov	eax, 1
	jmp	.L14
.L10:
	mov	eax, 3
	jmp	.L14
.L11:
	mov	eax, 0
.L14:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	RadioGetStatus, .-RadioGetStatus
	.globl	RadioSetModem
	.type	RadioSetModem, @function
RadioSetModem:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 1
	je	.L16
	mov	edi, 0
	call	SX126xSetPacketType@PLT
	mov	BYTE PTR RadioPublicNetwork[rip+1], 0
	jmp	.L17
.L16:
	mov	edi, 1
	call	SX126xSetPacketType@PLT
	movzx	edx, BYTE PTR RadioPublicNetwork[rip+1]
	movzx	eax, BYTE PTR RadioPublicNetwork[rip]
	cmp	dl, al
	je	.L19
	movzx	eax, BYTE PTR RadioPublicNetwork[rip]
	mov	BYTE PTR RadioPublicNetwork[rip+1], al
	movzx	eax, BYTE PTR RadioPublicNetwork[rip+1]
	movzx	eax, al
	mov	edi, eax
	call	RadioSetPublicNetwork
.L19:
	nop
.L17:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	RadioSetModem, .-RadioSetModem
	.globl	RadioSetChannel
	.type	RadioSetChannel, @function
RadioSetChannel:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	SX126xSetRfFrequency@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	RadioSetChannel, .-RadioSetChannel
	.globl	RadioIsChannelFree
	.type	RadioIsChannelFree, @function
RadioIsChannelFree:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	QWORD PTR -48[rbp], rcx
	mov	WORD PTR -36[rbp], ax
	mov	BYTE PTR -11[rbp], 1
	mov	WORD PTR -10[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	edi, 0
	call	RadioSetModem
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	RadioSetChannel
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -32[rbp]
	push	1
	push	0
	push	0
	push	0
	push	0
	push	0
	push	0
	push	0
	mov	r9d, 3
	mov	r8, rdx
	mov	ecx, 0
	mov	edx, 600
	mov	rsi, rax
	mov	edi, 0
	call	RadioSetRxConfig
	add	rsp, 64
	mov	edi, 0
	call	RadioRx
	mov	edi, 1
	call	DelayMs@PLT
	call	TimerGetCurrentTime@PLT
	mov	QWORD PTR -8[rbp], rax
	jmp	.L22
.L24:
	mov	edi, 0
	call	RadioRssi
	mov	WORD PTR -10[rbp], ax
	movzx	eax, WORD PTR -10[rbp]
	cmp	ax, WORD PTR -36[rbp]
	jle	.L22
	mov	BYTE PTR -11[rbp], 0
	jmp	.L23
.L22:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	TimerGetElapsedTime@PLT
	cmp	QWORD PTR -48[rbp], rax
	ja	.L24
.L23:
	call	RadioSleep
	movzx	eax, BYTE PTR -11[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	RadioIsChannelFree, .-RadioIsChannelFree
	.globl	RadioRandom
	.type	RadioRandom, @function
RadioRandom:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], 0
	mov	edi, 1
	call	RadioSetModem
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 0
	call	SX126xSetDioIrqParams@PLT
	call	SX126xGetRandom@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	RadioRandom, .-RadioRandom
	.globl	RadioSetRxConfig
	.type	RadioSetRxConfig, @function
RadioSetRxConfig:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 104
	.cfi_offset 3, -24
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], r8
	mov	edx, r9d
	mov	eax, DWORD PTR 16[rbp]
	mov	ebx, DWORD PTR 24[rbp]
	mov	r11d, DWORD PTR 32[rbp]
	mov	r10d, DWORD PTR 40[rbp]
	mov	r9d, DWORD PTR 48[rbp]
	mov	r8d, DWORD PTR 56[rbp]
	mov	edi, DWORD PTR 64[rbp]
	mov	esi, DWORD PTR 72[rbp]
	mov	BYTE PTR -40[rbp], cl
	mov	WORD PTR -68[rbp], dx
	mov	WORD PTR -72[rbp], ax
	mov	eax, ebx
	mov	BYTE PTR -76[rbp], al
	mov	eax, r11d
	mov	BYTE PTR -80[rbp], al
	mov	eax, r10d
	mov	BYTE PTR -84[rbp], al
	mov	eax, r9d
	mov	BYTE PTR -88[rbp], al
	mov	eax, r8d
	mov	BYTE PTR -92[rbp], al
	mov	eax, edi
	mov	BYTE PTR -96[rbp], al
	mov	eax, esi
	mov	BYTE PTR -100[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	movzx	eax, BYTE PTR -100[rbp]
	mov	BYTE PTR RxContinuous[rip], al
	cmp	BYTE PTR -100[rbp], 0
	je	.L29
	mov	WORD PTR -72[rbp], 0
.L29:
	cmp	BYTE PTR -76[rbp], 0
	je	.L30
	movzx	eax, BYTE PTR -80[rbp]
	mov	BYTE PTR MaxPayloadLength[rip], al
	jmp	.L31
.L30:
	mov	BYTE PTR MaxPayloadLength[rip], -1
.L31:
	cmp	DWORD PTR -36[rbp], 0
	je	.L32
	cmp	DWORD PTR -36[rbp], 1
	je	.L33
	jmp	.L50
.L32:
	mov	edi, 0
	call	SX126xSetStopRxTimerOnPreambleDetect@PLT
	mov	DWORD PTR SX126x[rip+464], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR SX126x[rip+472], rax
	mov	DWORD PTR SX126x[rip+488], 11
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rax
	mov	rdi, rax
	call	RadioGetFskBandwidthRegValue
	mov	BYTE PTR SX126x[rip+492], al
	mov	DWORD PTR SX126x[rip+368], 0
	movzx	eax, WORD PTR -68[rbp]
	sal	eax, 3
	mov	WORD PTR SX126x[rip+372], ax
	mov	DWORD PTR SX126x[rip+376], 4
	mov	BYTE PTR SX126x[rip+380], 24
	mov	DWORD PTR SX126x[rip+384], 0
	movzx	eax, BYTE PTR -76[rbp]
	xor	eax, 1
	movzx	eax, al
	mov	DWORD PTR SX126x[rip+388], eax
	movzx	eax, BYTE PTR MaxPayloadLength[rip]
	mov	BYTE PTR SX126x[rip+392], al
	cmp	BYTE PTR -84[rbp], 0
	je	.L35
	mov	DWORD PTR SX126x[rip+396], 242
	jmp	.L36
.L35:
	mov	DWORD PTR SX126x[rip+396], 1
.L36:
	mov	DWORD PTR SX126x[rip+400], 1
	call	RadioStandby
	mov	eax, DWORD PTR SX126x[rip+464]
	test	eax, eax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	RadioSetModem
	lea	rdi, SX126x[rip+464]
	call	SX126xSetModulationParams@PLT
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
	mov	BYTE PTR -32[rbp], -63
	mov	BYTE PTR -31[rbp], -108
	mov	BYTE PTR -30[rbp], -63
	mov	BYTE PTR -29[rbp], 0
	mov	BYTE PTR -28[rbp], 0
	mov	BYTE PTR -27[rbp], 0
	mov	BYTE PTR -26[rbp], 0
	mov	BYTE PTR -25[rbp], 0
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	SX126xSetSyncWord@PLT
	mov	edi, 511
	call	SX126xSetWhiteningSeed@PLT
	movzx	eax, WORD PTR -72[rbp]
	imul	rax, rax, 8000
	mov	edx, 0
	div	QWORD PTR -56[rbp]
	mov	QWORD PTR RxTimeout[rip], rax
	jmp	.L34
.L33:
	mov	edi, 0
	call	SX126xSetStopRxTimerOnPreambleDetect@PLT
	mov	DWORD PTR SX126x[rip+464], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR SX126x[rip+496], eax
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, Bandwidths[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR SX126x[rip+500], eax
	movzx	eax, BYTE PTR -40[rbp]
	mov	DWORD PTR SX126x[rip+504], eax
	cmp	QWORD PTR -48[rbp], 0
	jne	.L38
	cmp	QWORD PTR -56[rbp], 11
	je	.L39
	cmp	QWORD PTR -56[rbp], 12
	je	.L39
.L38:
	cmp	QWORD PTR -48[rbp], 1
	jne	.L40
	cmp	QWORD PTR -56[rbp], 12
	jne	.L40
.L39:
	mov	BYTE PTR SX126x[rip+508], 1
	jmp	.L41
.L40:
	mov	BYTE PTR SX126x[rip+508], 0
.L41:
	mov	DWORD PTR SX126x[rip+368], 1
	mov	eax, DWORD PTR SX126x[rip+496]
	cmp	eax, 5
	je	.L42
	mov	eax, DWORD PTR SX126x[rip+496]
	cmp	eax, 6
	jne	.L43
.L42:
	cmp	WORD PTR -68[rbp], 11
	ja	.L44
	mov	WORD PTR SX126x[rip+404], 12
	jmp	.L46
.L44:
	movzx	eax, WORD PTR -68[rbp]
	mov	WORD PTR SX126x[rip+404], ax
	jmp	.L46
.L43:
	movzx	eax, WORD PTR -68[rbp]
	mov	WORD PTR SX126x[rip+404], ax
.L46:
	movzx	eax, BYTE PTR -76[rbp]
	mov	DWORD PTR SX126x[rip+408], eax
	movzx	eax, BYTE PTR MaxPayloadLength[rip]
	mov	BYTE PTR SX126x[rip+412], al
	movzx	eax, BYTE PTR -84[rbp]
	mov	DWORD PTR SX126x[rip+416], eax
	movzx	eax, BYTE PTR -96[rbp]
	mov	DWORD PTR SX126x[rip+420], eax
	call	RadioStandby
	mov	eax, DWORD PTR SX126x[rip+464]
	test	eax, eax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	RadioSetModem
	lea	rdi, SX126x[rip+464]
	call	SX126xSetModulationParams@PLT
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
	movzx	eax, WORD PTR -72[rbp]
	movzx	eax, al
	mov	edi, eax
	call	SX126xSetLoRaSymbNumTimeout@PLT
	mov	eax, DWORD PTR SX126x[rip+420]
	cmp	eax, 1
	jne	.L47
	mov	edi, 1846
	call	SX126xReadRegister@PLT
	movzx	eax, al
	and	eax, 251
	mov	esi, eax
	mov	edi, 1846
	call	SX126xWriteRegister@PLT
	jmp	.L48
.L47:
	mov	edi, 1846
	call	SX126xReadRegister@PLT
	or	eax, 4
	movzx	eax, al
	mov	esi, eax
	mov	edi, 1846
	call	SX126xWriteRegister@PLT
.L48:
	mov	QWORD PTR RxTimeout[rip], 65535
	nop
.L34:
.L50:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L49
	call	__stack_chk_fail@PLT
.L49:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	RadioSetRxConfig, .-RadioSetRxConfig
	.globl	RadioSetTxConfig
	.type	RadioSetTxConfig, @function
RadioSetTxConfig:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rdx
	mov	QWORD PTR -40[rbp], rcx
	mov	QWORD PTR -48[rbp], r8
	mov	r10d, r9d
	mov	eax, DWORD PTR 16[rbp]
	mov	r9d, DWORD PTR 24[rbp]
	mov	r8d, DWORD PTR 32[rbp]
	mov	edi, DWORD PTR 40[rbp]
	mov	ecx, DWORD PTR 48[rbp]
	mov	edx, DWORD PTR 56[rbp]
	mov	BYTE PTR -24[rbp], sil
	mov	esi, r10d
	mov	BYTE PTR -52[rbp], sil
	mov	WORD PTR -56[rbp], ax
	mov	eax, r9d
	mov	BYTE PTR -60[rbp], al
	mov	eax, r8d
	mov	BYTE PTR -64[rbp], al
	mov	eax, edi
	mov	BYTE PTR -68[rbp], al
	mov	eax, ecx
	mov	BYTE PTR -72[rbp], al
	mov	eax, edx
	mov	BYTE PTR -76[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L52
	cmp	DWORD PTR -20[rbp], 1
	je	.L53
	jmp	.L54
.L52:
	mov	DWORD PTR SX126x[rip+464], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR SX126x[rip+472], rax
	mov	DWORD PTR SX126x[rip+488], 11
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rax
	mov	rdi, rax
	call	RadioGetFskBandwidthRegValue
	mov	BYTE PTR SX126x[rip+492], al
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR SX126x[rip+480], rax
	mov	DWORD PTR SX126x[rip+368], 0
	movzx	eax, WORD PTR -56[rbp]
	sal	eax, 3
	mov	WORD PTR SX126x[rip+372], ax
	mov	DWORD PTR SX126x[rip+376], 4
	mov	BYTE PTR SX126x[rip+380], 24
	mov	DWORD PTR SX126x[rip+384], 0
	movzx	eax, BYTE PTR -60[rbp]
	xor	eax, 1
	movzx	eax, al
	mov	DWORD PTR SX126x[rip+388], eax
	cmp	BYTE PTR -64[rbp], 0
	je	.L55
	mov	DWORD PTR SX126x[rip+396], 242
	jmp	.L56
.L55:
	mov	DWORD PTR SX126x[rip+396], 1
.L56:
	mov	DWORD PTR SX126x[rip+400], 1
	call	RadioStandby
	mov	eax, DWORD PTR SX126x[rip+464]
	test	eax, eax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	RadioSetModem
	lea	rdi, SX126x[rip+464]
	call	SX126xSetModulationParams@PLT
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
	mov	BYTE PTR -16[rbp], -63
	mov	BYTE PTR -15[rbp], -108
	mov	BYTE PTR -14[rbp], -63
	mov	BYTE PTR -13[rbp], 0
	mov	BYTE PTR -12[rbp], 0
	mov	BYTE PTR -11[rbp], 0
	mov	BYTE PTR -10[rbp], 0
	mov	BYTE PTR -9[rbp], 0
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	SX126xSetSyncWord@PLT
	mov	edi, 511
	call	SX126xSetWhiteningSeed@PLT
	jmp	.L54
.L53:
	mov	DWORD PTR SX126x[rip+464], 1
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR SX126x[rip+496], eax
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, Bandwidths[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR SX126x[rip+500], eax
	movzx	eax, BYTE PTR -52[rbp]
	mov	DWORD PTR SX126x[rip+504], eax
	cmp	QWORD PTR -40[rbp], 0
	jne	.L58
	cmp	QWORD PTR -48[rbp], 11
	je	.L59
	cmp	QWORD PTR -48[rbp], 12
	je	.L59
.L58:
	cmp	QWORD PTR -40[rbp], 1
	jne	.L60
	cmp	QWORD PTR -48[rbp], 12
	jne	.L60
.L59:
	mov	BYTE PTR SX126x[rip+508], 1
	jmp	.L61
.L60:
	mov	BYTE PTR SX126x[rip+508], 0
.L61:
	mov	DWORD PTR SX126x[rip+368], 1
	mov	eax, DWORD PTR SX126x[rip+496]
	cmp	eax, 5
	je	.L62
	mov	eax, DWORD PTR SX126x[rip+496]
	cmp	eax, 6
	jne	.L63
.L62:
	cmp	WORD PTR -56[rbp], 11
	ja	.L64
	mov	WORD PTR SX126x[rip+404], 12
	jmp	.L66
.L64:
	movzx	eax, WORD PTR -56[rbp]
	mov	WORD PTR SX126x[rip+404], ax
	jmp	.L66
.L63:
	movzx	eax, WORD PTR -56[rbp]
	mov	WORD PTR SX126x[rip+404], ax
.L66:
	movzx	eax, BYTE PTR -60[rbp]
	mov	DWORD PTR SX126x[rip+408], eax
	movzx	eax, BYTE PTR MaxPayloadLength[rip]
	mov	BYTE PTR SX126x[rip+412], al
	movzx	eax, BYTE PTR -64[rbp]
	mov	DWORD PTR SX126x[rip+416], eax
	movzx	eax, BYTE PTR -76[rbp]
	mov	DWORD PTR SX126x[rip+420], eax
	call	RadioStandby
	mov	eax, DWORD PTR SX126x[rip+464]
	test	eax, eax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	RadioSetModem
	lea	rdi, SX126x[rip+464]
	call	SX126xSetModulationParams@PLT
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
	nop
.L54:
	cmp	DWORD PTR -20[rbp], 1
	jne	.L67
	mov	eax, DWORD PTR SX126x[rip+500]
	cmp	eax, 6
	jne	.L67
	mov	edi, 2185
	call	SX126xReadRegister@PLT
	movzx	eax, al
	and	eax, 251
	mov	esi, eax
	mov	edi, 2185
	call	SX126xWriteRegister@PLT
	jmp	.L68
.L67:
	mov	edi, 2185
	call	SX126xReadRegister@PLT
	or	eax, 4
	movzx	eax, al
	mov	esi, eax
	mov	edi, 2185
	call	SX126xWriteRegister@PLT
.L68:
	movsx	eax, BYTE PTR -24[rbp]
	mov	edi, eax
	call	SX126xSetRfTxPower@PLT
	mov	rax, QWORD PTR 64[rbp]
	mov	QWORD PTR TxTimeout[rip], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L69
	call	__stack_chk_fail@PLT
.L69:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	RadioSetTxConfig, .-RadioSetTxConfig
	.globl	RadioCheckRfFrequency
	.type	RadioCheckRfFrequency, @function
RadioCheckRfFrequency:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, 1
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	RadioCheckRfFrequency, .-RadioCheckRfFrequency
	.type	RadioGetLoRaBandwidthInHz, @function
RadioGetLoRaBandwidthInHz:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -8[rbp], 0
	cmp	DWORD PTR -20[rbp], 10
	ja	.L73
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L75[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L75[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L75:
	.long	.L84-.L75
	.long	.L83-.L75
	.long	.L82-.L75
	.long	.L81-.L75
	.long	.L80-.L75
	.long	.L79-.L75
	.long	.L78-.L75
	.long	.L73-.L75
	.long	.L77-.L75
	.long	.L76-.L75
	.long	.L74-.L75
	.text
.L84:
	mov	QWORD PTR -8[rbp], 7812
	jmp	.L73
.L77:
	mov	QWORD PTR -8[rbp], 10417
	jmp	.L73
.L83:
	mov	QWORD PTR -8[rbp], 15625
	jmp	.L73
.L76:
	mov	QWORD PTR -8[rbp], 20833
	jmp	.L73
.L82:
	mov	QWORD PTR -8[rbp], 31250
	jmp	.L73
.L74:
	mov	QWORD PTR -8[rbp], 41667
	jmp	.L73
.L81:
	mov	QWORD PTR -8[rbp], 62500
	jmp	.L73
.L80:
	mov	QWORD PTR -8[rbp], 125000
	jmp	.L73
.L79:
	mov	QWORD PTR -8[rbp], 250000
	jmp	.L73
.L78:
	mov	QWORD PTR -8[rbp], 500000
	nop
.L73:
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	RadioGetLoRaBandwidthInHz, .-RadioGetLoRaBandwidthInHz
	.type	RadioGetGfskTimeOnAirNumerator, @function
RadioGetGfskTimeOnAirNumerator:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, edx
	mov	edx, ecx
	mov	edi, r9d
	mov	ecx, esi
	mov	BYTE PTR -28[rbp], cl
	mov	WORD PTR -32[rbp], ax
	mov	eax, edx
	mov	BYTE PTR -36[rbp], al
	mov	eax, r8d
	mov	BYTE PTR -40[rbp], al
	mov	eax, edi
	mov	BYTE PTR -44[rbp], al
	mov	DWORD PTR -4[rbp], 0
	mov	BYTE PTR -5[rbp], 3
	movzx	eax, WORD PTR -32[rbp]
	lea	edx, 0[0+rax*8]
	movzx	eax, BYTE PTR -36[rbp]
	xor	eax, 1
	test	al, al
	je	.L87
	mov	eax, 8
	jmp	.L88
.L87:
	mov	eax, 0
.L88:
	add	edx, eax
	movzx	eax, BYTE PTR -5[rbp]
	sal	eax, 3
	lea	ecx, [rdx+rax]
	movzx	edx, BYTE PTR -40[rbp]
	cmp	DWORD PTR -4[rbp], 0
	setne	al
	movzx	eax, al
	add	eax, edx
	cmp	BYTE PTR -44[rbp], 0
	je	.L89
	mov	edx, 2
	jmp	.L90
.L89:
	mov	edx, 0
.L90:
	add	eax, edx
	sal	eax, 3
	add	eax, ecx
	cdqe
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	RadioGetGfskTimeOnAirNumerator, .-RadioGetGfskTimeOnAirNumerator
	.type	RadioGetLoRaTimeOnAirNumerator, @function
RadioGetLoRaTimeOnAirNumerator:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	eax, ecx
	mov	edi, r8d
	mov	esi, r9d
	mov	ecx, DWORD PTR 16[rbp]
	mov	BYTE PTR -68[rbp], dl
	mov	WORD PTR -72[rbp], ax
	mov	eax, edi
	mov	BYTE PTR -76[rbp], al
	mov	eax, esi
	mov	BYTE PTR -80[rbp], al
	mov	eax, ecx
	mov	BYTE PTR -84[rbp], al
	movzx	eax, BYTE PTR -68[rbp]
	add	eax, 4
	cdqe
	mov	QWORD PTR -8[rbp], rax
	mov	BYTE PTR -33[rbp], 0
	cmp	QWORD PTR -64[rbp], 5
	je	.L93
	cmp	QWORD PTR -64[rbp], 6
	jne	.L94
.L93:
	cmp	WORD PTR -72[rbp], 11
	ja	.L94
	mov	WORD PTR -72[rbp], 12
.L94:
	cmp	QWORD PTR -56[rbp], 0
	jne	.L95
	cmp	QWORD PTR -64[rbp], 11
	je	.L96
	cmp	QWORD PTR -64[rbp], 12
	je	.L96
.L95:
	cmp	QWORD PTR -56[rbp], 1
	jne	.L97
	cmp	QWORD PTR -64[rbp], 12
	jne	.L97
.L96:
	mov	BYTE PTR -33[rbp], 1
.L97:
	movzx	eax, BYTE PTR -80[rbp]
	sal	eax, 3
	cmp	BYTE PTR -84[rbp], 0
	je	.L98
	mov	edx, 16
	jmp	.L99
.L98:
	mov	edx, 0
.L99:
	add	eax, edx
	cdqe
	mov	rdx, QWORD PTR -64[rbp]
	sal	rdx, 2
	sub	rax, rdx
	cmp	BYTE PTR -76[rbp], 0
	je	.L100
	mov	edx, 0
	jmp	.L101
.L100:
	mov	edx, 20
.L101:
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -64[rbp], 6
	ja	.L102
	mov	rax, QWORD PTR -64[rbp]
	sal	rax, 2
	mov	QWORD PTR -32[rbp], rax
	jmp	.L103
.L102:
	add	QWORD PTR -24[rbp], 8
	cmp	BYTE PTR -33[rbp], 0
	je	.L104
	mov	rax, QWORD PTR -64[rbp]
	sub	rax, 2
	sal	rax, 2
	mov	QWORD PTR -32[rbp], rax
	jmp	.L103
.L104:
	mov	rax, QWORD PTR -64[rbp]
	sal	rax, 2
	mov	QWORD PTR -32[rbp], rax
.L103:
	cmp	QWORD PTR -24[rbp], 0
	jns	.L105
	mov	QWORD PTR -24[rbp], 0
.L105:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	sub	rax, 1
	cqo
	idiv	QWORD PTR -32[rbp]
	imul	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	movzx	eax, WORD PTR -72[rbp]
	add	rax, rdx
	add	rax, 12
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -64[rbp], 6
	ja	.L106
	add	QWORD PTR -16[rbp], 2
.L106:
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 2
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	sub	eax, 2
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	cdqe
	imul	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	RadioGetLoRaTimeOnAirNumerator, .-RadioGetLoRaTimeOnAirNumerator
	.globl	RadioTimeOnAir
	.type	RadioTimeOnAir, @function
RadioTimeOnAir:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 56
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	edx, ecx
	mov	eax, r8d
	mov	edi, r9d
	mov	esi, DWORD PTR 16[rbp]
	mov	ecx, DWORD PTR 24[rbp]
	mov	BYTE PTR -24[rbp], dl
	mov	WORD PTR -44[rbp], ax
	mov	eax, edi
	mov	BYTE PTR -48[rbp], al
	mov	eax, esi
	mov	BYTE PTR -52[rbp], al
	mov	eax, ecx
	mov	BYTE PTR -56[rbp], al
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 1
	cmp	DWORD PTR -20[rbp], 0
	je	.L109
	cmp	DWORD PTR -20[rbp], 1
	je	.L110
	jmp	.L111
.L109:
	movzx	r8d, BYTE PTR -56[rbp]
	movzx	edi, BYTE PTR -52[rbp]
	movzx	ecx, BYTE PTR -48[rbp]
	movzx	edx, WORD PTR -44[rbp]
	movzx	esi, BYTE PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	RadioGetGfskTimeOnAirNumerator
	imul	rax, rax, 1000
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L111
.L110:
	movzx	edi, BYTE PTR -56[rbp]
	movzx	r9d, BYTE PTR -52[rbp]
	movzx	r8d, BYTE PTR -48[rbp]
	movzx	ecx, WORD PTR -44[rbp]
	movzx	edx, BYTE PTR -24[rbp]
	mov	rsi, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	push	rdi
	mov	rdi, rax
	call	RadioGetLoRaTimeOnAirNumerator
	add	rsp, 8
	imul	rax, rax, 1000
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, Bandwidths[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edi, eax
	call	RadioGetLoRaBandwidthInHz
	mov	QWORD PTR -8[rbp], rax
	nop
.L111:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	sub	rax, 1
	mov	edx, 0
	div	QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	RadioTimeOnAir, .-RadioTimeOnAir
	.globl	RadioSend
	.type	RadioSend, @function
RadioSend:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -12[rbp], al
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 513
	mov	edi, 513
	call	SX126xSetDioIrqParams@PLT
	call	SX126xGetPacketType@PLT
	cmp	eax, 1
	jne	.L114
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR SX126x[rip+412], al
	jmp	.L115
.L114:
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR SX126x[rip+392], al
.L115:
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
	movzx	ecx, BYTE PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	SX126xSendPayload@PLT
	mov	rax, QWORD PTR TxTimeout[rip]
	mov	rsi, rax
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerSetValue@PLT
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerStart@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	RadioSend, .-RadioSend
	.globl	RadioSleep
	.type	RadioSleep, @function
RadioSleep:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	BYTE PTR -1[rbp], 0
	movzx	eax, BYTE PTR -1[rbp]
	or	eax, 4
	mov	BYTE PTR -1[rbp], al
	movzx	eax, BYTE PTR -1[rbp]
	mov	edi, eax
	call	SX126xSetSleep@PLT
	mov	edi, 2
	call	DelayMs@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	RadioSleep, .-RadioSleep
	.globl	RadioStandby
	.type	RadioStandby, @function
RadioStandby:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 0
	call	SX126xSetStandby@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	RadioStandby, .-RadioStandby
	.globl	RadioRx
	.type	RadioRx, @function
RadioRx:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 65535
	mov	edi, 65535
	call	SX126xSetDioIrqParams@PLT
	cmp	QWORD PTR -8[rbp], 0
	je	.L119
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerSetValue@PLT
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerStart@PLT
.L119:
	movzx	eax, BYTE PTR RxContinuous[rip]
	test	al, al
	je	.L120
	mov	edi, 16777215
	call	SX126xSetRx@PLT
	jmp	.L122
.L120:
	mov	rax, QWORD PTR RxTimeout[rip]
	sal	rax, 6
	mov	rdi, rax
	call	SX126xSetRx@PLT
.L122:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	RadioRx, .-RadioRx
	.globl	RadioRxBoosted
	.type	RadioRxBoosted, @function
RadioRxBoosted:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 65535
	mov	edi, 65535
	call	SX126xSetDioIrqParams@PLT
	cmp	QWORD PTR -8[rbp], 0
	je	.L124
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerSetValue@PLT
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerStart@PLT
.L124:
	movzx	eax, BYTE PTR RxContinuous[rip]
	test	al, al
	je	.L125
	mov	edi, 16777215
	call	SX126xSetRxBoosted@PLT
	jmp	.L127
.L125:
	mov	rax, QWORD PTR RxTimeout[rip]
	sal	rax, 6
	mov	rdi, rax
	call	SX126xSetRxBoosted@PLT
.L127:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	RadioRxBoosted, .-RadioRxBoosted
	.globl	RadioSetRxDutyCycle
	.type	RadioSetRxDutyCycle, @function
RadioSetRxDutyCycle:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	SX126xSetRxDutyCycle@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	RadioSetRxDutyCycle, .-RadioSetRxDutyCycle
	.globl	RadioStartCad
	.type	RadioStartCad, @function
RadioStartCad:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 384
	mov	edi, 384
	call	SX126xSetDioIrqParams@PLT
	call	SX126xSetCad@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	RadioStartCad, .-RadioStartCad
	.globl	RadioSetTxContinuousWave
	.type	RadioSetTxContinuousWave, @function
RadioSetTxContinuousWave:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	ecx, esi
	mov	eax, edx
	mov	edx, ecx
	mov	BYTE PTR -28[rbp], dl
	mov	WORD PTR -32[rbp], ax
	movzx	eax, WORD PTR -32[rbp]
	imul	rax, rax, 1000
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	SX126xSetRfFrequency@PLT
	movsx	eax, BYTE PTR -28[rbp]
	mov	edi, eax
	call	SX126xSetRfTxPower@PLT
	call	SX126xSetTxContinuousWave@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerSetValue@PLT
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerStart@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	RadioSetTxContinuousWave, .-RadioSetTxContinuousWave
	.globl	RadioRssi
	.type	RadioRssi, @function
RadioRssi:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	call	SX126xGetRssiInst@PLT
	cbw
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	RadioRssi, .-RadioRssi
	.globl	RadioWrite
	.type	RadioWrite, @function
RadioWrite:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -12[rbp], al
	movzx	edx, BYTE PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, ax
	mov	esi, edx
	mov	edi, eax
	call	SX126xWriteRegister@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	RadioWrite, .-RadioWrite
	.globl	RadioRead
	.type	RadioRead, @function
RadioRead:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, ax
	mov	edi, eax
	call	SX126xReadRegister@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	RadioRead, .-RadioRead
	.globl	RadioWriteBuffer
	.type	RadioWriteBuffer, @function
RadioWriteBuffer:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -20[rbp], al
	movzx	edx, BYTE PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, ax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	SX126xWriteRegisters@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	RadioWriteBuffer, .-RadioWriteBuffer
	.globl	RadioReadBuffer
	.type	RadioReadBuffer, @function
RadioReadBuffer:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -20[rbp], al
	movzx	edx, BYTE PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, ax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	SX126xReadRegisters@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	RadioReadBuffer, .-RadioReadBuffer
	.globl	RadioSetMaxPayloadLength
	.type	RadioSetMaxPayloadLength, @function
RadioSetMaxPayloadLength:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, esi
	mov	BYTE PTR -8[rbp], al
	cmp	DWORD PTR -4[rbp], 1
	jne	.L139
	movzx	eax, BYTE PTR -8[rbp]
	mov	BYTE PTR MaxPayloadLength[rip], al
	movzx	eax, BYTE PTR MaxPayloadLength[rip]
	mov	BYTE PTR SX126x[rip+412], al
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
	jmp	.L141
.L139:
	mov	eax, DWORD PTR SX126x[rip+388]
	cmp	eax, 1
	jne	.L141
	movzx	eax, BYTE PTR -8[rbp]
	mov	BYTE PTR MaxPayloadLength[rip], al
	movzx	eax, BYTE PTR MaxPayloadLength[rip]
	mov	BYTE PTR SX126x[rip+392], al
	lea	rdi, SX126x[rip+368]
	call	SX126xSetPacketParams@PLT
.L141:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	RadioSetMaxPayloadLength, .-RadioSetMaxPayloadLength
	.globl	RadioSetPublicNetwork
	.type	RadioSetPublicNetwork, @function
RadioSetPublicNetwork:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	BYTE PTR RadioPublicNetwork[rip], al
	movzx	eax, BYTE PTR RadioPublicNetwork[rip]
	mov	BYTE PTR RadioPublicNetwork[rip+1], al
	mov	edi, 1
	call	RadioSetModem
	cmp	BYTE PTR -4[rbp], 0
	je	.L143
	mov	esi, 52
	mov	edi, 1856
	call	SX126xWriteRegister@PLT
	mov	esi, 68
	mov	edi, 1857
	call	SX126xWriteRegister@PLT
	jmp	.L145
.L143:
	mov	esi, 20
	mov	edi, 1856
	call	SX126xWriteRegister@PLT
	mov	esi, 36
	mov	edi, 1857
	call	SX126xWriteRegister@PLT
.L145:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	RadioSetPublicNetwork, .-RadioSetPublicNetwork
	.globl	RadioGetWakeupTime
	.type	RadioGetWakeupTime, @function
RadioGetWakeupTime:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	SX126xGetBoardTcxoWakeupTime@PLT
	add	rax, 3
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	RadioGetWakeupTime, .-RadioGetWakeupTime
	.globl	RadioOnTxTimeoutIrq
	.type	RadioOnTxTimeoutIrq, @function
RadioOnTxTimeoutIrq:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L150
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L150
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 8[rax]
	call	rax
	lea	rdi, rui_lora_event[rip]
	call	udrv_system_event_produce@PLT
	mov	BYTE PTR udrv_powersave_in_sleep[rip], 0
.L150:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	RadioOnTxTimeoutIrq, .-RadioOnTxTimeoutIrq
	.globl	RadioOnRxTimeoutIrq
	.type	RadioOnRxTimeoutIrq, @function
RadioOnRxTimeoutIrq:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L153
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L153
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 24[rax]
	call	rax
	lea	rdi, rui_lora_event[rip]
	call	udrv_system_event_produce@PLT
	mov	BYTE PTR udrv_powersave_in_sleep[rip], 0
.L153:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	RadioOnRxTimeoutIrq, .-RadioOnRxTimeoutIrq
	.globl	RadioOnDioIrq
	.type	RadioOnDioIrq, @function
RadioOnDioIrq:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	BYTE PTR IrqFired[rip], 1
	lea	rdi, rui_lora_event[rip]
	call	udrv_system_event_produce@PLT
	mov	BYTE PTR udrv_powersave_in_sleep[rip], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	RadioOnDioIrq, .-RadioOnDioIrq
	.globl	RadioIrqProcess
	.type	RadioIrqProcess, @function
RadioIrqProcess:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movzx	eax, BYTE PTR IrqFired[rip]
	test	al, al
	je	.L169
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	BoardCriticalSectionBegin@PLT
	mov	BYTE PTR IrqFired[rip], 0
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	BoardCriticalSectionEnd@PLT
	call	SX126xGetIrqStatus@PLT
	mov	WORD PTR -18[rbp], ax
	movzx	eax, WORD PTR -18[rbp]
	mov	edi, eax
	call	SX126xClearIrqStatus@PLT
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 1
	test	eax, eax
	je	.L157
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerStop@PLT
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L157
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L157
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR [rax]
	call	rax
.L157:
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 2
	test	eax, eax
	je	.L158
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 64
	test	eax, eax
	je	.L159
	movzx	eax, BYTE PTR RxContinuous[rip]
	xor	eax, 1
	test	al, al
	je	.L160
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
.L160:
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L158
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	je	.L158
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 32[rax]
	call	rax
	jmp	.L158
.L159:
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerStop@PLT
	movzx	eax, BYTE PTR RxContinuous[rip]
	xor	eax, 1
	test	al, al
	je	.L161
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
	mov	esi, 0
	mov	edi, 2306
	call	SX126xWriteRegister@PLT
	mov	edi, 2372
	call	SX126xReadRegister@PLT
	or	eax, 2
	movzx	eax, al
	mov	esi, eax
	mov	edi, 2372
	call	SX126xWriteRegister@PLT
.L161:
	lea	rax, -19[rbp]
	mov	edx, 255
	mov	rsi, rax
	lea	rdi, RadioRxPayload[rip]
	call	SX126xGetPayload@PLT
	lea	rdi, RadioPktStatus[rip]
	call	SX126xGetPacketStatus@PLT
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L158
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L158
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	r8, QWORD PTR 16[rax]
	movzx	eax, BYTE PTR RadioPktStatus[rip+25]
	movsx	ecx, al
	movzx	eax, BYTE PTR RadioPktStatus[rip+24]
	movsx	edx, al
	movzx	eax, BYTE PTR -19[rbp]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, RadioRxPayload[rip]
	call	r8
.L158:
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 128
	test	eax, eax
	je	.L163
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L163
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 48[rax]
	test	rax, rax
	je	.L163
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rdx, QWORD PTR 48[rax]
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 256
	test	eax, eax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	rdx
.L163:
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 512
	test	eax, eax
	je	.L164
	call	SX126xGetOperatingMode@PLT
	cmp	eax, 4
	jne	.L165
	lea	rdi, TxTimeoutTimer[rip]
	call	TimerStop@PLT
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L164
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L164
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 8[rax]
	call	rax
	jmp	.L164
.L165:
	call	SX126xGetOperatingMode@PLT
	cmp	eax, 5
	jne	.L164
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerStop@PLT
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L164
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L164
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 24[rax]
	call	rax
.L164:
	movzx	eax, WORD PTR -18[rbp]
	and	eax, 32
	test	eax, eax
	je	.L169
	lea	rdi, RxTimeoutTimer[rip]
	call	TimerStop@PLT
	movzx	eax, BYTE PTR RxContinuous[rip]
	xor	eax, 1
	test	al, al
	je	.L167
	mov	edi, 1
	call	SX126xSetOperatingMode@PLT
.L167:
	mov	rax, QWORD PTR RadioEvents[rip]
	test	rax, rax
	je	.L169
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L169
	mov	rax, QWORD PTR RadioEvents[rip]
	mov	rax, QWORD PTR 24[rax]
	call	rax
.L169:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L168
	call	__stack_chk_fail@PLT
.L168:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	RadioIrqProcess, .-RadioIrqProcess
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"306021.c"
	.text
	.data
	.align	2
	.type	rui_lora_event, %object
	.size	rui_lora_event, 8
rui_lora_event:
	.word	3
	.word	0
	.global	Radio
	.section	.rodata
	.align	2
	.type	Radio, %object
	.size	Radio, 108
Radio:
	.word	RadioInit
	.word	RadioGetStatus
	.word	RadioSetModem
	.word	RadioSetChannel
	.word	RadioIsChannelFree
	.word	RadioRandom
	.word	RadioSetRxConfig
	.word	RadioSetTxConfig
	.word	RadioCheckRfFrequency
	.word	RadioTimeOnAir
	.word	RadioSend
	.word	RadioSleep
	.word	RadioStandby
	.word	RadioRx
	.word	RadioStartCad
	.word	RadioSetTxContinuousWave
	.word	RadioRssi
	.word	RadioWrite
	.word	RadioRead
	.word	RadioWriteBuffer
	.word	RadioReadBuffer
	.word	RadioSetMaxPayloadLength
	.word	RadioSetPublicNetwork
	.word	RadioGetWakeupTime
	.word	RadioIrqProcess
	.word	RadioRxBoosted
	.word	RadioSetRxDutyCycle
	.global	FskBandwidths
	.align	2
	.type	FskBandwidths, %object
	.size	FskBandwidths, 176
FskBandwidths:
	.word	4800
	.byte	31
	.space	3
	.word	5800
	.byte	23
	.space	3
	.word	7300
	.byte	15
	.space	3
	.word	9700
	.byte	30
	.space	3
	.word	11700
	.byte	22
	.space	3
	.word	14600
	.byte	14
	.space	3
	.word	19500
	.byte	29
	.space	3
	.word	23400
	.byte	21
	.space	3
	.word	29300
	.byte	13
	.space	3
	.word	39000
	.byte	28
	.space	3
	.word	46900
	.byte	20
	.space	3
	.word	58600
	.byte	12
	.space	3
	.word	78200
	.byte	27
	.space	3
	.word	93800
	.byte	19
	.space	3
	.word	117300
	.byte	11
	.space	3
	.word	156200
	.byte	26
	.space	3
	.word	187200
	.byte	18
	.space	3
	.word	234300
	.byte	10
	.space	3
	.word	312000
	.byte	25
	.space	3
	.word	373600
	.byte	17
	.space	3
	.word	467000
	.byte	9
	.space	3
	.word	500000
	.byte	0
	.space	3
	.global	Bandwidths
	.align	2
	.type	Bandwidths, %object
	.size	Bandwidths, 12
Bandwidths:
	.word	4
	.word	5
	.word	6
	.global	MaxPayloadLength
	.data
	.type	MaxPayloadLength, %object
	.size	MaxPayloadLength, 1
MaxPayloadLength:
	.byte	-1
	.global	TxTimeout
	.bss
	.align	2
	.type	TxTimeout, %object
	.size	TxTimeout, 4
TxTimeout:
	.space	4
	.global	RxTimeout
	.align	2
	.type	RxTimeout, %object
	.size	RxTimeout, 4
RxTimeout:
	.space	4
	.global	RxContinuous
	.type	RxContinuous, %object
	.size	RxContinuous, 1
RxContinuous:
	.space	1
	.comm	RadioPktStatus,20,4
	.comm	RadioRxPayload,255,4
	.global	IrqFired
	.type	IrqFired, %object
	.size	IrqFired, 1
IrqFired:
	.space	1
	.local	RadioPublicNetwork
	.comm	RadioPublicNetwork,2,4
	.local	RadioEvents
	.comm	RadioEvents,4,4
	.comm	SX126x,368,4
	.comm	TxTimeoutTimer,24,4
	.comm	RxTimeoutTimer,24,4
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioGetFskBandwidthRegValue, %function
RadioGetFskBandwidthRegValue:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L2
	mov	r3, #31
	b	.L3
.L2:
	mov	r3, #0
	strb	r3, [fp, #-5]
	b	.L4
.L6:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, .L8
	ldr	r3, [r2, r3, lsl #3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcc	.L5
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	add	r3, r3, #1
	ldr	r2, .L8
	ldr	r3, [r2, r3, lsl #3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcs	.L5
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	add	r3, r3, #1
	ldr	r2, .L8
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	b	.L3
.L5:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-5]
.L4:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #20
	bls	.L6
.L7:
	b	.L7
.L3:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L9:
	.align	2
.L8:
	.word	FskBandwidths
	.size	RadioGetFskBandwidthRegValue, .-RadioGetFskBandwidthRegValue
	.align	2
	.global	RadioInit
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioInit, %function
RadioInit:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r2, .L11
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	ldr	r0, .L11+4
	bl	SX126xInit
	mov	r0, #0
	bl	SX126xSetStandby
	mov	r0, #1
	bl	SX126xSetRegulatorMode
	mov	r1, #0
	mov	r0, #0
	bl	SX126xSetBufferBaseAddress
	mov	r1, #4
	mov	r0, #0
	bl	SX126xSetTxParams
	mov	r3, #0
	mov	r2, #0
	ldr	r1, .L11+8
	ldr	r0, .L11+8
	bl	SX126xSetDioIrqParams
	ldr	r1, .L11+12
	ldr	r0, .L11+16
	bl	TimerInit
	ldr	r1, .L11+20
	ldr	r0, .L11+24
	bl	TimerInit
	ldr	r3, .L11+28
	mov	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	RadioEvents
	.word	RadioOnDioIrq
	.word	65535
	.word	RadioOnTxTimeoutIrq
	.word	TxTimeoutTimer
	.word	RadioOnRxTimeoutIrq
	.word	RxTimeoutTimer
	.word	IrqFired
	.size	RadioInit, .-RadioInit
	.align	2
	.global	RadioGetStatus
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioGetStatus, %function
RadioGetStatus:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	SX126xGetOperatingMode
	mov	r3, r0
	cmp	r3, #7
	beq	.L14
	cmp	r3, #7
	bhi	.L15
	cmp	r3, #4
	beq	.L16
	cmp	r3, #5
	beq	.L17
	b	.L15
.L16:
	mov	r3, #2
	b	.L18
.L17:
	mov	r3, #1
	b	.L18
.L14:
	mov	r3, #3
	b	.L18
.L15:
	mov	r3, #0
.L18:
	mov	r0, r3
	pop	{fp, pc}
	.size	RadioGetStatus, .-RadioGetStatus
	.align	2
	.global	RadioSetModem
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetModem, %function
RadioSetModem:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	beq	.L20
	mov	r0, #0
	bl	SX126xSetPacketType
	ldr	r3, .L24
	mov	r2, #0
	strb	r2, [r3, #1]
	b	.L21
.L20:
	mov	r0, #1
	bl	SX126xSetPacketType
	ldr	r3, .L24
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldr	r3, .L24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L23
	ldr	r3, .L24
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L24
	strb	r2, [r3, #1]
	ldr	r3, .L24
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r0, r3
	bl	RadioSetPublicNetwork
.L23:
	nop
.L21:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L25:
	.align	2
.L24:
	.word	RadioPublicNetwork
	.size	RadioSetModem, .-RadioSetModem
	.align	2
	.global	RadioSetChannel
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetChannel, %function
RadioSetChannel:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	SX126xSetRfFrequency
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioSetChannel, .-RadioSetChannel
	.align	2
	.global	RadioIsChannelFree
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioIsChannelFree, %function
RadioIsChannelFree:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r3, [fp, #-28]
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-22]	@ movhi
	mov	r3, #1
	strb	r3, [fp, #-11]
	mov	r3, #0
	strh	r3, [fp, #-10]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r0, #0
	bl	RadioSetModem
	ldr	r0, [fp, #-16]
	bl	RadioSetChannel
	mov	r3, #1
	str	r3, [sp, #36]
	mov	r3, #0
	str	r3, [sp, #32]
	mov	r3, #0
	str	r3, [sp, #28]
	mov	r3, #0
	str	r3, [sp, #24]
	mov	r3, #0
	str	r3, [sp, #20]
	mov	r3, #0
	str	r3, [sp, #16]
	mov	r3, #0
	str	r3, [sp, #12]
	mov	r3, #0
	str	r3, [sp, #8]
	mov	r3, #3
	str	r3, [sp, #4]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #600
	ldr	r1, [fp, #-20]
	mov	r0, #0
	bl	RadioSetRxConfig
	mov	r0, #0
	bl	RadioRx
	mov	r0, #1
	bl	DelayMs
	bl	TimerGetCurrentTime
	str	r0, [fp, #-8]
	b	.L28
.L30:
	mov	r0, #0
	bl	RadioRssi
	mov	r3, r0
	strh	r3, [fp, #-10]	@ movhi
	ldrsh	r2, [fp, #-10]
	ldrsh	r3, [fp, #-22]
	cmp	r2, r3
	ble	.L28
	mov	r3, #0
	strb	r3, [fp, #-11]
	b	.L29
.L28:
	ldr	r0, [fp, #-8]
	bl	TimerGetElapsedTime
	mov	r2, r0
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bhi	.L30
.L29:
	bl	RadioSleep
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioIsChannelFree, .-RadioIsChannelFree
	.align	2
	.global	RadioRandom
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioRandom, %function
RadioRandom:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r0, #1
	bl	RadioSetModem
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	mov	r0, #0
	bl	SX126xSetDioIrqParams
	bl	SX126xGetRandom
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioRandom, .-RadioRandom
	.global	__aeabi_uidiv
	.section	.rodata
	.align	2
.LC0:
	.byte	-63
	.byte	-108
	.byte	-63
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.byte	0
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	RadioSetRxConfig
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetRxConfig, %function
RadioSetRxConfig:
	@ args = 40, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	strb	r3, [fp, #-33]
	ldr	r3, .L57
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, .L57+4
	ldrb	r3, [fp, #40]
	strb	r3, [r2]
	ldrb	r3, [fp, #40]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L35
	mov	r3, #0
	strh	r3, [fp, #12]	@ movhi
.L35:
	ldrb	r3, [fp, #16]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L36
	ldr	r2, .L57+8
	ldrb	r3, [fp, #20]
	strb	r3, [r2]
	b	.L37
.L36:
	ldr	r3, .L57+8
	mvn	r2, #0
	strb	r2, [r3]
.L37:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L38
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	beq	.L39
	b	.L56
.L38:
	mov	r0, #0
	bl	SX126xSetStopRxTimerOnPreambleDetect
	ldr	r3, .L57+12
	mov	r2, #0
	str	r2, [r3, #332]
	ldr	r2, .L57+12
	ldr	r3, [fp, #-32]
	str	r3, [r2, #336]
	ldr	r3, .L57+12
	mov	r2, #11
	str	r2, [r3, #344]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	RadioGetFskBandwidthRegValue
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L57+12
	strb	r2, [r3, #348]
	ldr	r3, .L57+12
	mov	r2, #0
	str	r2, [r3, #256]
	ldrh	r3, [fp, #8]	@ movhi
	lsl	r3, r3, #3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L57+12
	add	r3, r3, #260
	strh	r2, [r3]	@ movhi
	ldr	r3, .L57+12
	mov	r2, #4
	str	r2, [r3, #264]
	ldr	r3, .L57+12
	mov	r2, #24
	strb	r2, [r3, #268]
	ldr	r3, .L57+12
	mov	r2, #0
	str	r2, [r3, #272]
	ldrb	r3, [fp, #16]
	eor	r3, r3, #1
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L57+12
	str	r2, [r3, #276]
	ldr	r3, .L57+8
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L57+12
	strb	r2, [r3, #280]
	ldrb	r3, [fp, #24]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L41
	ldr	r3, .L57+12
	mov	r2, #242
	str	r2, [r3, #284]
	b	.L42
.L41:
	ldr	r3, .L57+12
	mov	r2, #1
	str	r2, [r3, #284]
.L42:
	ldr	r3, .L57+12
	mov	r2, #1
	str	r2, [r3, #288]
	bl	RadioStandby
	ldr	r3, .L57+12
	ldr	r3, [r3, #332]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	RadioSetModem
	ldr	r0, .L57+16
	bl	SX126xSetModulationParams
	ldr	r0, .L57+20
	bl	SX126xSetPacketParams
	ldr	r2, .L57+24
	sub	r3, fp, #16
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	sub	r3, fp, #16
	mov	r0, r3
	bl	SX126xSetSyncWord
	ldr	r0, .L57+28
	bl	SX126xSetWhiteningSeed
	ldrh	r2, [fp, #12]
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #6
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L57+32
	str	r2, [r3]
	b	.L40
.L39:
	mov	r0, #0
	bl	SX126xSetStopRxTimerOnPreambleDetect
	ldr	r3, .L57+12
	mov	r2, #1
	str	r2, [r3, #332]
	ldr	r2, .L57+12
	ldr	r3, [fp, #-32]
	str	r3, [r2, #352]
	ldr	r2, .L57+36
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r2, .L57+12
	str	r3, [r2, #356]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	ldr	r2, .L57+12
	str	r3, [r2, #360]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L44
	ldr	r3, [fp, #-32]
	cmp	r3, #11
	beq	.L45
	ldr	r3, [fp, #-32]
	cmp	r3, #12
	beq	.L45
.L44:
	ldr	r3, [fp, #-28]
	cmp	r3, #1
	bne	.L46
	ldr	r3, [fp, #-32]
	cmp	r3, #12
	bne	.L46
.L45:
	ldr	r3, .L57+12
	mov	r2, #1
	strb	r2, [r3, #364]
	b	.L47
.L46:
	ldr	r3, .L57+12
	mov	r2, #0
	strb	r2, [r3, #364]
.L47:
	ldr	r3, .L57+12
	mov	r2, #1
	str	r2, [r3, #256]
	ldr	r3, .L57+12
	ldr	r3, [r3, #352]
	cmp	r3, #5
	beq	.L48
	ldr	r3, .L57+12
	ldr	r3, [r3, #352]
	cmp	r3, #6
	bne	.L49
.L48:
	ldrh	r3, [fp, #8]
	cmp	r3, #11
	bhi	.L50
	ldr	r3, .L57+12
	add	r3, r3, #292
	mov	r2, #12
	strh	r2, [r3]	@ movhi
	b	.L52
.L50:
	ldr	r3, .L57+12
	add	r3, r3, #292
	ldrh	r2, [fp, #8]	@ movhi
	strh	r2, [r3]	@ movhi
	b	.L52
.L49:
	ldr	r3, .L57+12
	add	r3, r3, #292
	ldrh	r2, [fp, #8]	@ movhi
	strh	r2, [r3]	@ movhi
.L52:
	ldrb	r3, [fp, #16]	@ zero_extendqisi2
	ldr	r2, .L57+12
	str	r3, [r2, #296]
	ldr	r3, .L57+8
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L57+12
	strb	r2, [r3, #300]
	ldrb	r3, [fp, #24]	@ zero_extendqisi2
	ldr	r2, .L57+12
	str	r3, [r2, #304]
	ldrb	r3, [fp, #36]	@ zero_extendqisi2
	ldr	r2, .L57+12
	str	r3, [r2, #308]
	bl	RadioStandby
	ldr	r3, .L57+12
	ldr	r3, [r3, #332]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	RadioSetModem
	ldr	r0, .L57+16
	bl	SX126xSetModulationParams
	ldr	r0, .L57+20
	bl	SX126xSetPacketParams
	ldrh	r3, [fp, #12]	@ movhi
	and	r3, r3, #255
	mov	r0, r3
	bl	SX126xSetLoRaSymbNumTimeout
	ldr	r3, .L57+12
	ldr	r3, [r3, #308]
	cmp	r3, #1
	bne	.L53
	ldr	r0, .L57+40
	bl	SX126xReadRegister
	mov	r3, r0
	bic	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, .L57+40
	bl	SX126xWriteRegister
	b	.L54
.L53:
	ldr	r0, .L57+40
	bl	SX126xReadRegister
	mov	r3, r0
	orr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, .L57+40
	bl	SX126xWriteRegister
.L54:
	ldr	r3, .L57+32
	ldr	r2, .L57+44
	str	r2, [r3]
	nop
.L40:
.L56:
	nop
	ldr	r3, .L57
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L55
	bl	__stack_chk_fail
.L55:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L58:
	.align	2
.L57:
	.word	.LC1
	.word	RxContinuous
	.word	MaxPayloadLength
	.word	SX126x
	.word	SX126x+332
	.word	SX126x+256
	.word	.LC0
	.word	511
	.word	RxTimeout
	.word	Bandwidths
	.word	1846
	.word	65535
	.size	RadioSetRxConfig, .-RadioSetRxConfig
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	RadioSetTxConfig
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetTxConfig, %function
RadioSetTxConfig:
	@ args = 36, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, r1
	strb	r3, [fp, #-25]
	ldr	r3, .L78
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L60
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	beq	.L61
	b	.L62
.L60:
	ldr	r3, .L78+4
	mov	r2, #0
	str	r2, [r3, #332]
	ldr	r2, .L78+4
	ldr	r3, [fp, #4]
	str	r3, [r2, #336]
	ldr	r3, .L78+4
	mov	r2, #11
	str	r2, [r3, #344]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	RadioGetFskBandwidthRegValue
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L78+4
	strb	r2, [r3, #348]
	ldr	r2, .L78+4
	ldr	r3, [fp, #-32]
	str	r3, [r2, #340]
	ldr	r3, .L78+4
	mov	r2, #0
	str	r2, [r3, #256]
	ldrh	r3, [fp, #12]	@ movhi
	lsl	r3, r3, #3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L78+4
	add	r3, r3, #260
	strh	r2, [r3]	@ movhi
	ldr	r3, .L78+4
	mov	r2, #4
	str	r2, [r3, #264]
	ldr	r3, .L78+4
	mov	r2, #24
	strb	r2, [r3, #268]
	ldr	r3, .L78+4
	mov	r2, #0
	str	r2, [r3, #272]
	ldrb	r3, [fp, #16]
	eor	r3, r3, #1
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L78+4
	str	r2, [r3, #276]
	ldrb	r3, [fp, #20]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L63
	ldr	r3, .L78+4
	mov	r2, #242
	str	r2, [r3, #284]
	b	.L64
.L63:
	ldr	r3, .L78+4
	mov	r2, #1
	str	r2, [r3, #284]
.L64:
	ldr	r3, .L78+4
	mov	r2, #1
	str	r2, [r3, #288]
	bl	RadioStandby
	ldr	r3, .L78+4
	ldr	r3, [r3, #332]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	RadioSetModem
	ldr	r0, .L78+8
	bl	SX126xSetModulationParams
	ldr	r0, .L78+12
	bl	SX126xSetPacketParams
	ldr	r2, .L78+16
	sub	r3, fp, #16
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	sub	r3, fp, #16
	mov	r0, r3
	bl	SX126xSetSyncWord
	ldr	r0, .L78+20
	bl	SX126xSetWhiteningSeed
	b	.L62
.L61:
	ldr	r3, .L78+4
	mov	r2, #1
	str	r2, [r3, #332]
	ldr	r2, .L78+4
	ldr	r3, [fp, #4]
	str	r3, [r2, #352]
	ldr	r2, .L78+24
	ldr	r3, [fp, #-36]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r2, .L78+4
	str	r3, [r2, #356]
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	ldr	r2, .L78+4
	str	r3, [r2, #360]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L66
	ldr	r3, [fp, #4]
	cmp	r3, #11
	beq	.L67
	ldr	r3, [fp, #4]
	cmp	r3, #12
	beq	.L67
.L66:
	ldr	r3, [fp, #-36]
	cmp	r3, #1
	bne	.L68
	ldr	r3, [fp, #4]
	cmp	r3, #12
	bne	.L68
.L67:
	ldr	r3, .L78+4
	mov	r2, #1
	strb	r2, [r3, #364]
	b	.L69
.L68:
	ldr	r3, .L78+4
	mov	r2, #0
	strb	r2, [r3, #364]
.L69:
	ldr	r3, .L78+4
	mov	r2, #1
	str	r2, [r3, #256]
	ldr	r3, .L78+4
	ldr	r3, [r3, #352]
	cmp	r3, #5
	beq	.L70
	ldr	r3, .L78+4
	ldr	r3, [r3, #352]
	cmp	r3, #6
	bne	.L71
.L70:
	ldrh	r3, [fp, #12]
	cmp	r3, #11
	bhi	.L72
	ldr	r3, .L78+4
	add	r3, r3, #292
	mov	r2, #12
	strh	r2, [r3]	@ movhi
	b	.L74
.L72:
	ldr	r3, .L78+4
	add	r3, r3, #292
	ldrh	r2, [fp, #12]	@ movhi
	strh	r2, [r3]	@ movhi
	b	.L74
.L71:
	ldr	r3, .L78+4
	add	r3, r3, #292
	ldrh	r2, [fp, #12]	@ movhi
	strh	r2, [r3]	@ movhi
.L74:
	ldrb	r3, [fp, #16]	@ zero_extendqisi2
	ldr	r2, .L78+4
	str	r3, [r2, #296]
	ldr	r3, .L78+28
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L78+4
	strb	r2, [r3, #300]
	ldrb	r3, [fp, #20]	@ zero_extendqisi2
	ldr	r2, .L78+4
	str	r3, [r2, #304]
	ldrb	r3, [fp, #32]	@ zero_extendqisi2
	ldr	r2, .L78+4
	str	r3, [r2, #308]
	bl	RadioStandby
	ldr	r3, .L78+4
	ldr	r3, [r3, #332]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	RadioSetModem
	ldr	r0, .L78+8
	bl	SX126xSetModulationParams
	ldr	r0, .L78+12
	bl	SX126xSetPacketParams
	nop
.L62:
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	bne	.L75
	ldr	r3, .L78+4
	ldr	r3, [r3, #356]
	cmp	r3, #6
	bne	.L75
	ldr	r0, .L78+32
	bl	SX126xReadRegister
	mov	r3, r0
	bic	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, .L78+32
	bl	SX126xWriteRegister
	b	.L76
.L75:
	ldr	r0, .L78+32
	bl	SX126xReadRegister
	mov	r3, r0
	orr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, .L78+32
	bl	SX126xWriteRegister
.L76:
	ldrsb	r3, [fp, #-25]
	mov	r0, r3
	bl	SX126xSetRfTxPower
	ldr	r2, .L78+36
	ldr	r3, [fp, #36]
	str	r3, [r2]
	nop
	ldr	r3, .L78
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L77
	bl	__stack_chk_fail
.L77:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L79:
	.align	2
.L78:
	.word	.LC2
	.word	SX126x
	.word	SX126x+332
	.word	SX126x+256
	.word	.LC0
	.word	511
	.word	Bandwidths
	.word	MaxPayloadLength
	.word	2185
	.word	TxTimeout
	.size	RadioSetTxConfig, .-RadioSetTxConfig
	.align	2
	.global	RadioCheckRfFrequency
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioCheckRfFrequency, %function
RadioCheckRfFrequency:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	mov	r3, #1
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	RadioCheckRfFrequency, .-RadioCheckRfFrequency
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioGetLoRaBandwidthInHz, %function
RadioGetLoRaBandwidthInHz:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #10
	ldrls	pc, [pc, r3, asl #2]
	b	.L83
.L85:
	.word	.L94
	.word	.L93
	.word	.L92
	.word	.L91
	.word	.L90
	.word	.L89
	.word	.L88
	.word	.L83
	.word	.L87
	.word	.L86
	.word	.L84
.L94:
	ldr	r3, .L96
	str	r3, [fp, #-8]
	b	.L83
.L87:
	ldr	r3, .L96+4
	str	r3, [fp, #-8]
	b	.L83
.L93:
	ldr	r3, .L96+8
	str	r3, [fp, #-8]
	b	.L83
.L86:
	ldr	r3, .L96+12
	str	r3, [fp, #-8]
	b	.L83
.L92:
	ldr	r3, .L96+16
	str	r3, [fp, #-8]
	b	.L83
.L84:
	ldr	r3, .L96+20
	str	r3, [fp, #-8]
	b	.L83
.L91:
	ldr	r3, .L96+24
	str	r3, [fp, #-8]
	b	.L83
.L90:
	ldr	r3, .L96+28
	str	r3, [fp, #-8]
	b	.L83
.L89:
	ldr	r3, .L96+32
	str	r3, [fp, #-8]
	b	.L83
.L88:
	ldr	r3, .L96+36
	str	r3, [fp, #-8]
	nop
.L83:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L97:
	.align	2
.L96:
	.word	7812
	.word	10417
	.word	15625
	.word	20833
	.word	31250
	.word	41667
	.word	62500
	.word	125000
	.word	250000
	.word	500000
	.size	RadioGetLoRaBandwidthInHz, .-RadioGetLoRaBandwidthInHz
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioGetGfskTimeOnAirNumerator, %function
RadioGetGfskTimeOnAirNumerator:
	@ args = 8, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r0, r1
	mov	r1, r2
	mov	r2, r3
	mov	r3, r0
	strb	r3, [fp, #-17]
	mov	r3, r1	@ movhi
	strh	r3, [fp, #-20]	@ movhi
	mov	r3, r2
	strb	r3, [fp, #-18]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #3
	strb	r3, [fp, #-9]
	ldrh	r3, [fp, #-20]
	lsl	r3, r3, #3
	ldrb	r2, [fp, #-18]
	eor	r2, r2, #1
	and	r2, r2, #255
	cmp	r2, #0
	beq	.L99
	mov	r2, #8
	b	.L100
.L99:
	mov	r2, #0
.L100:
	add	r2, r2, r3
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #3
	add	r2, r2, r3
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	ldr	r1, [fp, #-8]
	cmp	r1, #0
	movne	r1, #1
	moveq	r1, #0
	and	r1, r1, #255
	add	r3, r3, r1
	ldrb	r1, [fp, #8]	@ zero_extendqisi2
	cmp	r1, #0
	beq	.L101
	mov	r1, #2
	b	.L102
.L101:
	mov	r1, #0
.L102:
	add	r3, r1, r3
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	RadioGetGfskTimeOnAirNumerator, .-RadioGetGfskTimeOnAirNumerator
	.global	__aeabi_idiv
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioGetLoRaTimeOnAirNumerator, %function
RadioGetLoRaTimeOnAirNumerator:
	@ args = 12, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r1, r2
	mov	r2, r3
	mov	r3, r1
	strb	r3, [fp, #-37]
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-40]	@ movhi
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	add	r3, r3, #4
	str	r3, [fp, #-8]
	mov	r3, #0
	strb	r3, [fp, #-21]
	ldr	r3, [fp, #-36]
	cmp	r3, #5
	beq	.L105
	ldr	r3, [fp, #-36]
	cmp	r3, #6
	bne	.L106
.L105:
	ldrh	r3, [fp, #-40]
	cmp	r3, #11
	bhi	.L106
	mov	r3, #12
	strh	r3, [fp, #-40]	@ movhi
.L106:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L107
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	beq	.L108
	ldr	r3, [fp, #-36]
	cmp	r3, #12
	beq	.L108
.L107:
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	bne	.L109
	ldr	r3, [fp, #-36]
	cmp	r3, #12
	bne	.L109
.L108:
	mov	r3, #1
	strb	r3, [fp, #-21]
.L109:
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldrb	r2, [fp, #12]	@ zero_extendqisi2
	cmp	r2, #0
	beq	.L110
	mov	r2, #16
	b	.L111
.L110:
	mov	r2, #0
.L111:
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	sub	r3, r2, r3
	ldrb	r2, [fp, #4]	@ zero_extendqisi2
	cmp	r2, #0
	beq	.L112
	mov	r2, #0
	b	.L113
.L112:
	mov	r2, #20
.L113:
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r3, #6
	bhi	.L114
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	str	r3, [fp, #-20]
	b	.L115
.L114:
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L116
	ldr	r3, [fp, #-36]
	sub	r3, r3, #2
	lsl	r3, r3, #2
	str	r3, [fp, #-20]
	b	.L115
.L116:
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	str	r3, [fp, #-20]
.L115:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L117
	mov	r3, #0
	str	r3, [fp, #-16]
.L117:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-40]
	add	r3, r2, r3
	add	r3, r3, #12
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-36]
	cmp	r3, #6
	bhi	.L118
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L118:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r2, r3, #1
	ldr	r3, [fp, #-36]
	sub	r3, r3, #2
	lsl	r3, r2, r3
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioGetLoRaTimeOnAirNumerator, .-RadioGetLoRaTimeOnAirNumerator
	.align	2
	.global	RadioTimeOnAir
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioTimeOnAir, %function
RadioTimeOnAir:
	@ args = 16, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	strb	r3, [fp, #-25]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L121
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	beq	.L122
	b	.L123
.L121:
	ldrb	r0, [fp, #8]	@ zero_extendqisi2
	ldrh	r2, [fp, #4]
	ldrb	r1, [fp, #-25]	@ zero_extendqisi2
	ldrb	r3, [fp, #16]	@ zero_extendqisi2
	str	r3, [sp, #4]
	ldrb	r3, [fp, #12]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-24]
	bl	RadioGetGfskTimeOnAirNumerator
	mov	r2, r0
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	b	.L123
.L122:
	ldrh	r1, [fp, #4]
	ldrb	r2, [fp, #-25]	@ zero_extendqisi2
	ldrb	r3, [fp, #16]	@ zero_extendqisi2
	str	r3, [sp, #8]
	ldrb	r3, [fp, #12]	@ zero_extendqisi2
	str	r3, [sp, #4]
	ldrb	r3, [fp, #8]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-20]
	bl	RadioGetLoRaTimeOnAirNumerator
	mov	r2, r0
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r2, .L125
	ldr	r3, [fp, #-20]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	bl	RadioGetLoRaBandwidthInHz
	str	r0, [fp, #-8]
	nop
.L123:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-8]
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L126:
	.align	2
.L125:
	.word	Bandwidths
	.size	RadioTimeOnAir, .-RadioTimeOnAir
	.align	2
	.global	RadioSend
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSend, %function
RadioSend:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, r1
	strb	r3, [fp, #-9]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, .L130
	ldr	r0, .L130
	bl	SX126xSetDioIrqParams
	bl	SX126xGetPacketType
	mov	r3, r0
	cmp	r3, #1
	bne	.L128
	ldr	r2, .L130+4
	ldrb	r3, [fp, #-9]
	strb	r3, [r2, #300]
	b	.L129
.L128:
	ldr	r2, .L130+4
	ldrb	r3, [fp, #-9]
	strb	r3, [r2, #280]
.L129:
	ldr	r0, .L130+8
	bl	SX126xSetPacketParams
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	SX126xSendPayload
	ldr	r3, .L130+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L130+16
	bl	TimerSetValue
	ldr	r0, .L130+16
	bl	TimerStart
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L131:
	.align	2
.L130:
	.word	513
	.word	SX126x
	.word	SX126x+256
	.word	TxTimeout
	.word	TxTimeoutTimer
	.size	RadioSend, .-RadioSend
	.align	2
	.global	RadioSleep
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSleep, %function
RadioSleep:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	strb	r3, [fp, #-8]
	ldrb	r3, [fp, #-8]
	orr	r3, r3, #4
	strb	r3, [fp, #-8]
	ldrb	r0, [fp, #-8]
	bl	SX126xSetSleep
	mov	r0, #2
	bl	DelayMs
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioSleep, .-RadioSleep
	.align	2
	.global	RadioStandby
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioStandby, %function
RadioStandby:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #0
	bl	SX126xSetStandby
	nop
	pop	{fp, pc}
	.size	RadioStandby, .-RadioStandby
	.align	2
	.global	RadioRx
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioRx, %function
RadioRx:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, .L139
	ldr	r0, .L139
	bl	SX126xSetDioIrqParams
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L135
	ldr	r1, [fp, #-8]
	ldr	r0, .L139+4
	bl	TimerSetValue
	ldr	r0, .L139+4
	bl	TimerStart
.L135:
	ldr	r3, .L139+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L136
	mvn	r0, #-16777216
	bl	SX126xSetRx
	b	.L138
.L136:
	ldr	r3, .L139+12
	ldr	r3, [r3]
	lsl	r3, r3, #6
	mov	r0, r3
	bl	SX126xSetRx
.L138:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L140:
	.align	2
.L139:
	.word	65535
	.word	RxTimeoutTimer
	.word	RxContinuous
	.word	RxTimeout
	.size	RadioRx, .-RadioRx
	.align	2
	.global	RadioRxBoosted
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioRxBoosted, %function
RadioRxBoosted:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, .L146
	ldr	r0, .L146
	bl	SX126xSetDioIrqParams
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L142
	ldr	r1, [fp, #-8]
	ldr	r0, .L146+4
	bl	TimerSetValue
	ldr	r0, .L146+4
	bl	TimerStart
.L142:
	ldr	r3, .L146+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L143
	mvn	r0, #-16777216
	bl	SX126xSetRxBoosted
	b	.L145
.L143:
	ldr	r3, .L146+12
	ldr	r3, [r3]
	lsl	r3, r3, #6
	mov	r0, r3
	bl	SX126xSetRxBoosted
.L145:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L147:
	.align	2
.L146:
	.word	65535
	.word	RxTimeoutTimer
	.word	RxContinuous
	.word	RxTimeout
	.size	RadioRxBoosted, .-RadioRxBoosted
	.align	2
	.global	RadioSetRxDutyCycle
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetRxDutyCycle, %function
RadioSetRxDutyCycle:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	SX126xSetRxDutyCycle
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioSetRxDutyCycle, .-RadioSetRxDutyCycle
	.align	2
	.global	RadioStartCad
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioStartCad, %function
RadioStartCad:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #0
	mov	r2, #0
	mov	r1, #384
	mov	r0, #384
	bl	SX126xSetDioIrqParams
	bl	SX126xSetCad
	nop
	pop	{fp, pc}
	.size	RadioStartCad, .-RadioStartCad
	.align	2
	.global	RadioSetTxContinuousWave
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetTxContinuousWave, %function
RadioSetTxContinuousWave:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, r1
	strb	r3, [fp, #-17]
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-20]	@ movhi
	ldrh	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	SX126xSetRfFrequency
	ldrsb	r3, [fp, #-17]
	mov	r0, r3
	bl	SX126xSetRfTxPower
	bl	SX126xSetTxContinuousWave
	ldr	r1, [fp, #-8]
	ldr	r0, .L151
	bl	TimerSetValue
	ldr	r0, .L151
	bl	TimerStart
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L152:
	.align	2
.L151:
	.word	TxTimeoutTimer
	.size	RadioSetTxContinuousWave, .-RadioSetTxContinuousWave
	.align	2
	.global	RadioRssi
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioRssi, %function
RadioRssi:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	bl	SX126xGetRssiInst
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioRssi, .-RadioRssi
	.align	2
	.global	RadioWrite
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioWrite, %function
RadioWrite:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, r1
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	SX126xWriteRegister
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioWrite, .-RadioWrite
	.align	2
	.global	RadioRead
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioRead, %function
RadioRead:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	SX126xReadRegister
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioRead, .-RadioRead
	.align	2
	.global	RadioWriteBuffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioWriteBuffer, %function
RadioWriteBuffer:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r3, r2
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r0, r3, #16
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r1, [fp, #-12]
	bl	SX126xWriteRegisters
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioWriteBuffer, .-RadioWriteBuffer
	.align	2
	.global	RadioReadBuffer
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioReadBuffer, %function
RadioReadBuffer:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r3, r2
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r0, r3, #16
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r1, [fp, #-12]
	bl	SX126xReadRegisters
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RadioReadBuffer, .-RadioReadBuffer
	.align	2
	.global	RadioSetMaxPayloadLength
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetMaxPayloadLength, %function
RadioSetMaxPayloadLength:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, r1
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L161
	ldr	r2, .L164
	ldrb	r3, [fp, #-9]
	strb	r3, [r2]
	ldr	r3, .L164
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L164+4
	strb	r2, [r3, #300]
	ldr	r0, .L164+8
	bl	SX126xSetPacketParams
	b	.L163
.L161:
	ldr	r3, .L164+4
	ldr	r3, [r3, #276]
	cmp	r3, #1
	bne	.L163
	ldr	r2, .L164
	ldrb	r3, [fp, #-9]
	strb	r3, [r2]
	ldr	r3, .L164
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L164+4
	strb	r2, [r3, #280]
	ldr	r0, .L164+8
	bl	SX126xSetPacketParams
.L163:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L165:
	.align	2
.L164:
	.word	MaxPayloadLength
	.word	SX126x
	.word	SX126x+256
	.size	RadioSetMaxPayloadLength, .-RadioSetMaxPayloadLength
	.align	2
	.global	RadioSetPublicNetwork
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioSetPublicNetwork, %function
RadioSetPublicNetwork:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldr	r2, .L170
	ldrb	r3, [fp, #-5]
	strb	r3, [r2]
	ldr	r3, .L170
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L170
	strb	r2, [r3, #1]
	mov	r0, #1
	bl	RadioSetModem
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L167
	mov	r1, #52
	mov	r0, #1856
	bl	SX126xWriteRegister
	mov	r1, #68
	ldr	r0, .L170+4
	bl	SX126xWriteRegister
	b	.L169
.L167:
	mov	r1, #20
	mov	r0, #1856
	bl	SX126xWriteRegister
	mov	r1, #36
	ldr	r0, .L170+4
	bl	SX126xWriteRegister
.L169:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L171:
	.align	2
.L170:
	.word	RadioPublicNetwork
	.word	1857
	.size	RadioSetPublicNetwork, .-RadioSetPublicNetwork
	.align	2
	.global	RadioGetWakeupTime
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioGetWakeupTime, %function
RadioGetWakeupTime:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	SX126xGetBoardTcxoWakeupTime
	mov	r3, r0
	add	r3, r3, #3
	mov	r0, r3
	pop	{fp, pc}
	.size	RadioGetWakeupTime, .-RadioGetWakeupTime
	.align	2
	.global	RadioOnTxTimeoutIrq
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioOnTxTimeoutIrq, %function
RadioOnTxTimeoutIrq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L177
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L176
	ldr	r3, .L177
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L176
	ldr	r3, .L177
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	blx	r3
	ldr	r0, .L177+4
	bl	udrv_system_event_produce
	ldr	r3, .L177+8
	mov	r2, #0
	strb	r2, [r3]
.L176:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L178:
	.align	2
.L177:
	.word	RadioEvents
	.word	rui_lora_event
	.word	udrv_powersave_in_sleep
	.size	RadioOnTxTimeoutIrq, .-RadioOnTxTimeoutIrq
	.align	2
	.global	RadioOnRxTimeoutIrq
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioOnRxTimeoutIrq, %function
RadioOnRxTimeoutIrq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L182
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L181
	ldr	r3, .L182
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L181
	ldr	r3, .L182
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	blx	r3
	ldr	r0, .L182+4
	bl	udrv_system_event_produce
	ldr	r3, .L182+8
	mov	r2, #0
	strb	r2, [r3]
.L181:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L183:
	.align	2
.L182:
	.word	RadioEvents
	.word	rui_lora_event
	.word	udrv_powersave_in_sleep
	.size	RadioOnRxTimeoutIrq, .-RadioOnRxTimeoutIrq
	.align	2
	.global	RadioOnDioIrq
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioOnDioIrq, %function
RadioOnDioIrq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L185
	mov	r2, #1
	strb	r2, [r3]
	ldr	r0, .L185+4
	bl	udrv_system_event_produce
	ldr	r3, .L185+8
	mov	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L186:
	.align	2
.L185:
	.word	IrqFired
	.word	rui_lora_event
	.word	udrv_powersave_in_sleep
	.size	RadioOnDioIrq, .-RadioOnDioIrq
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	RadioIrqProcess
	.syntax unified
	.arm
	.fpu softvfp
	.type	RadioIrqProcess, %function
RadioIrqProcess:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	ldr	r3, .L202
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L202+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L201
	sub	r3, fp, #20
	mov	r0, r3
	bl	BoardCriticalSectionBegin
	ldr	r3, .L202+4
	mov	r2, #0
	strb	r2, [r3]
	sub	r3, fp, #20
	mov	r0, r3
	bl	BoardCriticalSectionEnd
	bl	SX126xGetIrqStatus
	mov	r3, r0
	strh	r3, [fp, #-22]	@ movhi
	ldrh	r3, [fp, #-22]
	mov	r0, r3
	bl	SX126xClearIrqStatus
	ldrh	r3, [fp, #-22]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L189
	ldr	r0, .L202+8
	bl	TimerStop
	mov	r0, #1
	bl	SX126xSetOperatingMode
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L189
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L189
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	blx	r3
.L189:
	ldrh	r3, [fp, #-22]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L190
	ldrh	r3, [fp, #-22]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L191
	ldr	r3, .L202+16
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L192
	mov	r0, #1
	bl	SX126xSetOperatingMode
.L192:
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L190
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L190
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	blx	r3
	b	.L190
.L191:
	ldr	r0, .L202+20
	bl	TimerStop
	ldr	r3, .L202+16
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L193
	mov	r0, #1
	bl	SX126xSetOperatingMode
	mov	r1, #0
	ldr	r0, .L202+24
	bl	SX126xWriteRegister
	ldr	r0, .L202+28
	bl	SX126xReadRegister
	mov	r3, r0
	orr	r3, r3, #2
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, .L202+28
	bl	SX126xWriteRegister
.L193:
	sub	r3, fp, #23
	mov	r2, #255
	mov	r1, r3
	ldr	r0, .L202+32
	bl	SX126xGetPayload
	ldr	r0, .L202+36
	bl	SX126xGetPacketStatus
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L190
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L190
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r4, [r3, #8]
	ldrb	r3, [fp, #-23]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r1, r3, #16
	ldr	r3, .L202+36
	ldrsb	r3, [r3, #12]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L202+36
	ldrsb	r3, [r3, #13]
	ldr	r0, .L202+32
	blx	r4
.L190:
	ldrh	r3, [fp, #-22]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L195
	mov	r0, #1
	bl	SX126xSetOperatingMode
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L195
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	beq	.L195
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #24]
	ldrh	r2, [fp, #-22]
	and	r2, r2, #256
	cmp	r2, #0
	movne	r2, #1
	moveq	r2, #0
	and	r2, r2, #255
	mov	r0, r2
	blx	r3
.L195:
	ldrh	r3, [fp, #-22]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L196
	bl	SX126xGetOperatingMode
	mov	r3, r0
	cmp	r3, #4
	bne	.L197
	ldr	r0, .L202+8
	bl	TimerStop
	mov	r0, #1
	bl	SX126xSetOperatingMode
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L196
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L196
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	blx	r3
	b	.L196
.L197:
	bl	SX126xGetOperatingMode
	mov	r3, r0
	cmp	r3, #5
	bne	.L196
	ldr	r0, .L202+20
	bl	TimerStop
	mov	r0, #1
	bl	SX126xSetOperatingMode
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L196
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L196
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	blx	r3
.L196:
	ldrh	r3, [fp, #-22]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L201
	ldr	r0, .L202+20
	bl	TimerStop
	ldr	r3, .L202+16
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L199
	mov	r0, #1
	bl	SX126xSetOperatingMode
.L199:
	ldr	r3, .L202+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L201
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L201
	ldr	r3, .L202+12
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	blx	r3
.L201:
	nop
	ldr	r3, .L202
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L200
	bl	__stack_chk_fail
.L200:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L203:
	.align	2
.L202:
	.word	.LC3
	.word	IrqFired
	.word	TxTimeoutTimer
	.word	RadioEvents
	.word	RxContinuous
	.word	RxTimeoutTimer
	.word	2306
	.word	2372
	.word	RadioRxPayload
	.word	RadioPktStatus
	.size	RadioIrqProcess, .-RadioIrqProcess
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
