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

Disassembly:
mov word [rsp + 0x20], r9w
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov rax, qword [rcx]
xor r8d, r8d
movzx ebx, word [rsp + 0x160]
mov rsi, rdx
mov qword [rsp + 0x68], r8
mov r10, rcx
mov qword [rsp + 0x80], r8
mov r12d, r8d
mov r14, qword [rax]
mov r15d, r8d
mov qword [rsp + 0x98], r14
test bx, bx
je 0x140146e2a
test byte [r14 + 0x60], 0x40
jne 0x14014786b
movzx ebp, word [rdx]
mov word [rsp + 0x7a], bp
cmp ebp, 0x3f
ja 0x14014786b
mov ecx, ebp
mov qword [rsp + 0xb0], r8
mov r11d, r8d
mov qword [rsp + 0x60], r8
mov edx, 1
mov dword [rsp + 0x58], r8d
shl rdx, cl
mov r13b, 1
dec rdx
mov dword [rsp + 0x44], r13d
mov ecx, 0x803
mov qword [rsp + 0xa8], rdx
test cx, r9w
mov eax, ebp
mov dword [rsp + 0x48], eax
mov rdi, r8
setne r11b
add r11w, 0x182
xor ecx, ecx
mov dword [rsp + 0x4c], r11d
mov qword [rsp + 0xa0], rcx
nop dword [rax + rax]
cmp r15, rdx
jae 0x14014782f
movzx eax, bx
cmp r8d, eax
jg 0x140147828
test r8d, r8d
jle 0x140146ec4
or rdi, qword [r12 + 8]
mov qword [rsp + 0x60], rdi
cmp r8d, eax
jge 0x140146eef
bt r9w, 0xb
mov rax, qword [rsp + 0x150]
mov rax, qword [rax + 0x18]
mov r12, qword [rax + rcx*8]
mov qword [rsp + 0x70], r12
jae 0x140146efc
mov eax, dword [rsp + 0x48]
jmp 0x1401477ee
mov r12, qword [rsp + 0x168]
mov qword [rsp + 0x70], r12
test dword [r12 + 0x38], 0x400
jne 0x14014780c
movzx eax, r9w
mov ecx, 0x80
and ax, cx
mov word [rsp + 0x78], ax
je 0x140146f26
xor eax, eax
mov word [r12 + 0x1e], ax
movzx eax, byte [r12 + 0x10]
lea rcx, [rax + rax*4]
mov rax, qword [r10 + 8]
add rcx, rcx
mov edx, dword [rax + rcx*8 + 0x28]
xor eax, eax
mov ebp, eax
mov dword [rsp + 0x50], edx
cmp dword [rsp + 0x48], eax
jbe 0x140147135
mov r13d, dword [rsp + 0x48]
mov eax, ebp
bt r15, rax
jb 0x140147113
mov eax, ebp
shl rax, 5
add rsi, rax
mov r14d, ebp
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x14014710b
nop word [rax + rax]
mov eax, dword [rbx + 4]
test eax, 0x82000
je 0x140146fb1
bt eax, 0x13
jae 0x140146f9a
mov rax, qword [rbx + 0x20]
mov rbx, qword [rax + 8]
jmp 0x140146fa3
cmp byte [rbx], 0x72
jne 0x140146fa8
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140146f80
test rbx, rbx
je 0x14014710b
movzx eax, byte [rbx]
add al, 0x58
test al, 0xfd
jne 0x14014710b
cmp dword [rbx + 0x2c], edx
jne 0x14014710b
movsx r8d, word [rbx + 0x30]
lea rcx, [r10 + 0x70]
movzx eax, r11w
mov r9, rdi
not r9
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], eax
call fcn.140130940
mov rdi, rax
test rax, rax
je 0x1401470f5
movzx r9d, word [rax + 0x14]
cmp r9w, 1
jne 0x140147033
movzx edx, word [r12 + 0x3c]
xor eax, eax
mov ecx, eax
test edx, edx
je 0x14014702b
mov r8, qword [r12 + 0x48]
movsxd rax, ecx
cmp rdi, qword [r8 + rax*8]
je 0x14014702b
inc ecx
cmp ecx, edx
jl 0x140147017
jmp 0x1401470f5
cmp ecx, edx
jge 0x1401470f5
test r9b, 0x82
je 0x1401470e9
cmp word [rbx + 0x30], 0
jl 0x1401470e9
mov rbx, qword [rsp + 0x140]
mov rdx, qword [rsi + 8]
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.1400f15a0
mov rsi, rax
test rax, rax
jne 0x14014706e
mov rax, qword [rbx]
mov rsi, qword [rax + 0x10]
mov rax, qword [rdi]
test dword [rax + 4], 0x400
je 0x140147084
mov rdi, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
jmp 0x14014708c
mov rdi, qword [rax + 0x18]
mov rdx, qword [rax + 0x10]
test dword [rdx + 4], 0x200
jne 0x1401470b3
test rdi, rdi
je 0x1401470a3
test dword [rdi + 4], 0x200
jne 0x1401470b0
mov rcx, rbx
call fcn.1400f15a0
test rax, rax
jne 0x1401470c0
mov rdx, rdi
mov rcx, rbx
call fcn.1400f15a0
test rax, rax
je 0x1401470f5
mov rdx, qword [rsi]
mov r9, qword [rax]
sub r9, rdx
nop dword [rax]
movzx eax, byte [rdx]
movzx r8d, byte [r9 + rdx]
cmp eax, r8d
jne 0x1401471ce
test eax, eax
jne 0x1401471e7
bts r15, r14
mov qword [rsp + 0x80], r15
mov edx, dword [rsp + 0x50]
mov r10, qword [rsp + 0x140]
mov r11d, dword [rsp + 0x4c]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x148]
inc ebp
cmp ebp, r13d
jl 0x140146f52
mov r13d, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x58]
mov r14, qword [rsp + 0x98]
mov qword [rsp + 0x68], r15
mov eax, dword [r12 + 0x38]
bt eax, 0xc
jb 0x1401476a7
bt eax, 8
jae 0x14014720e
cmp qword [r12 + 0x28], 0
je 0x1401471ef
test dword [r14 + 0x60], 0x10000000
jne 0x1401471ef
lea rax, [rsp + 0x80]
mov r9d, edx
mov qword [rsp + 0x30], rax
mov rdx, r12
mov rax, qword [rsp + 0x170]
mov rcx, r10
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call fcn.140146c50
mov r15, qword [rsp + 0x80]
mov qword [rsp + 0x68], r15
test eax, eax
je 0x1401471ef
xor r8d, r8d
xor r13b, r13b
mov qword [rsp + 0x90], r8
mov dword [rsp + 0x44], r13d
mov ebp, r13d
movzx ecx, r8w
mov word [rsp + 0x5c], r8w
mov r11d, r8d
jmp 0x14014725a
lea r10, [0x140171c70]
movzx ecx, byte [rax + r10]
movzx eax, byte [r8 + r10]
cmp ecx, eax
jne 0x1401470f5
inc rdx
jmp 0x1401470d0
mov ebp, dword [rsp + 0x44]
xor r8d, r8d
mov r11d, r8d
mov qword [rsp + 0x90], r8
mov word [rsp + 0x5c], r8w
mov ecx, 1
jmp 0x14014725a
mov r11, qword [r12 + 0x20]
mov qword [rsp + 0x90], r11
test r11, r11
je 0x14014786b
test byte [r11 + 0x64], 4
jne 0x14014786b
cmp byte [r11 + 0x62], 0
movzx ecx, word [r11 + 0x5e]
mov word [rsp + 0x5c], cx
movzx ecx, word [r11 + 0x60]
je 0x140147250
bt eax, 0xf
jb 0x140147250
mov bpl, 1
jmp 0x140147253
xor bpl, bpl
xor r8d, r8d
mov dword [rsp + 0x44], ebp
xor al, al
xor dl, dl
xor dil, dil
mov byte [rsp + 0x41], al
movzx eax, cx
mov r13d, r8d
mov byte [rsp + 0x40], dl
mov dword [rsp + 0x54], edi
mov dword [rsp + 0x88], eax
test eax, eax
je 0x1401476a2
movzx r10d, word [r12 + 0x18]
mov bl, 1
cmp r13d, r10d
jge 0x1401472fa
movzx eax, word [r12 + 0x3e]
cmp r13d, eax
jl 0x1401472fa
mov r9, qword [r12 + 0x48]
movsxd rax, r13d
mov rcx, qword [r9 + rax*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x4c], ax
je 0x1401472cf
mov ecx, 0x180
test cx, ax
movzx eax, bpl
mov ecx, r8d
cmove ecx, eax
movzx ebp, cl
mov dword [rsp + 0x44], ebp
jmp 0x140147665
test bl, al
je 0x1401472fa
mov r8, qword [rcx]
lea edx, [r13 + 1]
cmp edx, r10d
jge 0x1401472f7
nop
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r8
je 0x1401472f5
inc edx
cmp edx, r10d
jl 0x1401472e0
jmp 0x1401472f7
xor bl, bl
xor r8d, r8d
test r11, r11
je 0x140147327
mov rax, qword [r11 + 8]
movsxd rcx, r13d
movsx r15d, word [rax + rcx*2]
mov rax, qword [r11 + 0x38]
movzx r12d, byte [rcx + rax]
mov rax, qword [r11 + 0x18]
and r12b, 1
movsx ecx, word [rax + 0x34]
cmp r15d, ecx
jne 0x140147330
jmp 0x14014732a
xor r12b, r12b
mov r15d, 0xffffffff
test bpl, bpl
je 0x14014736c
test r15d, r15d
js 0x14014735c
cmp r13d, r10d
jl 0x14014736c
movsxd rax, r15d
lea rdx, [rax + rax*2]
mov rax, qword [r11 + 0x18]
mov rcx, qword [rax + 8]
test byte [rcx + rdx*8 + 8], 0xf
jne 0x14014736c
mov byte [rsp + 0x44], 0
jmp 0x14014736c
cmp r15d, 0xfffffffe
movzx ebp, bpl
cmove ebp, r8d
mov dword [rsp + 0x44], ebp
mov r14d, r8d
test bl, bl
je 0x1401475af
nop word [rax + rax]
cmp r14d, dword [rsp + 0x48]
jge 0x1401475ab
mov rcx, qword [rsp + 0x68]
mov eax, r14d
bt rcx, rax
jb 0x140147514
movsxd rbp, r14d
mov rdx, rbp
shl rdx, 5
mov rdx, qword [rdx + rsi + 8]
test rdx, rdx
je 0x140147514
mov eax, dword [rdx + 4]
test eax, 0x82000
je 0x1401473e6
bt eax, 0x13
jae 0x1401473cf
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx + 8]
jmp 0x1401473d8
cmp byte [rdx], 0x72
jne 0x1401473dd
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x1401473b5
test rdx, rdx
je 0x140147514
test byte [rsp + 0x158], 0xc0
mov ecx, r8d
movzx eax, bl
cmovne ecx, eax
movzx ebx, cl
movzx esi, cl
cmp r15d, 0xffffffff
jl 0x140147431
movzx eax, byte [rdx]
cmp al, 0xa8
je 0x140147412
cmp al, 0xaa
jne 0x140147514
mov eax, dword [rsp + 0x50]
cmp dword [rdx + 0x2c], eax
jne 0x140147514
movsx eax, word [rdx + 0x30]
cmp eax, r15d
jne 0x140147514
movsxd rdi, r13d
jmp 0x140147491
mov rax, qword [r11 + 0x50]
movsxd rdi, r13d
mov rcx, rdi
shl rcx, 5
mov r8, qword [rcx + rax + 8]
test r8, r8
je 0x140147463
nop dword [rax]
test dword [r8 + 4], 0x2000
je 0x140147463
mov r8, qword [r8 + 0x10]
test r8, r8
jne 0x140147450
test dword [rdx + 4], 0x2000
je 0x140147475
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x140147463
mov r9d, dword [rsp + 0x50]
xor ecx, ecx
call fcn.1400f17b0
mov r11, qword [rsp + 0x90]
test eax, eax
jne 0x140147511
cmp r15d, 0xffffffff
je 0x14014753f
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
shl rbp, 5
mov rbx, qword [rax]
mov rcx, rbx
mov rdx, qword [rdx + rbp + 8]
call fcn.1400f15a0
test rax, rax
jne 0x1401474cb
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov r11, qword [rsp + 0x90]
mov r8, qword [rax]
mov rax, qword [r11 + 0x40]
lea r11, [0x140171c70]
mov r9, qword [rax + rdi*8]
sub r9, r8
nop dword [rax + rax]
movzx edx, byte [r8]
movzx eax, byte [r9 + r8]
cmp edx, eax
jne 0x14014752c
test edx, edx
jne 0x14014753a
mov r11, qword [rsp + 0x90]
movzx ebx, sil
test edx, edx
je 0x14014753f
xor r8d, r8d
inc r14d
test bl, bl
je 0x1401475ab
mov rsi, qword [rsp + 0x148]
jmp 0x140147380
movzx ecx, byte [rax + r11]
movzx edx, byte [rdx + r11]
sub edx, ecx
jne 0x140147501
inc r8
jmp 0x1401474f0
cmp word [rsp + 0x78], 0
je 0x140147554
mov rcx, qword [rsp + 0x70]
lea eax, [r13 + 1]
mov word [rcx + 0x1e], ax
test byte [rsp + 0x158], 0x40
mov r9b, 1
mov rsi, qword [rsp + 0x148]
jne 0x140147606
movzx edi, byte [rsp + 0x41]
movsxd rax, r14d
shl rax, 5
movzx edx, byte [rax + rsi + 0x18]
and dl, r9b
test dil, dil
je 0x1401475e1
movzx r8d, byte [rsp + 0x40]
xor eax, eax
xor r12b, r8b
mov byte [rsp + 0x40], r8b
cmp r12b, dl
mov byte [rsp + 0x41], dil
mov ecx, eax
movzx eax, r9b
cmove ecx, eax
test cl, cl
jne 0x140147606
mov edi, dword [rsp + 0x54]
mov r12, qword [rsp + 0x70]
test r13d, r13d
je 0x1401475c7
movzx eax, word [rsp + 0x5c]
cmp r13d, eax
jge 0x140147681
mov r15, qword [rsp + 0x68]
xor r13b, r13b
mov rsi, qword [rsp + 0x148]
mov dword [rsp + 0x44], r13d
jmp 0x140147693
xor dl, r12b
mov byte [rsp + 0x40], dl
je 0x140147601
mov rdx, qword [rsp + 0x170]
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x41], r9b
mov r12, qword [rsp + 0x70]
movsxd rcx, r14d
mov rax, rcx
shl rax, 5
test byte [rax + rsi + 0x18], 2
je 0x140147630
movzx eax, word [r12 + 0x18]
cmp r13d, eax
jne 0x140147678
or dword [r12 + 0x38], 0x80000
mov edi, dword [rsp + 0x54]
cmp r15d, 0xffffffff
mov r15, qword [rsp + 0x68]
mov eax, 1
mov ebp, dword [rsp + 0x44]
movzx edi, dil
cmove edi, eax
bts r15, rcx
mov qword [rsp + 0x68], r15
xor r8d, r8d
mov qword [rsp + 0x80], r15
mov dword [rsp + 0x54], edi
inc r13d
cmp r13d, dword [rsp + 0x88]
jl 0x140147282
jmp 0x14014768e
mov edi, dword [rsp + 0x54]
jmp 0x1401475b4
mov r15, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x148]
mov r13d, dword [rsp + 0x44]
test dil, dil
je 0x1401476a7
mov r13b, 1
mov dword [rsp + 0x44], r13d
jmp 0x1401476b0
mov r13d, dword [rsp + 0x44]
test r13b, r13b
je 0x1401477aa
mov r14, qword [rsp + 0xb0]
xor ecx, ecx
or r14, qword [r12 + 8]
mov edi, ecx
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0xb0], r14
test eax, eax
je 0x1401477ae
mov r12, qword [rsp + 0x140]
mov r13d, eax
mov eax, edi
bt r15, rax
jb 0x140147788
mov eax, edi
shl rax, 5
mov ebp, edi
mov rbx, qword [rax + rsi + 8]
test rbx, rbx
je 0x140147715
lea rcx, [r12 + 0x258]
mov rdx, rbx
call fcn.1401308d0
mov rsi, rax
xor ecx, ecx
jmp 0x140147718
mov rsi, rcx
test rsi, rsi
jne 0x14014776f
mov qword [rsp + 0xb8], rcx
mov eax, 1
mov word [rsp + 0xdc], ax
lea rax, [fcn.1400b1fb0]
mov qword [rsp + 0xc0], rax
lea rax, [0x140112e40]
mov qword [rsp + 0xc8], rax
test rbx, rbx
je 0x14014776f
mov rdx, rbx
lea rcx, [rsp + 0xb8]
call fcn.14012ac00
cmp word [rsp + 0xdc], si
je 0x140147786
mov rax, r14
not rax
test rsi, rax
jne 0x140147786
bts r15, rbp
mov qword [rsp + 0x80], r15
xor ecx, ecx
mov rsi, qword [rsp + 0x148]
inc edi
cmp edi, r13d
jl 0x1401476e0
mov r12, qword [rsp + 0x70]
mov r13d, dword [rsp + 0x44]
mov qword [rsp + 0x68], r15
mov eax, dword [rsp + 0x48]
mov r10, qword [rsp + 0x140]
movzx r9d, word [rsp + 0x158]
mov r8d, dword [rsp + 0x58]
mov r11d, dword [rsp + 0x4c]
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
movzx ebx, word [rsp + 0x160]
mov r14, qword [rsp + 0x98]
inc r8d
inc rcx
mov dword [rsp + 0x58], r8d
mov qword [rsp + 0xa0], rcx
test r13b, r13b
jne 0x140146ea0
jmp 0x14014782c
cmp byte [r12 + 0x20], 0
je 0x140147828
mov eax, 0x280
and r9w, ax
mov eax, 0x80
cmp r9w, ax
jne 0x140147831
mov eax, dword [rsp + 0x48]
cmp r15, rdx
jne 0x140147838
movzx eax, byte [rsp + 0x7a]
jmp 0x14014786d
test r13b, r13b
jne 0x140147886
lea ecx, [rax - 1]
test ecx, ecx
jle 0x14014786b
cmp ecx, 0x40
jge 0x140147856
mov edx, 1
shl rdx, cl
dec rdx
jmp 0x14014785a
xor eax, eax
mov edx, eax
mov rax, rdx
and rax, r15
cmp rax, rdx
je 0x140147881
dec ecx
test ecx, ecx
jg 0x140147844
xor al, al
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx eax, cl
jmp 0x14014786d
mov al, 0xff
jmp 0x14014786d