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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov qword [rsp + 0xc0], r8
mov rbx, rcx
mov rsi, rdx
mov r15d, r9d
test rcx, rcx
je 0x1400e2ceb
lea rax, [rsp + 0xc0]
mov qword [rcx + 0x88], rdx
mov rdi, r8
mov qword [rcx + 0x98], rax
xor ecx, ecx
mov qword [rbx + 0xb8], r8
xor r8d, r8d
cmp qword [rbx], 0
mov qword [rbx + 0x90], rcx
mov qword [rbx + 0xa0], rcx
mov qword [rbx + 0xb0], rdx
mov qword [rbx + 0xc0], r8
mov dword [rbx + 0xa8], r9d
je 0x1400e2ce1
mov ebp, dword [rbx + 0x84]
test ebp, ebp
jne 0x1400e2ce1
mov edx, dword [rbx + 0x80]
test edx, edx
je 0x1400e2cd7
cmp r9d, 4
jne 0x1400e2ce1
test rsi, rsi
jne 0x1400e2cf5
test rdi, rdi
je 0x1400e2cf5
mov dword [rbx + 0x84], 0xfffffffe
mov ebp, 0xfffffffe
jmp 0x1400e3768
xor eax, eax
cmp r15d, 4
sete al
or eax, edx
mov edx, dword [rbx + 0x74]
mov dword [rbx + 0x80], eax
mov eax, dword [rbx + 0x78]
mov ecx, edx
or ecx, eax
je 0x1400e2d26
test edx, edx
sete dl
xor ebp, ebp
test eax, eax
setne bpl
and ebp, edx
jmp 0x1400e3762
mov r12, rsi
test rdi, rdi
je 0x1400e355b
mov r8d, dword [rbx + 0x28]
mov r10d, dword [rbx + 0x2c]
lea eax, [r8 + r10]
cmp eax, 1
jbe 0x1400e2eb6
mov ecx, dword [rbx + 0x24]
add ecx, r8d
lea r9d, [rcx - 2]
mov edx, ecx
dec ecx
mov eax, r9d
and ecx, 0x7fff
and edx, 0x7fff
and eax, 0x7fff
movzx ecx, byte [rbx + rcx + 0xc8]
movzx eax, byte [rbx + rax + 0xc8]
shl eax, 5
xor eax, ecx
mov ecx, 0x102
sub ecx, r8d
mov r11d, ecx
cmp rdi, r11
cmovb ecx, edi
add r8d, ecx
mov r11d, ecx
mov dword [rbx + 0x28], r8d
lea r13, [r12 + r11]
sub rdi, r11
cmp r13, r12
je 0x1400e2ec2
movzx ecx, byte [r12]
mov r8d, edx
inc r12
mov byte [rbx + r8 + 0xc8], cl
cmp edx, 0x100
ja 0x1400e2dd3
lea r8d, [rdx + 0x8000]
mov byte [rbx + r8 + 0xc8], cl
shl eax, 5
mov r8d, r9d
inc edx
xor eax, ecx
and r8d, 0x7fff
and edx, 0x7fff
and eax, 0x7fff
mov ecx, eax
add rcx, 0x14950
mov r11w, word [rbx + rcx*2 + 0xa]
mov word [rbx + r8*2 + 0x192aa], r11w
mov word [rbx + rcx*2 + 0xa], r9w
inc r9d
jmp 0x1400e2da0
cmp ecx, 0x101
ja 0x1400e2ec2
mov eax, dword [rbx + 0x24]
movzx r8d, byte [r12]
inc r12
dec rdi
lea edx, [rax + rcx]
and edx, 0x7fff
mov r9d, edx
mov byte [rbx + r9 + 0xc8], r8b
cmp edx, 0x100
ja 0x1400e2e56
add edx, 0x8000
mov byte [rbx + rdx + 0xc8], r8b
inc ecx
lea edx, [r10 + rcx]
mov dword [rbx + 0x28], ecx
cmp edx, 2
jbe 0x1400e2eb6
add eax, ecx
lea edx, [rax - 3]
sub eax, 2
mov ecx, edx
and eax, 0x7fff
and ecx, 0x7fff
movzx eax, byte [rbx + rax + 0xc8]
movzx r9d, byte [rbx + rcx + 0xc8]
shl eax, 5
shl r9d, 0xa
xor eax, r9d
xor eax, r8d
and eax, 0x7fff
add rax, 0x14950
mov r8w, word [rbx + rax*2 + 0xa]
mov word [rbx + rcx*2 + 0x192aa], r8w
mov word [rbx + rax*2 + 0xa], dx
mov ecx, dword [rbx + 0x28]
test rdi, rdi
jne 0x1400e2e12
mov eax, dword [rbx + 0x28]
mov dword [rsp + 0x30], eax
mov ecx, dword [rsp + 0x30]
mov eax, 0x8000
sub eax, ecx
cmp eax, r10d
cmovbe r10d, eax
mov dword [rsp + 0x34], r10d
mov dword [rbx + 0x2c], r10d
cmp ecx, 0x101
ja 0x1400e2ef5
test r15d, r15d
je 0x1400e356a
mov ecx, dword [rbx + 0x24]
mov r10d, dword [rbx + 0x68]
mov eax, 2
mov r8d, ecx
mov dword [rsp + 0x38], ecx
mov ecx, dword [rbx + 0x10]
test r10d, r10d
cmovne eax, r10d
and r8d, 0x7fff
mov dword [rsp + 0x3c], ecx
and ecx, 0x90000
je 0x1400e2f7d
cmp dword [rsp + 0x34], 0
je 0x1400e317a
mov ecx, dword [rsp + 0x3c]
and ecx, 0x80000
jne 0x1400e317a
lea eax, [r8 - 1]
and eax, 0x7fff
mov dl, byte [rbx + rax + 0xc8]
xor eax, eax
cmp dword [rsp + 0x30], eax
je 0x1400e2f6a
lea r9d, [r8 + rax]
cmp dl, byte [rbx + r9 + 0xc8]
jne 0x1400e2f6a
inc eax
jmp 0x1400e2f52
cmp eax, 2
jbe 0x1400e3198
mov ecx, 1
jmp 0x1400e3185
mov edx, dword [rsp + 0x30]
cmp eax, edx
jae 0x1400e3185
xor edx, edx
lea r11, [rbx + 0xc8]
lea r9d, [r8 + rax]
cmp eax, 0x1f
seta dl
mov edx, dword [rbx + rdx*4 + 0x14]
mov dword [rsp + 0x54], edx
lea rdx, [rbx + 0xc8]
mov qword [rsp + 0x40], rdx
mov edx, r8d
add rdx, r11
mov r11b, byte [rbx + r9 + 0xc8]
mov qword [rsp + 0x48], rdx
mov rdx, r9
dec edx
mov byte [rsp + 0x52], r11b
mov dl, byte [rbx + rdx + 0xc8]
mov byte [rsp + 0x53], dl
mov edx, r8d
dec dword [rsp + 0x54]
je 0x1400e3185
mov dx, word [rbx + rdx*2 + 0x192aa]
test dx, dx
je 0x1400e3185
mov r9d, dword [rsp + 0x38]
sub r9d, edx
movzx r9d, r9w
cmp dword [rsp + 0x34], r9d
jb 0x1400e3185
and edx, 0x7fff
mov r14b, byte [rsp + 0x52]
lea r13d, [rdx + rax]
mov r11, r13
cmp byte [rbx + r13 + 0xc8], r14b
jne 0x1400e303f
dec r11d
mov r14b, byte [rsp + 0x53]
cmp byte [rbx + r11 + 0xc8], r14b
je 0x1400e30f3
mov dx, word [rbx + rdx*2 + 0x192aa]
test dx, dx
je 0x1400e3185
mov r9d, dword [rsp + 0x38]
sub r9d, edx
movzx r9d, r9w
cmp dword [rsp + 0x34], r9d
jb 0x1400e3185
and edx, 0x7fff
mov r14b, byte [rsp + 0x52]
lea r13d, [rax + rdx]
mov r11, r13
cmp r14b, byte [rbx + r13 + 0xc8]
jne 0x1400e3095
dec r11d
mov r14b, byte [rsp + 0x53]
cmp r14b, byte [rbx + r11 + 0xc8]
je 0x1400e30f3
mov dx, word [rbx + rdx*2 + 0x192aa]
test dx, dx
je 0x1400e3185
mov r9d, dword [rsp + 0x38]
sub r9d, edx
movzx r9d, r9w
cmp dword [rsp + 0x34], r9d
jb 0x1400e3185
and edx, 0x7fff
mov r14b, byte [rsp + 0x52]
lea r13d, [rax + rdx]
mov r11, r13
cmp r14b, byte [rbx + r13 + 0xc8]
jne 0x1400e2fdb
dec r11d
mov r14b, byte [rsp + 0x53]
cmp r14b, byte [rbx + r11 + 0xc8]
jne 0x1400e2fdb
test r9d, r9d
je 0x1400e3185
mov r14, qword [rsp + 0x40]
mov r11d, edx
xor r13d, r13d
add r14, r11
mov qword [rsp + 0x58], r14
mov r11, qword [rsp + 0x58]
mov r14, qword [rsp + 0x48]
mov dword [rsp + 0x2c], r13d
mov r11b, byte [r11 + r13]
cmp byte [r14 + r13], r11b
jne 0x1400e3139
mov r14d, dword [rsp + 0x30]
inc r13
cmp r13d, r14d
jb 0x1400e310f
inc dword [rsp + 0x2c]
mov r14d, dword [rsp + 0x2c]
cmp eax, r14d
jae 0x1400e2fdb
mov ecx, dword [rsp + 0x30]
cmp r14d, ecx
je 0x1400e317e
lea ecx, [r14 + r8]
mov rax, rcx
mov cl, byte [rbx + rcx + 0xc8]
dec eax
mov al, byte [rbx + rax + 0xc8]
mov byte [rsp + 0x52], cl
mov ecx, r9d
mov byte [rsp + 0x53], al
mov eax, r14d
jmp 0x1400e2fdb
xor ecx, ecx
jmp 0x1400e3185
mov eax, dword [rsp + 0x2c]
mov ecx, r9d
cmp eax, 3
jne 0x1400e319a
cmp ecx, 0x1fff
ja 0x1400e3396
jmp 0x1400e319a
xor eax, eax
cmp r8d, ecx
je 0x1400e3396
bt dword [rsp + 0x3c], 0x11
jae 0x1400e31b4
cmp eax, 5
jbe 0x1400e3396
test r10d, r10d
je 0x1400e33a3
mov r9d, dword [rbx + 0x54]
cmp r10d, eax
jae 0x1400e32d7
mov r10, qword [rbx + 0x30]
mov r11d, dword [rbx + 0x6c]
inc r9d
mov dword [rbx + 0x54], r9d
lea r9, [r10 + 1]
movzx edx, r11b
mov qword [rbx + 0x30], r9
mov byte [r10], r11b
mov r9, qword [rbx + 0x38]
shr byte [r9], 1
mov r9d, dword [rbx + 0x50]
dec r9d
je 0x1400e31fe
mov dword [rbx + 0x50], r9d
jmp 0x1400e3215
mov r9, qword [rbx + 0x30]
mov dword [rbx + 0x50], 8
lea r10, [r9 + 1]
mov qword [rbx + 0x38], r9
mov qword [rbx + 0x30], r10
inc word [rbx + rdx*2 + 0x81ca]
mov rdx, qword [rbx + 0x30]
cmp eax, 0x7f
jbe 0x1400e34c6
lea r8d, [rax - 3]
add dword [rbx + 0x54], eax
dec ecx
mov byte [rdx], r8b
mov rdx, qword [rbx + 0x30]
mov r8d, ecx
shr r8d, 8
mov byte [rdx + 1], cl
mov rdx, qword [rbx + 0x30]
mov byte [rdx + 2], r8b
mov r9, qword [rbx + 0x38]
add qword [rbx + 0x30], 3
mov dl, byte [r9]
shr dl, 1
or edx, 0xffffff80
mov byte [r9], dl
mov edx, dword [rbx + 0x50]
dec edx
je 0x1400e326c
mov dword [rbx + 0x50], edx
jmp 0x1400e3283
mov rdx, qword [rbx + 0x30]
mov dword [rbx + 0x50], 8
lea r9, [rdx + 1]
mov qword [rbx + 0x38], rdx
mov qword [rbx + 0x30], r9
mov edx, ecx
lea r14, [0x1401b58c0]
and r8d, 0x7f
and edx, 0x1ff
mov r9b, byte [r14 + rdx]
lea rdx, [0x1401b5640]
movzx edx, byte [rdx + r8]
cmp ecx, 0x1ff
ja 0x1400e32b2
movzx edx, r9b
mov edx, edx
lea rcx, [0x1401b5bc0]
inc word [rbx + rdx*2 + 0x840a]
lea edx, [rax - 3]
movzx edx, word [rcx + rdx*2]
inc word [rbx + rdx*2 + 0x81ca]
jmp 0x1400e338c
mov rax, qword [rbx + 0x30]
mov edx, dword [rbx + 0x64]
lea ecx, [r10 - 3]
add dword [rbx + 0x54], r10d
mov byte [rax], cl
mov rax, qword [rbx + 0x30]
dec edx
mov ecx, edx
mov byte [rax + 1], dl
mov rax, qword [rbx + 0x30]
shr ecx, 8
mov byte [rax + 2], cl
mov r8, qword [rbx + 0x38]
add qword [rbx + 0x30], 3
mov al, byte [r8]
shr al, 1
or eax, 0xffffff80
mov byte [r8], al
mov eax, dword [rbx + 0x50]
dec eax
je 0x1400e331d
mov dword [rbx + 0x50], eax
jmp 0x1400e3334
mov rax, qword [rbx + 0x30]
mov dword [rbx + 0x50], 8
lea r8, [rax + 1]
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x30], r8
mov eax, edx
lea r14, [0x1401b58c0]
and ecx, 0x7f
and eax, 0x1ff
mov r8b, byte [r14 + rax]
lea rax, [0x1401b5640]
movzx eax, byte [rax + rcx]
cmp edx, 0x1ff
ja 0x1400e3360
movzx eax, r8b
mov eax, eax
inc word [rbx + rax*2 + 0x840a]
cmp r10d, 2
jbe 0x1400e3387
lea eax, [r10 - 3]
lea rcx, [0x1401b5bc0]
movzx eax, word [rcx + rax*2]
inc word [rbx + rax*2 + 0x81ca]
mov eax, dword [rbx + 0x68]
dec eax
xor edx, edx
mov dword [rbx + 0x68], edx
jmp 0x1400e34dd
test r10d, r10d
jne 0x1400e32d7
xor ecx, ecx
xor eax, eax
mov rdx, qword [rbx + 0x30]
test ecx, ecx
jne 0x1400e33fc
movzx eax, byte [rbx + r8 + 0xc8]
lea rcx, [rdx + 1]
inc dword [rbx + 0x54]
mov qword [rbx + 0x30], rcx
mov byte [rdx], al
mov rdx, qword [rbx + 0x38]
shr byte [rdx], 1
mov edx, dword [rbx + 0x50]
dec edx
je 0x1400e33d3
mov dword [rbx + 0x50], edx
jmp 0x1400e33ea
mov rdx, qword [rbx + 0x30]
mov dword [rbx + 0x50], 8
lea rcx, [rdx + 1]
mov qword [rbx + 0x38], rdx
mov qword [rbx + 0x30], rcx
inc word [rbx + rax*2 + 0x81ca]
mov eax, 1
jmp 0x1400e34dd
mov r9d, dword [rsp + 0x3c]
and r9d, 0x10000
or r9d, dword [rbx + 0x1c]
jne 0x1400e3417
cmp eax, 0x7f
jbe 0x1400e34c6
lea r8d, [rax - 3]
add dword [rbx + 0x54], eax
dec ecx
mov byte [rdx], r8b
mov rdx, qword [rbx + 0x30]
mov r8d, ecx
shr r8d, 8
mov byte [rdx + 1], cl
mov rdx, qword [rbx + 0x30]
mov byte [rdx + 2], r8b
mov r9, qword [rbx + 0x38]
add qword [rbx + 0x30], 3
mov dl, byte [r9]
shr dl, 1
or edx, 0xffffff80
mov byte [r9], dl
mov edx, dword [rbx + 0x50]
dec edx
je 0x1400e3459
mov dword [rbx + 0x50], edx
jmp 0x1400e3470
mov rdx, qword [rbx + 0x30]
mov dword [rbx + 0x50], 8
lea r9, [rdx + 1]
mov qword [rbx + 0x38], rdx
mov qword [rbx + 0x30], r9
mov edx, ecx
lea r14, [0x1401b58c0]
and r8d, 0x7f
and edx, 0x1ff
mov r9b, byte [r14 + rdx]
lea rdx, [0x1401b5640]
movzx edx, byte [rdx + r8]
cmp ecx, 0x1ff
ja 0x1400e349f
movzx edx, r9b
mov edx, edx
inc word [rbx + rdx*2 + 0x840a]
cmp eax, 2
jbe 0x1400e34dd
lea edx, [rax - 3]
lea rcx, [0x1401b5bc0]
movzx edx, word [rcx + rdx*2]
inc word [rbx + rdx*2 + 0x81ca]
jmp 0x1400e34dd
movzx edx, byte [rbx + r8 + 0xc8]
mov dword [rbx + 0x64], ecx
mov dword [rbx + 0x68], eax
mov dword [rbx + 0x6c], edx
jmp 0x1400e33f2
add dword [rbx + 0x2c], eax
mov edx, 0x8000
add dword [rbx + 0x24], eax
sub dword [rbx + 0x28], eax
mov eax, dword [rbx + 0x2c]
cmp eax, edx
cmova eax, edx
lea rdx, [rbx + 0x192a2]
mov dword [rbx + 0x2c], eax
mov rax, qword [rbx + 0x30]
cmp rdx, rax
jb 0x1400e3533
mov edx, dword [rbx + 0x54]
cmp edx, 0x7c00
jbe 0x1400e2d29
lea rcx, [rbx + 0x92aa]
sub rax, rcx
imul eax, eax, 0x73
shr eax, 7
cmp eax, edx
jae 0x1400e3533
test byte [rbx + 0x12], 8
je 0x1400e2d29
mov qword [rbx + 0xb0], r12
xor edx, edx
mov rcx, rbx
mov qword [rbx + 0xb8], rdi
call fcn.1400e2650
test eax, eax
je 0x1400e2d29
js 0x1400e36c8
jmp 0x1400e3578
test r15d, r15d
je 0x1400e356a
cmp dword [rbx + 0x28], 0
jne 0x1400e2d32
mov qword [rbx + 0xb0], r12
mov qword [rbx + 0xb8], rdi
test dword [rbx + 0x10], 0x3000
je 0x1400e369c
test rsi, rsi
je 0x1400e369c
mov r9, qword [rbx + 0xb0]
xor edx, edx
mov ecx, dword [rbx + 0x20]
xor r12d, r12d
mov edi, 0x15b0
mov r11d, 0xfff1
sub r9, rsi
movzx r8d, cx
shr ecx, 0x10
mov rax, r9
div rdi
mov edi, 7
mov r10, rdx
test r9, r9
je 0x1400e3693
mov rdx, rdi
mov rax, rsi
sub rdx, rsi
lea r13, [rax + rdx]
cmp r13, r10
jae 0x1400e3638
movzx r13d, byte [rax]
add rax, 8
add r13d, r8d
movzx r8d, byte [rax - 7]
add ecx, r13d
add r8d, r13d
movzx r13d, byte [rax - 6]
add ecx, r8d
add r13d, r8d
movzx r8d, byte [rax - 5]
add ecx, r13d
add r8d, r13d
movzx r13d, byte [rax - 4]
add ecx, r8d
add r13d, r8d
movzx r8d, byte [rax - 3]
add ecx, r13d
add r8d, r13d
movzx r13d, byte [rax - 2]
add ecx, r8d
add r13d, r8d
movzx r8d, byte [rax - 1]
add ecx, r13d
add r8d, r13d
add ecx, r8d
jmp 0x1400e35d2
mov rax, r10
and eax, 0x1ff8
add rsi, rax
mov rdx, rax
mov r13, rsi
cmp rdx, r10
jae 0x1400e3661
movzx r14d, byte [r13]
inc rdx
inc r13
add r8d, r14d
add ecx, r8d
jmp 0x1400e3649
mov rdx, r10
sub rdx, rax
cmp r10, rax
mov eax, r8d
cmovb rdx, r12
sub r9, r10
mov r10d, 0x15b0
add rsi, rdx
xor edx, edx
div r11d
mov eax, ecx
mov r8d, edx
xor edx, edx
div r11d
mov ecx, edx
jmp 0x1400e35c0
shl ecx, 0x10
add ecx, r8d
mov dword [rbx + 0x20], ecx
test r15d, r15d
je 0x1400e36da
cmp dword [rbx + 0x28], 0
jne 0x1400e36da
cmp qword [rbx + 0xb8], 0
jne 0x1400e36da
cmp dword [rbx + 0x74], 0
jne 0x1400e36da
mov edx, 4
mov rcx, rbx
call fcn.1400e2650
test eax, eax
jns 0x1400e36d3
mov ebp, dword [rbx + 0x84]
jmp 0x1400e3768
mov dword [rbx + 0x78], 1
mov rdx, qword [rbx + 0x98]
test rdx, rdx
je 0x1400e36f7
mov rax, qword [rbx + 0xb0]
sub rax, qword [rbx + 0x88]
mov qword [rdx], rax
mov rax, qword [rbx + 0xa0]
test rax, rax
je 0x1400e3752
mov rcx, qword [rbx + 0xc0]
mov rsi, qword [rax]
mov eax, dword [rbx + 0x74]
sub rsi, rcx
cmp rsi, rax
cmova rsi, rax
mov eax, dword [rbx + 0x70]
add rcx, qword [rbx + 0x90]
mov r8, rsi
lea rdx, [rbx + rax + 0x392aa]
call fcn.14000d024
mov rax, qword [rbx + 0xa0]
add dword [rbx + 0x70], esi
sub dword [rbx + 0x74], esi
add rsi, qword [rbx + 0xc0]
mov qword [rbx + 0xc0], rsi
mov qword [rax], rsi
cmp dword [rbx + 0x78], 0
je 0x1400e3762
xor ebp, ebp
cmp dword [rbx + 0x74], 0
sete bpl
mov dword [rbx + 0x84], ebp
mov eax, ebp
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret