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

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x130
mov rax, qword [0x14028a238]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rax, qword [rcx]
mov r10, rcx
mov qword [rsp + 0x68], rcx
mov rsi, r8
mov word [rsp + 0x32], r9w
mov r8, rdx
mov qword [rsp + 0x70], rdx
mov rax, qword [rax]
mov rbx, qword [r10 + 0x10]
mov qword [rsp + 0x80], rax
mov rcx, qword [rax]
mov qword [rsp + 0x78], rcx
xor ecx, ecx
mov ebp, ecx
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], rcx
cmp dword [rax + 0x30], ecx
je 0x1400a3faf
mov eax, dword [rax + 0x18]
jmp 0x1400a474e
movzx ecx, word [rbx + 0x1a]
mov edx, SafeArrayCopy
mov eax, dword [rbx + 0x38]
test al, 0x20
movzx r11d, word [rbx + 0x3c]
mov r8d, dword [r8 + 0x44]
mov word [rsp + 0x3a], cx
movzx ecx, word [rbx + 0x1c]
mov word [rsp + 0x3c], cx
movzx ecx, word [rbx + 0x3e]
mov word [rsp + 0x40], cx
mov rcx, qword [rbx]
mov qword [rsp + 0x88], rcx
movzx ecx, word [rbx + 0x16]
mov dword [rsp + 0x64], eax
mov eax, 0x1bf
cmove edx, eax
mov word [rsp + 0x36], cx
movzx eax, word [rbx + 0x18]
mov ecx, edx
and ecx, 0xffffffc3
mov word [rsp + 0x30], ax
mov r9d, eax
mov qword [rsp + 0x28], rsi
mov eax, dword [rsi + 0x64]
and al, 4
mov qword [rsp + 0x128], rdi
mov word [rsp + 0x3e], r11w
cmove ecx, edx
mov rdx, qword [r10 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xa0]
call fcn.1400a12c0
xor edx, edx
mov rdi, rax
mov word [rbx + 0x12], dx
mov rcx, qword [rsi + 0x10]
movzx eax, word [rcx]
mov word [rsp + 0x60], ax
cmp ax, 0xa
jg 0x1400a4065
mov word [rsp + 0x38], dx
mov ecx, 0x100
jmp 0x1400a4082
movsx rcx, ax
call fcn.14000d2a0
sub ax, 0x21
mov ecx, 0x100
mov word [rsp + 0x38], ax
xor edx, edx
jmp 0x1400a4082
xor edx, edx
test rdi, rdi
je 0x1400a4609
movzx r9d, word [rdi + 0x14]
mov ebp, edx
mov word [rsp + 0x34], r9w
cmp r9w, cx
je 0x1400a40a8
test byte [rdi + 0x12], 0x80
je 0x1400a4167
movzx r10d, word [rsp + 0x30]
mov rax, qword [rsi + 8]
movsx r8, word [rax + r10*2]
test r8d, r8d
js 0x1400a4158
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
mov edx, dword [rax + rcx*8 + 8]
and edx, 0xf
jne 0x1400a45e2
mov ecx, 0x100
mov rax, qword [rdi + 0x28]
test qword [rbx + 8], rax
jne 0x1400a45e2
test word [rdi + 0x12], cx
je 0x1400a40fd
cmp r9w, 0x10
je 0x1400a45e2
mov r11, qword [rsp + 0x70]
movzx edx, byte [r11 + 0x3c]
test dl, 0x58
je 0x1400a4139
mov rcx, qword [rdi]
mov r8d, dword [rcx + 4]
test r8b, 3
je 0x1400a45e2
mov eax, dword [r11 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1400a45e2
test dl, 0x18
je 0x1400a4139
test r8b, 2
jne 0x1400a45e2
cmp byte [rsi + 0x62], 0
je 0x1400a4172
movzx eax, word [rsi + 0x5e]
dec eax
movzx ecx, r10w
cmp ecx, eax
jne 0x1400a4172
mov rax, qword [rsp + 0x68]
or byte [rax + 0x20], 2
jmp 0x1400a417b
cmp r8d, 0xffffffff
je 0x1400a45e2
jmp 0x1400a40d9
movzx r10d, word [rsp + 0x30]
jmp 0x1400a40de
mov rax, qword [rsp + 0x68]
or byte [rax + 0x20], 1
mov eax, dword [rsp + 0x64]
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], r10w
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jb 0x1400a41d5
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
movzx r8d, ax
inc r8d
call fcn.1400a3410
test eax, eax
jne 0x1400a4605
movzx r9d, word [rsp + 0x34]
movzx r10d, word [rsp + 0x30]
mov r11, qword [rsp + 0x70]
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdi
inc word [rbx + 0x3c]
mov rcx, qword [rdi + 0x28]
or rcx, qword [rsp + 0x88]
mov rax, qword [rbx + 8]
not rax
and rcx, rax
mov qword [rbx], rcx
test r9b, 1
je 0x1400a4309
mov r8, qword [rdi]
test dword [r8 + 4], 0x1000
je 0x1400a4251
movzx eax, word [rbx + 0x3c]
mov ebp, 0x2e
dec eax
test eax, eax
jle 0x1400a4269
mov rcx, qword [rbx + 0x48]
xor r9d, r9d
mov edx, eax
nop dword [rax]
mov rax, qword [rcx]
test rax, rax
je 0x1400a423f
cmp qword [rax], r8
cmove ebp, r9d
add rcx, 8
sub rdx, 1
jne 0x1400a4230
movzx r9d, word [rsp + 0x34]
jmp 0x1400a4269
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1400a4269
movsxd rcx, dword [rax]
test ecx, ecx
je 0x1400a4269
call fcn.14000d2a0
movsx ebp, ax
test byte [rsi + 0x64], 0x80
je 0x1400a42d6
movzx r11d, word [rsp + 0x38]
cmp r11w, 0xa
jl 0x1400a42d6
mov rax, qword [rsi + 0x10]
movzx ecx, r10w
movzx r8d, word [rax + rcx*2]
cmp bp, 0xa
jg 0x1400a4293
xor eax, eax
jmp 0x1400a42a0
movsx rcx, bp
call fcn.14000d2a0
sub ax, 0x21
sub ax, bp
sub ax, r11w
add ax, r8w
add ax, 0xa
jns 0x1400a42d6
cmp word [rsp + 0x32], 2
jge 0x1400a45e2
mov rax, qword [rsp + 0x78]
test dword [rax + 0x60], 0x20000
jne 0x1400a45e2
or dword [rbx + 0x38], 0x100000
or dword [rbx + 0x38], 4
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x48]
mov r10d, 0x100
test byte [rbx + 0x38], 2
je 0x1400a4481
mov r9, rax
mov qword [rsp + 0x20], rbx
mov r8, rcx
call fcn.1400a3230
jmp 0x1400a44db
test r9b, 0x82
je 0x1400a4382
mov rax, qword [rsi + 8]
movzx ecx, r10w
movsx edx, word [rax + rcx*2]
or dword [rbx + 0x38], 1
mov ecx, dword [rbx + 0x38]
cmp edx, 0xffffffff
je 0x1400a4361
test edx, edx
js 0x1400a4368
cmp word [rsp + 0x32], 0
jne 0x1400a4368
movzx edx, word [rsi + 0x5e]
movzx r8d, r10w
lea eax, [rdx - 1]
cmp r8d, eax
jne 0x1400a4368
test byte [rsi + 0x64], 8
jne 0x1400a4361
cmp edx, 1
jne 0x1400a435b
cmp byte [rsi + 0x62], 0
je 0x1400a435b
cmp r9w, 2
je 0x1400a4361
bts ecx, 0x10
jmp 0x1400a4365
bts ecx, 0xc
mov dword [rbx + 0x38], ecx
cmp byte [rsp + 0xc9], 1
jbe 0x1400a42da
or dword [rbx + 0x38], 0x200000
jmp 0x1400a42da
mov eax, 0x100
test ax, r9w
je 0x1400a4396
or dword [rbx + 0x38], 8
jmp 0x1400a42da
mov edx, dword [r11 + 0x44]
mov r8, rsi
mov rcx, qword [rsp + 0x80]
movzx r9d, r10w
mov qword [rsp + 0x20], rdi
call fcn.1400a3d10
movzx r9d, word [rsp + 0x34]
mov r10d, 0x100
test r9b, 0x24
je 0x1400a4440
or dword [rbx + 0x38], 0x22
mov rcx, rdi
mov word [rbx + 0x1a], ax
xor eax, eax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x48], rax
test word [rdi + 0x12], r10w
je 0x1400a42ea
movzx r8d, word [rbx + 0x3c]
lea rax, [rdi + 0x38]
mov rcx, qword [rsp + 0x78]
inc r8d
mov rdx, rbx
mov qword [rsp + 0x48], rax
call fcn.1400a3410
test eax, eax
jne 0x1400a4605
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x48]
movzx r9d, word [rsp + 0x34]
mov qword [rax + rcx*8], rdx
mov eax, 1
inc word [rbx + 0x3c]
mov rcx, rdi
or dword [rbx + 0x38], 0x10
mov word [rbx + 0x1c], ax
mov rax, rdx
jmp 0x1400a42e4
or dword [rbx + 0x38], 0x12
test byte [rbx + 0x38], 0x20
mov word [rbx + 0x1c], ax
mov rax, rdi
mov qword [rsp + 0x48], rax
je 0x1400a4475
movzx eax, word [rbx + 0x3c]
sub eax, 2
movsxd rcx, eax
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rcx*8]
mov rax, rdi
mov qword [rsp + 0x58], rcx
jmp 0x1400a42ea
xor ecx, ecx
mov qword [rsp + 0x58], rcx
jmp 0x1400a42ea
inc word [rbx + 0x18]
movzx edx, word [rdi + 0x10]
movzx r8d, word [rbx + 0x18]
test dx, dx
jg 0x1400a44ac
movzx ecx, word [rsp + 0x30]
mov rax, qword [rsi + 8]
cmp word [rax + rcx*2], 0
jl 0x1400a44ac
sub dx, bp
add word [rbx + 0x16], dx
jmp 0x1400a44db
mov rdx, qword [rsi + 0x10]
lea eax, [r8 - 1]
movsxd rcx, eax
movzx r8d, word [rdx + r8*2]
sub r8w, word [rdx + rcx*2]
add r8w, word [rbx + 0x16]
mov word [rbx + 0x16], r8w
test r10w, r9w
je 0x1400a44db
add r8w, 0xa
mov word [rbx + 0x16], r8w
mov eax, dword [rsi + 0x64]
and eax, 3
cmp al, 3
jne 0x1400a44ef
movzx eax, word [rbx + 0x16]
add ax, 0x10
jmp 0x1400a450f
mov rcx, qword [rsp + 0x70]
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, word [rbx + 0x16]
movzx ecx, word [rsp + 0x38]
movzx edx, ax
call fcn.14000d230
test dword [rbx + 0x38], 0x4000140
mov word [rbx + 0x14], ax
jne 0x1400a453d
movzx edx, word [rbx + 0x16]
movzx ecx, ax
add dx, 0x10
call fcn.14000d230
mov word [rbx + 0x14], ax
movzx ecx, word [rsp + 0x32]
mov rdx, rbx
movzx edi, word [rbx + 0x16]
movzx r8d, word [rsp + 0x60]
lea eax, [rcx + rbp]
add word [rbx + 0x14], ax
lea eax, [rcx + rbp]
add word [rbx + 0x16], ax
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 8]
call fcn.1400a3b60
mov rcx, qword [rsp + 0x68]
mov rdx, rbx
call fcn.1400a3a00
mov ecx, dword [rbx + 0x38]
test cl, 2
mov dword [rsp + 0x50], eax
cmovne di, word [rsp + 0x36]
mov word [rbx + 0x16], di
test cl, 0x10
jne 0x1400a45d9
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1400a45d9
cmp cx, word [rsi + 0x5e]
jb 0x1400a45aa
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, 2
je 0x1400a45d9
cmp cx, 3
jbe 0x1400a45bd
mov rcx, qword [rsp + 0x80]
call fcn.14000aa70
movzx r9d, word [rsp + 0x32]
mov r8, rsi
mov rdx, qword [rsp + 0x70]
add r9w, bp
mov rcx, qword [rsp + 0x68]
call fcn.1400a3f40
movzx ecx, word [rsp + 0x36]
mov word [rbx + 0x16], cx
lea rcx, [rsp + 0xa0]
call fcn.1400a0f30
mov ebp, dword [rsp + 0x50]
mov rdi, rax
mov ecx, 0x100
test ebp, ebp
je 0x1400a4080
jmp 0x1400a4609
mov ebp, dword [rsp + 0x50]
mov rax, qword [rsp + 0x88]
movzx edi, word [rsp + 0x30]
movzx ecx, word [rsp + 0x40]
movzx r11d, word [rsp + 0x3e]
mov qword [rbx], rax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], di
mov word [rbx + 0x3e], cx
mov word [rbx + 0x3c], r11w
cmp di, cx
jne 0x1400a4744
movzx ecx, word [rsi + 0x5e]
movzx eax, di
inc eax
cmp eax, ecx
jae 0x1400a4744
cmp di, r11w
jne 0x1400a4744
mov eax, dword [rsi + 0x64]
test al, 0x40
jne 0x1400a4744
test al, al
jns 0x1400a4744
mov r9, qword [rsp + 0x78]
test dword [r9 + 0x60], 0x4000
jne 0x1400a4744
mov rax, qword [rsi + 0x10]
movzx ecx, di
cmp word [rax + rcx*2 + 2], 0x2a
jl 0x1400a4744
movzx r8d, r11w
mov rdx, rbx
inc r8d
mov rcx, r9
call fcn.1400a3410
mov ebp, eax
test eax, eax
jne 0x1400a4744
inc word [rbx + 0x18]
mov r8, rsi
inc word [rbx + 0x3e]
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x70]
movzx r9d, di
mov qword [rax + rcx*8], 0
inc word [rbx + 0x3c]
or dword [rbx + 0x38], 0x8000
mov r10, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x68]
movzx eax, di
movzx r11d, word [r10 + r9*2]
movzx r9d, word [rsp + 0x32]
sub r11w, word [r10 + rax*2 + 2]
add r9w, 5
sub word [rbx + 0x16], r11w
add r9w, r11w
call fcn.1400a3f40
movzx eax, word [rsp + 0x36]
movzx ecx, word [rsp + 0x40]
mov word [rbx + 0x16], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x18], di
mov word [rbx + 0x3e], cx
mov rdi, qword [rsp + 0x128]
mov eax, ebp
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.14016ce60
add rsp, 0x130
pop rsi
pop rbp
pop rbx
ret