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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x128
mov rax, qword [0x140162100]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rax, qword [rcx]
mov r10, rcx
movzx r13d, r9w
mov word [rsp + 0x46], r9w
xor r9d, r9d
mov qword [rsp + 0x60], rcx
mov rsi, r8
mov qword [rsp + 0x58], rdx
mov rax, qword [rax]
mov r8, rdx
mov rbx, qword [r10 + 0x10]
mov ebp, r9d
mov qword [rsp + 0x80], rax
mov r15d, r9d
mov dword [rsp + 0x4c], r9d
mov r12d, r9d
mov rcx, qword [rax]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x98], rbx
cmp dword [rax + 0x30], r9d
je 0x1400ad640
mov eax, dword [rax + 0x18]
jmp 0x1400ae02f
mov eax, dword [rbx + 0x38]
mov edi, 0x100
mov dword [rsp + 0x50], eax
mov r11d, 2
and al, 0x20
neg al
sbb ecx, ecx
and ecx, 0xfffffe59
add ecx, 0x1bf
test dword [rsi + 0x64], 0x104
je 0x1400ad68c
mov edx, ecx
and edx, 0xffffffc3
test byte [rsi + 0x64], 4
cmove edx, ecx
mov ecx, edx
test dword [rsi + 0x64], edi
je 0x1400ad68c
test byte [r8 + 0x40], r11b
jne 0x1400ad68c
and ecx, 0xffffff7c
movzx eax, word [rbx + 0x1a]
movzx edx, word [rbx + 0x3c]
movzx r14d, word [rbx + 0x18]
mov r8d, dword [r8 + 0x44]
mov r9d, r14d
mov word [rsp + 0x3a], ax
movzx eax, word [rbx + 0x1c]
mov word [rsp + 0x3c], ax
movzx eax, word [rbx + 0x3e]
mov word [rsp + 0x4a], ax
mov rax, qword [rbx]
mov qword [rsp + 0x88], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x3e], dx
mov rdx, qword [r10 + 8]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xa0]
mov word [rsp + 0x36], ax
mov word [rsp + 0x44], r14w
call fcn.1400ab7e8
xor r9d, r9d
mov qword [rsp + 0x70], rax
mov word [rbx + 0x12], r9w
mov rdi, rax
mov rcx, qword [rsi + 0x10]
movsx rax, word [rcx]
lea ecx, [r9 + 0xa]
mov word [rsp + 0x48], ax
cmp ax, cx
jg 0x1400ad71e
mov word [rsp + 0x34], r9w
jmp 0x1400ad72f
mov rcx, rax
call fcn.140042444
sub ax, 0x21
mov word [rsp + 0x34], ax
mov edx, 3
lea r8d, [rdx + 0xd]
lea r10d, [rdx - 2]
test rdi, rdi
je 0x1400adf0a
movzx r11d, word [rdi + 0x14]
mov ecx, 0x100
mov word [rsp + 0x38], r11w
mov dword [rsp + 0x30], r9d
cmp r11w, cx
je 0x1400ad766
test byte [rdi + 0x12], 0x80
je 0x1400ad7ae
mov rax, qword [rsi + 8]
movzx ecx, r14w
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x1400ad799
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x1400adede
mov edx, 3
jmp 0x1400ad7a3
cmp r8d, 0xffffffff
je 0x1400adede
mov r8d, 0x10
mov ecx, 0x100
mov rax, qword [rdi + 0x28]
test qword [rbx + 8], rax
jne 0x1400adede
test word [rdi + 0x12], cx
je 0x1400ad7cc
cmp r11w, r8w
je 0x1400adede
mov r8, qword [rsp + 0x58]
test byte [r8 + 0x3c], 0x58
je 0x1400ad808
mov rcx, qword [rdi]
test byte [rcx + 4], dl
je 0x1400adede
mov eax, dword [r8 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1400adede
test byte [r8 + 0x3c], 0x18
mov edx, 2
je 0x1400ad80d
test byte [rcx + 4], dl
jne 0x1400adede
jmp 0x1400ad80d
mov edx, 2
cmp byte [rsi + 0x62], r9b
je 0x1400ad82c
movzx eax, word [rsi + 0x5e]
sub eax, r10d
movzx ecx, r14w
cmp ecx, eax
jne 0x1400ad82c
mov rax, qword [rsp + 0x60]
or byte [rax + 0x20], dl
jmp 0x1400ad835
mov rax, qword [rsp + 0x60]
or byte [rax + 0x20], r10b
mov eax, dword [rsp + 0x50]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jb 0x1400ad88d
mov rcx, qword [rsp + 0x68]
lea r8d, [r10 + rax]
mov rdx, rbx
call fcn.1400ace04
xor r9d, r9d
lea r10d, [r9 + 1]
test eax, eax
jne 0x1400adf0a
movzx r11d, word [rsp + 0x38]
mov r8, qword [rsp + 0x58]
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdi
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0x88]
add dx, r10w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [rdi + 0x28]
and rcx, rax
mov qword [rbx], rcx
test r10b, r11b
je 0x1400ad9b0
mov r8, qword [rdi]
test dword [r8 + 4], 0x1000
je 0x1400ad90e
movzx ecx, dx
mov r10d, 0x2e
dec ecx
mov dword [rsp + 0x30], r10d
test ecx, ecx
jle 0x1400ad92f
mov rax, qword [rbx + 0x48]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x1400ad8fd
cmp qword [rcx], r8
cmove r10d, r9d
add rax, 8
sub rdx, 1
jne 0x1400ad8ee
mov dword [rsp + 0x30], r10d
jmp 0x1400ad92f
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1400ad92a
cmp dword [rax], r9d
je 0x1400ad92a
movsxd rcx, dword [rax]
call fcn.140042444
movsx r10d, ax
jmp 0x1400ad907
mov r10d, dword [rsp + 0x30]
test byte [rsi + 0x64], 0x80
je 0x1400ad9a1
mov edx, 0xa
cmp word [rsp + 0x34], dx
jl 0x1400ad9a1
mov rax, qword [rsi + 0x10]
movzx ecx, r14w
movzx r9d, word [rax + rcx*2]
cmp r10w, dx
jg 0x1400ad95b
xor edx, edx
movzx eax, dx
jmp 0x1400ad968
movsx rcx, r10w
call fcn.140042444
sub ax, 0x21
sub ax, r10w
sub ax, word [rsp + 0x34]
add ax, r9w
add ax, 0xa
jns 0x1400ad9a1
mov eax, 2
cmp r13w, ax
jge 0x1400adede
mov rax, qword [rsp + 0x68]
test dword [rax + 0x60], 0x20000
jne 0x1400adede
bts dword [rbx + 0x38], 0x14
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
xor r9d, r9d
jmp 0x1400adca1
test r11b, 0x82
je 0x1400ada3d
mov rax, qword [rsi + 8]
movzx ecx, r14w
movsx r8d, word [rax + rcx*2]
mov ecx, dword [rbx + 0x38]
or ecx, r10d
mov dword [rbx + 0x38], ecx
cmp r8d, 0xffffffff
je 0x1400ada1b
mov edx, ecx
test r8d, r8d
js 0x1400ada24
test r13w, r13w
jne 0x1400ada24
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
movzx r9d, r14w
sub eax, r10d
cmp r9d, eax
jne 0x1400ada24
test byte [rsi + 0x64], 8
jne 0x1400ada1b
cmp r8w, r10w
jne 0x1400ada13
xor edx, edx
cmp byte [rsi + 0x62], dl
je 0x1400ada13
lea eax, [rdx + 2]
cmp r11w, ax
je 0x1400ada1b
mov edx, ecx
bts edx, 0x10
jmp 0x1400ada21
mov edx, ecx
bts edx, 0xc
mov dword [rbx + 0x38], edx
cmp byte [rsp + 0xc9], r10b
jbe 0x1400ada35
bts edx, 0x15
mov dword [rbx + 0x38], edx
xor r9d, r9d
jmp 0x1400adca7
bt r11w, 8
jae 0x1400ada4e
or dword [rbx + 0x38], 8
mov edx, dword [rbx + 0x38]
jmp 0x1400ada35
mov rcx, qword [rdi]
mov r10d, dword [r8 + 0x44]
mov dword [rsp + 0x54], r10d
mov rcx, qword [rcx + 0x10]
call fcn.14006e6f8
movzx ecx, word [rsi + 0x60]
mov r8d, 1
movzx edx, r14w
mov r9d, r8d
sub ecx, edx
mov dword [rsp + 0x40], r8d
cmp eax, ecx
mov r15d, r8d
cmovl ecx, eax
movsxd rax, ecx
mov ecx, r8d
cmp rax, r8
jle 0x1400adbf5
lea ebp, [r8 + 0x1f]
mov r12d, edx
lea r8, [rdx*2 + 2]
mov rbx, rax
mov qword [rsp + 0x78], r8
lea r13, [rdx*8 + 8]
mov rdx, qword [rdi]
mov rax, qword [rdx + 0x10]
mov rcx, qword [rax + 0x20]
mov rax, qword [rdx + 0x18]
mov rdi, qword [rcx + rbp + 8]
test dword [rax + 4], 0x1000
mov rcx, qword [rax + 0x20]
je 0x1400adadd
mov rax, qword [rcx + 0x20]
mov r14, qword [rax + rbp + 8]
jmp 0x1400adae2
mov r14, qword [rcx + rbp + 8]
cmp byte [rdi], 0xa7
jne 0x1400adbcd
cmp dword [rdi + 0x2c], r10d
jne 0x1400adbcd
mov rax, qword [rsi + 8]
movzx ecx, word [r8 + rax]
cmp word [rdi + 0x30], cx
jne 0x1400adbcd
mov rax, qword [rsi + 0x38]
lea rcx, [rax + r12]
mov al, byte [rax + r12]
cmp byte [rcx + r15], al
jne 0x1400adbcd
mov rcx, rdi
call fcn.14006e084
mov dl, al
mov rcx, r14
call fcn.14006e500
movsx rcx, word [rdi + 0x30]
test cx, cx
js 0x1400adb54
mov r8, qword [rsi + 0x18]
cmp cx, word [r8 + 0x36]
jge 0x1400adb54
lea rdx, [rcx + rcx*2]
mov rcx, qword [r8 + 8]
mov r8b, byte [rcx + rdx*8 + 0xc]
jmp 0x1400adb57
mov r8b, 0x44
cmp al, r8b
jne 0x1400adbc8
mov rcx, qword [rsp + 0x80]
mov r8, r14
mov rdx, rdi
call fcn.14006e5c8
test rax, rax
je 0x1400adbc8
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + r13]
call fcn.140040b54
mov r9d, dword [rsp + 0x40]
mov ecx, 1
test eax, eax
jne 0x1400adbd2
mov r8, qword [rsp + 0x78]
add r9d, ecx
mov r10d, dword [rsp + 0x54]
add r8, 2
mov rdi, qword [rsp + 0x70]
add r15, rcx
add r13, 8
mov dword [rsp + 0x40], r9d
add rbp, 0x20
mov qword [rsp + 0x78], r8
cmp r15, rbx
jl 0x1400adab1
jmp 0x1400adbd2
mov r9d, dword [rsp + 0x40]
mov ecx, 1
mov rbx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x70]
mov ebp, dword [rsp + 0x4c]
movzx r11d, word [rsp + 0x38]
movzx r14d, word [rsp + 0x44]
movzx r13d, word [rsp + 0x46]
mov edx, dword [rbx + 0x38]
test r11b, 0x24
je 0x1400adc79
xor eax, eax
mov word [rbx + 0x1a], r9w
or edx, 0x22
mov r15d, eax
mov eax, 0x100
mov dword [rbx + 0x38], edx
mov r12, rdi
test word [rdi + 0x12], ax
je 0x1400adc6b
movzx r8d, word [rbx + 0x3c]
lea r15, [rdi + 0x38]
add r8d, ecx
mov rdx, rbx
mov rcx, qword [rsp + 0x68]
call fcn.1400ace04
mov r10d, 1
test eax, eax
jne 0x1400adf0a
movzx ecx, word [rbx + 0x3c]
lea ebp, [r10 + 0xf]
mov rax, qword [rbx + 0x48]
movzx r11d, word [rsp + 0x38]
mov qword [rax + rcx*8], r15
add word [rbx + 0x3c], r10w
or dword [rbx + 0x38], ebp
mov edx, dword [rbx + 0x38]
mov word [rbx + 0x1c], r10w
jmp 0x1400adc74
mov ebp, 0x10
lea r10d, [rbp - 0xf]
xor r9d, r9d
jmp 0x1400adcac
or edx, 0x12
mov word [rbx + 0x1c], r9w
xor r9d, r9d
mov dword [rbx + 0x38], edx
mov r15, rdi
test dl, 0x20
je 0x1400adc9e
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov r12, qword [rax + rcx*8 - 0x10]
jmp 0x1400adca1
mov r12, r9
mov r10d, 1
mov ebp, 0x10
mov eax, 2
test al, dl
je 0x1400add4c
movsx edx, word [rbx + 0x16]
mov edi, edx
test r12, r12
je 0x1400adce0
cmp word [r12 + 0x10], r9w
jg 0x1400adcd4
add dx, word [r12 + 0x10]
jmp 0x1400adce0
test byte [r12 + 0x12], 0x80
jne 0x1400adce0
add dx, 0xffec
test r15, r15
je 0x1400adcff
movzx eax, word [r15 + 0x10]
test ax, ax
jg 0x1400adcf4
add dx, ax
jmp 0x1400adcff
test byte [r15 + 0x12], 0x80
jne 0x1400adcff
sub dx, 0x14
test r12, r12
je 0x1400add1c
cmp word [r12 + 0x10], r9w
jle 0x1400add1c
test r15, r15
je 0x1400add1c
cmp word [r15 + 0x10], r9w
jle 0x1400add1c
sub dx, 0x14
test r12, r12
mov eax, r9d
mov ecx, r9d
setne cl
test r15, r15
setne al
add ecx, eax
mov eax, 0xa
sub edi, ecx
cmp dx, ax
jge 0x1400add3e
mov edx, eax
movzx eax, dx
cmp eax, edi
cmovl edi, eax
mov word [rbx + 0x16], di
jmp 0x1400addba
movzx r8d, word [rbx + 0x18]
add r8w, r10w
mov word [rbx + 0x18], r8w
movzx edx, word [rdi + 0x10]
test dx, dx
jg 0x1400add88
mov rax, qword [rsi + 8]
movzx ecx, r14w
cmp word [rax + rcx*2], r9w
jl 0x1400add88
mov r11d, dword [rsp + 0x30]
sub dx, r11w
add dx, word [rbx + 0x16]
mov word [rbx + 0x16], dx
movzx edi, dx
jmp 0x1400addbf
mov rax, qword [rsi + 0x10]
movzx ecx, r8w
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
add dx, word [rbx + 0x16]
bt r11w, 8
mov word [rbx + 0x16], dx
movzx eax, dx
movzx edi, dx
jae 0x1400addba
add ax, 0xa
mov word [rbx + 0x16], ax
movzx edi, ax
mov r11d, dword [rsp + 0x30]
mov eax, dword [rsi + 0x64]
lea r10d, [rdi + rbp]
mov ecx, 3
and eax, ecx
cmp al, cl
jne 0x1400addd7
movzx eax, r10w
jmp 0x1400addf6
mov rcx, qword [rsp + 0x58]
movsx eax, word [rsi + 0x5c]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
inc ax
add ax, di
movzx ecx, word [rsp + 0x34]
movzx edx, ax
call fcn.1400423d4
test dword [rbx + 0x38], 0x4000140
jne 0x1400ade18
movzx edx, r10w
movzx ecx, ax
call fcn.1400423d4
mov rbp, qword [rsp + 0x60]
lea ecx, [rax + r11]
movzx r8d, word [rsp + 0x48]
lea eax, [rdi + r11]
add cx, r13w
add ax, r13w
mov word [rbx + 0x16], ax
mov rdx, rbx
mov word [rbx + 0x14], cx
mov rcx, qword [rbp + 8]
call fcn.1400ad3e8
mov rdx, rbx
mov rcx, rbp
call fcn.1400ad0b4
mov ecx, dword [rbx + 0x38]
mov edx, 2
test dl, cl
mov dword [rsp + 0x4c], eax
mov ebp, eax
cmovne di, word [rsp + 0x36]
lea eax, [rdx + 0xe]
mov word [rbx + 0x16], di
test al, cl
jne 0x1400aded5
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1400aded5
lea r8d, [rdx + 1]
cmp cx, word [rsi + 0x5e]
jb 0x1400ade91
mov eax, dword [rsi + 0x64]
and al, r8b
cmp al, dl
je 0x1400aded5
cmp cx, r8w
jbe 0x1400adebb
mov rdx, qword [rsp + 0x80]
mov rax, qword [rdx]
mov ecx, dword [rax + 0x188]
test ecx, ecx
je 0x1400adebb
mov eax, 1
mov dword [rdx + 0x18], 9
add dword [rdx + 0x30], eax
mov r9d, dword [rsp + 0x30]
mov r8, rsi
mov rdx, qword [rsp + 0x58]
add r9d, r13d
mov rcx, qword [rsp + 0x60]
call fcn.1400ad5bc
movzx ecx, word [rsp + 0x36]
mov word [rbx + 0x16], cx
lea rcx, [rsp + 0xa0]
call fcn.1400ab550
xor r9d, r9d
mov qword [rsp + 0x70], rax
mov rdi, rax
lea edx, [r9 + 3]
lea r10d, [r9 + 1]
lea r8d, [r9 + 0x10]
test ebp, ebp
je 0x1400ad73c
mov rax, qword [rsp + 0x88]
movzx r12d, word [rsp + 0x4a]
movzx edx, word [rsp + 0x3e]
mov r15d, dword [rsp + 0x50]
mov qword [rbx], rax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], r12w
mov dword [rbx + 0x38], r15d
mov word [rbx + 0x3c], dx
cmp r14w, r12w
jne 0x1400ae02d
movzx ecx, word [rsi + 0x5e]
movzx eax, r14w
add eax, r10d
cmp eax, ecx
jae 0x1400ae02d
cmp r14w, dx
jne 0x1400ae02d
test byte [rsi + 0x64], 0x40
jne 0x1400ae02d
test byte [rsi + 0x64], 0x80
je 0x1400ae02d
mov rcx, qword [rsp + 0x68]
test dword [rcx + 0x60], 0x4000
jne 0x1400ae02d
mov rax, qword [rsi + 0x10]
movzx edi, r14w
cmp word [rax + rdi*2 + 2], 0x2a
jl 0x1400ae02d
lea r8d, [r10 + rdx]
mov rdx, rbx
call fcn.1400ace04
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x1400ae02d
movzx ecx, word [rbx + 0x3c]
lea r8d, [rax + 1]
add word [rbx + 0x18], r8w
add word [rbx + 0x3e], r8w
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdx
add word [rbx + 0x3c], r8w
mov r8, rsi
bts dword [rbx + 0x38], 0xf
mov rax, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
movzx r9d, word [rax + rdi*2]
sub r9w, word [rax + rdi*2 + 2]
sub word [rbx + 0x16], r9w
add r9w, 5
add r9w, r13w
call fcn.1400ad5bc
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], r12w
mov dword [rbx + 0x38], r15d
mov eax, ebp
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.1400f7bc0
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret