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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x248
mov rbx, r9
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov eax, dword [rdx + 0x40]
cmp eax, 2
jne 0x1400e9bdf
mov dword [rdi + 0x40], 2
cmp dword [rdi], 0
je 0x1400e9c91
mov byte [rsi], 3
jmp 0x1400ea0ae
movzx ecx, byte [rdi + 0x78]
movups xmm0, xmmword [rdi + 0x44]
movups xmm1, xmmword [rdi + 0x54]
movups xmm2, xmmword [rdi + 0x64]
mov edx, dword [rdi + 0x74]
mov dword [rsp + 0x90], eax
movups xmmword [rsp + 0x94], xmm0
movups xmmword [rsp + 0xa4], xmm1
movups xmmword [rsp + 0xb4], xmm2
mov dword [rsp + 0xc4], edx
mov byte [rsp + 0xc8], cl
lea r15, [rbx + 0x48]
cmp dword [rbx + 0x100], 4
jne 0x1400e9c47
mov rax, qword [rbx + 0x158]
sub rax, qword [rbx + 0x150]
cmp rax, qword [rbx + 0x178]
jae 0x1400e9d26
mov rcx, r15
mov rdx, r14
call fcn.140116740
test rax, rax
jne 0x1400e9d0f
test rdx, rdx
jne 0x1400e9d0f
cmp dword [rbx + 0x100], 4
jne 0x1400ea0ab
mov rax, qword [rbx + 0x158]
sub rax, qword [rbx + 0x150]
cmp rax, qword [rbx + 0x178]
jb 0x1400ea0ab
jmp 0x1400e9d26
lea rax, [rdi + 4]
mov qword [rsp + 0x88], rax
lea r15, [rbx + 0x48]
cmp dword [rbx + 0x100], 4
jne 0x1400e9cc5
mov rax, qword [rbx + 0x158]
sub rax, qword [rbx + 0x150]
cmp rax, qword [rbx + 0x178]
jae 0x1400ea0c5
mov rcx, r15
mov rdx, r14
call fcn.140116740
test rax, rax
jne 0x1400e9f13
test rdx, rdx
jne 0x1400e9f13
cmp dword [rbx + 0x100], 4
jne 0x1400ea0ab
mov rax, qword [rbx + 0x158]
sub rax, qword [rbx + 0x150]
cmp rax, qword [rbx + 0x178]
jb 0x1400ea0ab
jmp 0x1400ea0c5
test rax, rax
jne 0x1400e9d1d
test rdx, rdx
jne 0x1400e9f25
test rax, rax
jne 0x1400ea0ab
mov dword [rsp + 0x124], 0
mov dword [rsp + 0x12c], 0
mov dword [rsp + 0x134], 0
mov dword [rsp + 0x13c], 0
mov dword [rsp + 0x144], 0
mov dword [rsp + 0x14c], 0
mov dword [rsp + 0x154], 0
mov byte [rsp + 0x15c], 1
mov byte [rsp + 0x120], 4
lea r12, [rsp + 0x120]
mov rcx, r15
mov rdx, r12
call fcn.140112de0
cmp al, 0xc
jne 0x1400ea479
mov rax, qword [0x1403cb158]
mov rax, qword [rax]
test rax, rax
je 0x1400e9f32
mov rax, qword [0x1403cb178]
movzx eax, byte [rax]
test al, al
jne 0x1400ea011
mov rax, qword [0x1403cb210]
mov rax, qword [rax]
cmp rax, 5
jne 0x1400ea011
mov rax, qword [str._y__]
mov rax, qword [rax]
mov qword [rsp + 0xe8], rax
movups xmm0, xmmword [rax + 0x20]
mov qword [rsp + 0xf0], 5
movups xmmword [rsp + 0xf8], xmm0
call fcn.1401ee620
mov rbp, rax
mov r13, rdx
lea rdx, [rsp + 0xf0]
mov rcx, rax
call qword [r13 + 0x18]
test al, al
je 0x1400ea011
mov rax, qword [str._y__]
mov rcx, qword [rax]
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x1400ea4d4
lea rdx, [rcx + 0x30]
mov r8, qword [rcx + 0x30]
movups xmm0, xmmword [rcx + 0x40]
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], rax
movups xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], 0
lea rax, str.ACK_sent__applying_settings
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 1
mov qword [rsp + 0x130], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x138], xmm0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], r12
lea rax, [0x1402bf800]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 1
mov qword [rsp + 0xe0], rdx
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x30], xmm0
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x30]
mov rcx, qword [rsp + 0xe8]
mov rdx, rbp
mov r8, r13
call fcn.1401c1e00
jmp 0x1400ea011
test rax, rax
jne 0x1400ea0a6
test rdx, rdx
je 0x1400ea0a6
mov rcx, rsi
call fcn.14019e4c0
jmp 0x1400ea0ae
mov r13, qword [str._y__]
movzx edx, byte [r13 + 0x10]
test dl, dl
je 0x1400e9db1
movzx eax, dl
cmp eax, 1
je 0x1400e9f59
cmp eax, 2
jne 0x1400ea443
mov dl, 2
mov rcx, qword [r13]
call fcn.1401c1c60
test al, al
je 0x1400e9db1
mov rcx, qword [r13]
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x1400ea4d4
lea rdx, [rcx + 0x30]
mov r8, qword [rcx + 0x30]
movups xmm0, xmmword [rcx + 0x40]
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], rax
movups xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], 0
lea rax, str.ACK_sent__applying_settings
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 1
mov qword [rsp + 0x130], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x138], xmm0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r12
lea rax, [0x1402bf800]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], rdx
lea rcx, [rsp + 0x48]
call fcn.1400ea510
mov rdx, qword [rsp + 0x2b0]
cmp byte [rdi + 0x7c], 0
sete r9b
mov byte [rdi + 0x7c], 1
lea rcx, [rsp + 0x120]
lea r8, [rsp + 0x90]
call fcn.1400b7330
cmp byte [rsp + 0x120], 3
jne 0x1400ea081
cmp dword [rsp + 0x90], 0
je 0x1400ea418
mov eax, dword [rsp + 0x94]
mov rcx, qword [r15]
test rcx, rcx
je 0x1400ea3d3
cmp ecx, 1
jne 0x1400ea3f2
cmp qword [rbx + 0x50], rax
jbe 0x1400ea409
lea rcx, [rbx + 0x50]
jmp 0x1400ea3e9
mov rax, qword [rsp + 0x140]
mov qword [rsi + 0x20], rax
movups xmm0, xmmword [rsp + 0x120]
movups xmm1, xmmword [rsp + 0x130]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
jmp 0x1400ea0ae
test rax, rax
je 0x1400ea0c5
mov byte [rsi], 4
mov rax, rsi
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rdi + 0x3c]
movups xmm0, xmmword [rdi + 4]
movups xmm1, xmmword [rdi + 0x14]
movups xmm2, xmmword [rdi + 0x24]
mov rcx, qword [rdi + 0x34]
movups xmmword [rsp + 0x124], xmm0
movups xmmword [rsp + 0x134], xmm1
movups xmmword [rsp + 0x144], xmm2
mov qword [rsp + 0x154], rcx
mov byte [rsp + 0x15c], al
mov byte [rsp + 0x120], 4
lea rbx, [rsp + 0x120]
mov rcx, r15
mov rdx, rbx
call fcn.140112de0
cmp al, 0xc
jne 0x1400ea489
mov rax, qword [0x1403cb158]
mov rax, qword [rax]
test rax, rax
je 0x1400ea2b8
mov rax, qword [0x1403cb178]
movzx eax, byte [rax]
test al, al
jne 0x1400ea3c8
mov rax, qword [0x1403cb210]
mov rax, qword [rax]
cmp rax, 5
jne 0x1400ea3c8
mov r13, qword [str._z__]
mov r14, qword [r13]
movups xmm0, xmmword [r14 + 0x20]
mov qword [rsp + 0x108], 5
movups xmmword [rsp + 0x110], xmm0
call fcn.1401ee620
mov r15, rax
mov r12, rdx
lea rdx, [rsp + 0x108]
mov rcx, rax
call qword [r12 + 0x18]
test al, al
je 0x1400ea3c8
mov rcx, qword [r13]
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x1400ea4ec
lea rdx, [rcx + 0x30]
mov r8, qword [rcx + 0x30]
movups xmm0, xmmword [rcx + 0x40]
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], rax
movups xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
lea rax, [rsp + 0x88]
mov qword [rsp + 0xd0], rax
lea rax, [0x1400d5cc0]
mov qword [rsp + 0xd8], rax
lea rax, str.local_settings_sent__waiting_for_ack:
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 1
mov qword [rsp + 0x140], 0
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], 1
lea rax, [rsp + 0x90]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rbx
lea rax, [0x1402bf800]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
mov qword [rsp + 0x58], rdx
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0x60], xmm0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x60]
mov rcx, r14
mov rdx, r15
mov r8, r12
call fcn.1401c1e00
jmp 0x1400ea3c8
mov r14, qword [str._z__]
movzx edx, byte [r14 + 0x10]
test dl, dl
je 0x1400ea136
movzx eax, dl
cmp eax, 1
je 0x1400ea2df
cmp eax, 2
jne 0x1400ea45e
mov dl, 2
mov rcx, qword [r14]
call fcn.1401c1c60
test al, al
je 0x1400ea136
mov rcx, qword [r14]
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x1400ea4ec
lea rdx, [rcx + 0x30]
mov r8, qword [rcx + 0x30]
movups xmm0, xmmword [rcx + 0x40]
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], rax
movups xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
lea rax, [rsp + 0x88]
mov qword [rsp + 0x48], rax
lea rax, [0x1400d5cc0]
mov qword [rsp + 0x50], rax
lea rax, str.local_settings_sent__waiting_for_ack:
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 1
mov qword [rsp + 0x140], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], 1
lea rax, [rsp + 0x90]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rbx
lea rax, [0x1402bf800]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rdx
lea rcx, [rsp + 0x30]
call fcn.1400ea5c0
mov dword [rdi], 1
jmp 0x1400e9bd7
lea rcx, [rbx + 0x50]
mov rdx, qword [rbx + 0x50]
cmp rdx, rax
jae 0x1400ea3e9
cmp rdx, qword [rbx + 0xb0]
jbe 0x1400ea409
mov qword [r15], 0
jmp 0x1400ea415
cmp qword [rbx + 0xb0], rax
je 0x1400ea418
mov qword [rbx + 0x48], 0
lea rcx, [rbx + 0x50]
jmp 0x1400ea415
mov qword [rbx + 0x48], 1
lea rcx, [rbx + 0x58]
mov qword [rcx], rax
cmp dword [rsp + 0xb0], 0
je 0x1400e9bc7
mov eax, dword [rsp + 0xb4]
cmp eax, 0x1000000
jae 0x1400ea4bc
mov dword [rbx + 0x180], eax
jmp 0x1400e9bc7
mov rcx, qword [str._y__]
call fcn.14024dd60
mov edx, eax
test al, al
jne 0x1400e9f59
jmp 0x1400e9db1
mov rcx, qword [str._z__]
call fcn.14024dd60
mov edx, eax
test al, al
jne 0x1400ea2df
jmp 0x1400ea136
mov byte [rsp + 0x120], al
lea rax, [0x1402c0058]
jmp 0x1400ea497
mov byte [rsp + 0x120], al
lea rax, [0x1402c0178]
mov qword [rsp + 0x20], rax
lea rcx, str.invalid_settings_frame
lea r9, [0x1402c02b0]
lea r8, [rsp + 0x120]
mov edx, 0x16
call fcn.140251670
lea rcx, str.assertion_failed:_val___frame::MAX_MAX_FRAME_SIZE_as_usizeC:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fh2_0.4.4_srccodec_framed_write.rs
lea r8, [0x1402c0160]
mov edx, 0x3b
call fcn.1402512e0
lea rcx, str.FieldSet_corrupted__this_is_a_bug_C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fh2_0.4.4_srcproto_streams_recv.rsJ
lea r8, [0x1402c0070]
mov edx, 0x22
call fcn.1402511c0
lea rcx, str.FieldSet_corrupted__this_is_a_bug_C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fh2_0.4.4_srcproto_streams_recv.rsJ
lea r8, [0x1402c0190]
mov edx, 0x22
call fcn.1402511c0
int3