Function at 0x1400ed029
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, 0xd8
mov ebx, r9d
mov r14, rdx
mov rdi, rcx
mov r9, qword [rsp + 0x180]
mov r11, qword [rsp + 0x178]
mov esi, dword [rsp + 0x170]
movzx r12d, word [rsp + 0x168]
movzx ecx, word [rsp + 0x160]
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0xb8], rax
mov r13d, dword [rsp + 0x150]
mov ebp, dword [rsp + 0x148]
mov edx, dword [rsp + 0x140]
mov r15d, ebx
lea rax, [r15 + 1]
cmp rax, rsi
mov word [rsp + 0x56], cx
mov dword [rsp + 0x64], edx
jne 0x1400ed0e3
mov dword [rsp + 0x44], ebp
mov ebp, r12d
mov rdx, qword [r14 + 8]
mov r12, qword [r14 + 0x10]
test esi, esi
je 0x1400ed10a
mov rax, r12
sub rax, rsi
jbe 0x1400ed126
cmp byte [rdx + rsi], 0xbf
jg 0x1400ed128
lea rax, [0x14017c040]
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r12
mov r8, rsi
jmp 0x1400ed7a0
lea rax, [r15 + 3]
cmp rax, rsi
jne 0x1400ed2f4
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
test ebx, ebx
je 0x1400ed16e
cmp rdx, r15
jbe 0x1400ed16c
cmp byte [rcx + r15], 0xc0
jge 0x1400ed16e
jmp 0x1400ed17d
cmp r12, 2
jb 0x1400ed11f
movzx eax, word [rdx + rsi]
cmp eax, 0x2f2f
je 0x1400ed238
xor esi, esi
jmp 0x1400ed29f
jne 0x1400ed0c9
cmp rax, 2
jb 0x1400ed29f
movzx eax, word [rdx + rsi]
cmp eax, 0x2f2f
jne 0x1400ed29f
cmp r12, rsi
jbe 0x1400ed232
cmp byte [rdx + rsi], 0xbf
jg 0x1400ed238
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x14017bc10]
mov edx, 0x2c
call fcn.140005ad0
jne 0x1400ed17d
test esi, esi
je 0x1400ed196
cmp rdx, rsi
jbe 0x1400ed194
cmp byte [rcx + rsi], 0xbf
jg 0x1400ed196
lea rax, [0x14017bf68]
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rsi
call fcn.14000a360
jne 0x1400ed17d
mov rax, rsi
sub rax, r15
cmp rax, 3
jne 0x1400ed2f4
mov qword [rsp + 0x48], r9
movzx r10d, word [rcx + r15]
xor r10d, 0x2f3a
movzx r9d, byte [rcx + r15 + 2]
xor r9d, 0x2e
or r9w, r10w
je 0x1400ed1d1
mov r9, qword [rsp + 0x48]
jmp 0x1400ed2f4
cmp rdx, rsi
jbe 0x1400ed77c
cmp byte [rcx + rsi], 0x2f
jne 0x1400ed7c0
lea r9, [rsi + 1]
cmp r9, rdx
jae 0x1400ed1fe
cmp byte [rcx + r9], 0x2f
jne 0x1400ed1fe
mov r9, qword [rsp + 0x48]
jmp 0x1400ed6cc
test ebx, ebx
je 0x1400ed3d2
cmp rdx, r15
jbe 0x1400ed3cc
cmp byte [rcx + r15], 0xbf
jg 0x1400ed3d2
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x14017c720]
mov edx, 0x2a
call fcn.140005ad0
jne 0x1400ed154
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x58], r11
mov byte [rsp + 0x37], r8b
mov dword [rsp + 0x50], r13d
mov rax, qword [r14]
sub rax, r12
cmp rax, 1
jbe 0x1400ed728
lea r13, [rdx + rsi]
add r13, 2
add rdx, rsi
mov r8, r12
sub r8, rsi
mov rcx, r13
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov word [r13 - 2], 0x2e2f
add r12, 2
mov qword [r14 + 0x10], r12
add esi, 2
mov rdx, qword [r14 + 8]
mov r13d, dword [rsp + 0x50]
mov r8b, byte [rsp + 0x37]
mov r11, qword [rsp + 0x58]
mov r9, qword [rsp + 0x48]
test ebx, ebx
je 0x1400ed2b7
mov rax, r12
sub rax, r15
jbe 0x1400ed2bc
cmp byte [rdx + r15], 0xbf
jg 0x1400ed2c2
jmp 0x1400ed78b
mov rax, r12
jmp 0x1400ed2c2
jne 0x1400ed78b
cmp rax, 3
jae 0x1400ed2d1
mov r12d, ebp
mov ebp, dword [rsp + 0x44]
jmp 0x1400ed2f4
movzx eax, word [rdx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rdx + r15 + 2]
xor ecx, 0x2f
or cx, ax
mov r12d, ebp
mov ebp, dword [rsp + 0x44]
je 0x1400ed7a8
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], r11
lea r15, [rsp + 0x68]
mov rcx, r15
mov rdx, r14
mov r9d, ebx
call fcn.1400ee539
mov eax, dword [r15]
cmp eax, 2
jne 0x1400ed35c
mov al, byte [rsp + 0x6c]
mov byte [rdi + 8], al
movabs rax, 0x8000000000000000
mov qword [rdi], rax
cmp qword [r14], 0
je 0x1400ed3b8
mov r8, qword [r14 + 8]
mov rcx, qword [0x1401950f0]
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400f4d54
mov rcx, qword [rsp + 0x6c]
mov edx, dword [rsp + 0x74]
mov r8, qword [r14 + 0x10]
mov qword [rdi + 0x10], r8
movups xmm0, xmmword [r14]
movups xmmword [rdi], xmm0
mov r8, qword [rsp + 0xb8]
movups xmm0, xmmword [r8]
movups xmmword [rdi + 0x40], xmm0
mov r8b, byte [r8 + 0x10]
mov byte [rdi + 0x50], r8b
mov dword [rdi + 0x18], eax
mov qword [rdi + 0x1c], rcx
mov dword [rdi + 0x24], edx
movzx eax, word [rsp + 0x56]
mov word [rdi + 0x28], ax
mov word [rdi + 0x2a], r12w
mov dword [rdi + 0x2c], ebx
mov eax, dword [rsp + 0x64]
mov dword [rdi + 0x30], eax
mov dword [rdi + 0x34], ebp
mov dword [rdi + 0x38], r13d
mov dword [rdi + 0x3c], esi
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x1400ed21a
cmp ebx, esi
ja 0x1400ed7d4
mov dword [rsp + 0x50], r13d
mov r9, rdx
sub r9, rsi
jb 0x1400ed7e6
mov qword [rsp + 0x58], r11
mov byte [rsp + 0x37], r8b
mov word [rsp + 0x44], r12w
mov qword [r14 + 0x10], r15
lea r10, [rsp + 0x90]
mov qword [r10 - 0x18], r14
mov qword [r10 - 0x10], rsi
mov qword [rsp + 0x38], r9
mov qword [r10 - 8], r9
lea r13, [0x14017c90a]
mov qword [r10], r13
lea r8, [0x14017c90b]
mov qword [r10 + 8], r8
lea r9, [0x14017d4e0]
mov qword [r10 - 0x28], r9
mov qword [r10 - 0x20], r9
jne 0x1400ed44e
mov rcx, r14
mov rdx, r10
call fcn.1400f0c19
jmp 0x1400ed645
mov r12, r13
cmp ebx, esi
je 0x1400ed49c
add rcx, r15
xor r11d, r11d
lea r9, [0x14017c90a]
cmp r11, 1
je 0x1400ed645
mov r10, r11
mov r11b, byte [r11 + r9]
mov byte [rcx + r10], r11b
inc qword [r14 + 0x10]
lea r11, [r10 + 1]
cmp rax, r11
jne 0x1400ed462
lea r12, [r10 + r9]
inc r12
mov qword [rsp + 0x90], r12
cmp r12, r8
je 0x1400ed535
sub r13, r12
inc r13
mov rax, qword [r14]
sub rax, rdx
cmp rax, r13
jb 0x1400ed742
add r13, rsi
mov rcx, qword [r14 + 8]
lea rdx, [rcx + rsi]
add rcx, r13
mov r8, qword [rsp + 0x38]
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov qword [rsp + 0x80], r13
mov rdx, qword [r14 + 0x10]
cmp rdx, r13
jne 0x1400ed4df
mov r8, r12
jmp 0x1400ed535
mov rax, qword [r14 + 8]
add rax, rdx
lea rcx, [0x14017c90a]
add rcx, rsi
sub rcx, rdx
sub rcx, r12
inc rcx
xor r9d, r9d
lea rdx, [0x14017c90b]
mov r8, r9
add r9, r12
cmp r9, rdx
je 0x1400ed645
mov r9b, byte [r12 + r8]
mov byte [rax + r8], r9b
inc qword [r14 + 0x10]
lea r9, [r8 + 1]
cmp rcx, r9
jne 0x1400ed503
add r8, r12
inc r8
mov qword [rsp + 0x90], r8
lea rcx, [0x14017c90a]
sub rcx, r8
inc rcx
call fcn.1400ea51c
lea r12, [rsp + 0xc0]
mov qword [r12], rax
mov qword [r12 + 8], rdx
mov qword [r12 + 0x10], 0
mov rcx, r12
lea rdx, [rsp + 0x90]
call fcn.1400f0c19
mov r10, qword [r12]
mov r8, qword [r12 + 8]
mov r13, qword [r12 + 0x10]
test r13, r13
je 0x1400ed632
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0xb0], r8
mov r12, qword [rsp + 0x78]
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rdx, [r8 + r9]
mov rax, qword [r12]
sub rax, rdx
cmp rax, r13
jb 0x1400ed752
mov rcx, qword [r12 + 8]
lea rdx, [rcx + r9]
add r9, r13
mov qword [rsp + 0x38], r9
add rcx, r9
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x80], rdx
mov rax, qword [r12 + 0x10]
cmp rax, rdx
mov r8, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xa8]
je 0x1400ed632
mov rcx, qword [r12 + 8]
add rcx, rax
not rax
add rax, rdx
dec r13
xor edx, edx
mov r9b, byte [r8 + rdx]
mov byte [rcx + rdx], r9b
inc qword [r12 + 0x10]
cmp rax, rdx
je 0x1400ed632
lea r9, [rdx + 1]
cmp r13, rdx
mov rdx, r9
jne 0x1400ed614
test r10, r10
je 0x1400ed645
mov rcx, qword [0x1401950f0]
xor edx, edx
call fcn.1400f4d54
mov rax, qword [rsp + 0x70]
mov r12, qword [rsp + 0x88]
cmp rax, qword [rsp + 0x68]
test r12, r12
mov r8b, byte [rsp + 0x37]
mov r11, qword [rsp + 0x58]
mov r9, qword [rsp + 0x48]
je 0x1400ed6b6
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
lea rcx, [rax + 0x10]
mov r13, qword [rax + 0x10]
cmp rdx, r13
je 0x1400ed6b0
mov qword [rsp + 0x38], rcx
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, r13
mov r8, r12
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov rcx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x58]
mov r8b, byte [rsp + 0x37]
add r13, r12
mov qword [rcx], r13
add esi, 0xfffffffe
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
mov r13d, dword [rsp + 0x50]
movzx r12d, word [rsp + 0x44]
test ebx, ebx
je 0x1400ed6e4
mov rax, rdx
sub rax, r15
jbe 0x1400ed6e9
cmp byte [rcx + r15], 0xbf
jg 0x1400ed6ef
jmp 0x1400ed7f5
mov rax, rdx
jmp 0x1400ed6ef
jne 0x1400ed7f5
cmp rax, 3
jb 0x1400ed2f4
movzx eax, word [rcx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rcx + r15 + 2]
xor ecx, 0x2f
or cx, ax
jne 0x1400ed2f4
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x14017c008]
jmp 0x1400ed7b6
mov r8d, 2
mov rcx, r14
mov rdx, r12
call fcn.140002520
mov rdx, qword [r14 + 8]
jmp 0x1400ed25c
mov rcx, r14
mov r8, r13
call fcn.1400f315d
jmp 0x1400ed4b1
mov rcx, r12
mov qword [rsp + 0xa0], r8
mov r8, r13
mov qword [rsp + 0x38], r9
call fcn.1400f315d
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x38]
jmp 0x1400ed5c1
lea r8, [0x14017bf88]
mov rcx, rsi
call fcn.140004d40
lea rax, [0x14017c058]
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.14000a360
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x14017c070]
mov edx, 0x4f
call fcn.140005ad0
add rcx, rsi
lea rdx, [rsp + 0x68]
mov qword [rdx], 0
call fcn.1400ef381
lea r8, [0x14017c6d8]
mov rcx, r15
mov rdx, rsi
call fcn.140006380
lea r8, [0x14017c6d8]
mov rcx, rsi
call fcn.140005730
lea rax, [0x14017bfa0]
mov qword [rsp + 0x20], rax
mov r8, r15
mov r9, rdx
call fcn.14000a360
int3