Function at 0x140228600
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, 0xb8
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x6c], r9d
mov ebx, dword [rsp + 0x6c]
mov r15, rcx
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], r8
mov word [rsp + 0x64], bx
mov word [rsp + 0xac], ax
test ax, ax
je 0x14022865b
mov rax, qword [rcx]
mov rax, qword [rax]
test byte [rax + 0x60], 0x40
je 0x14022865b
xor eax, eax
jmp 0x140228d5a
mov rax, qword [rsp + 0x108]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
cmp word [rsp + 0x50], 0x3f
ja 0x140228654
movzx eax, word [rsp + 0x50]
mov cl, byte [rsp + 0x50]
mov bpl, 1
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x78], 0
mov dword [rsp + 0x54], eax
mov eax, 1
mov qword [rsp + 0x70], 0
shl rax, cl
mov qword [rsp + 0x30], 0
dec rax
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x6c]
and ax, 0x803
cmp ax, 1
sbb eax, eax
xor ebx, ebx
mov dword [rsp + 0x68], eax
add word [rsp + 0x68], 0x183
mov r12d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x88]
cmp qword [rsp + 0x30], rdi
jae 0x140228ce6
test bpl, 1
je 0x140228ce6
movzx eax, word [rsp + 0xac]
mov edx, r12d
cmp eax, r12d
jl 0x140228ce2
test r12d, r12d
je 0x140228717
mov rbx, qword [rbx + 8]
or qword [rsp + 0x78], rbx
cmp eax, edx
jle 0x140228742
mov rax, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x40]
mov bpl, 1
mov rax, qword [rax + 0x18]
mov rbx, qword [rax + rbx*8]
test word [rsp + 0x64], 0x800
jne 0x140228cd8
jmp 0x14022874a
mov rbx, qword [rsp + 0x128]
test byte [rbx + 0x39], 4
je 0x140228778
cmp byte [rbx + 0x20], 0
mov al, 0xff
je 0x140228d5a
mov r9d, dword [rsp + 0x6c]
and r9w, 0x280
cmp r9w, 0x80
jne 0x140228cf5
jmp 0x140228d5a
mov eax, dword [rsp + 0x64]
and ax, 0x80
mov word [rsp + 0xa6], ax
je 0x140228790
mov word [rbx + 0x1e], 0
movzx eax, byte [rbx + 0x10]
movzx r14d, word [rsp + 0x68]
xor edi, edi
lea r13, [r15 + 0x70]
imul rax, rax, 0x68
add rax, qword [r15 + 8]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x60], eax
mov rax, qword [rsp + 0x108]
add rax, 8
mov qword [rsp + 0x80], rax
mov rbp, rax
mov rax, qword [rsp + 0x78]
not rax
mov qword [rsp + 0x38], rax
cmp edi, dword [rsp + 0x54]
je 0x1402288e0
mov rsi, qword [rsp + 0x30]
mov ecx, edi
shr rsi, cl
and esi, 1
jne 0x1402288d5
mov rcx, qword [rbp]
call fcn.1401dbc60
mov r10, rax
test rax, rax
je 0x1402288d5
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x1402288d5
mov eax, dword [rsp + 0x60]
cmp dword [r10 + 0x2c], eax
jne 0x1402288d5
movsx r8d, word [r10 + 0x30]
mov dword [rsp + 0x20], r14d
mov edx, eax
mov rcx, r13
mov qword [rsp + 0x28], 0
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x48], r10
call fcn.1402117a0
mov r8, rax
test rax, rax
je 0x1402288d5
mov eax, dword [rax + 0x14]
mov r10, qword [rsp + 0x48]
cmp ax, 1
jne 0x14022888a
movzx edx, word [rbx + 0x3c]
cmp edx, esi
jle 0x1402288d5
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rsi*8]
inc rsi
cmp rax, r8
jne 0x140228865
mov eax, 1
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x1402288d5
mov qword [rsp + 0x58], r8
test al, 0x82
je 0x140228879
cmp word [r10 + 0x30], 0
js 0x140228879
mov rcx, qword [r15]
mov rdx, qword [rbp]
mov qword [rsp + 0x48], rcx
call fcn.1401db9e0
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov rsi, rax
mov rdx, qword [r8]
call fcn.1401da8c0
test rax, rax
je 0x1402288d5
mov rdx, qword [rax]
mov rcx, qword [rsi]
call fcn.1401fe2c0
test eax, eax
je 0x140228879
inc edi
add rbp, 0x20
jmp 0x1402287d3
mov eax, dword [rbx + 0x38]
bt eax, 0xc
jb 0x140228c56
bt eax, 8
jb 0x14022892e
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x140228654
test byte [rdi + 0x64], 4
jne 0x140228654
mov si, word [rdi + 0x5e]
mov edx, dword [rdi + 0x60]
mov word [rsp + 0xa4], si
xor esi, esi
cmp byte [rdi + 0x62], 0
je 0x140228942
shr eax, 0xf
xor eax, 1
and eax, 1
mov esi, eax
jmp 0x140228942
mov word [rsp + 0xa4], 0
xor edi, edi
mov edx, 1
mov sil, 1
mov eax, 1
mov ecx, r12d
mov byte [rsp + 0x67], 0
xor r13d, r13d
shl rax, cl
mov byte [rsp + 0x66], 0
xor ebp, ebp
mov qword [rsp + 0x98], rax
movzx eax, dx
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0xa0], r13d
cmp dword [rsp + 0xa8], r13d
jle 0x140228c4d
movzx edx, word [rbx + 0x18]
lea rax, [r13*8]
mov qword [rsp + 0x90], rax
cmp edx, r13d
jle 0x1402289f8
movzx eax, word [rbx + 0x3e]
cmp eax, dword [rsp + 0x48]
jg 0x1402289f8
mov rax, qword [rsp + 0x90]
mov rcx, qword [rbx + 0x48]
mov r8, qword [rcx + rax]
mov eax, dword [r8 + 0x14]
test word [rsp + 0x68], ax
je 0x1402289d5
test ax, 0x180
mov al, 0
cmovne esi, eax
jmp 0x140228c45
mov r11b, 1
test al, 1
je 0x1402289fb
mov r8, qword [r8]
lea rax, [r13 + 1]
cmp edx, eax
jle 0x1402289f8
mov r10, qword [rcx + rax*8]
inc rax
cmp qword [r10], r8
jne 0x1402289e3
xor r11d, r11d
jmp 0x1402289fb
mov r11b, 1
test rdi, rdi
je 0x140228d40
mov rcx, qword [rdi + 0x38]
mov rax, qword [rdi + 8]
mov cl, byte [rcx + r13]
movsx rax, word [rax + r13*2]
and ecx, 1
mov byte [rsp + 0xae], cl
mov rcx, qword [rdi + 0x18]
cmp ax, word [rcx + 0x34]
je 0x140228d48
movsx r12d, ax
test sil, sil
je 0x140228a5a
test r12d, r12d
jns 0x140228a41
cmp r12d, 0xfffffffe
jmp 0x140228a56
cmp edx, dword [rsp + 0xa0]
jg 0x140228a5a
imul rax, rax, 0x18
add rax, qword [rcx + 8]
test byte [rax + 8], 0xf
setne sil
mov rax, qword [rsp + 0x80]
movsxd r14, dword [rsp + 0x48]
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x58], rax
shl r14, 5
mov edx, dword [rsp + 0x54]
cmp dword [rsp + 0x38], edx
jge 0x140228beb
test r11b, r11b
je 0x140228beb
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x38]
shr rax, cl
test al, 1
jne 0x140228b94
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
call fcn.1401dbc60
mov rcx, rax
test rax, rax
je 0x140228b94
test byte [rsp + 0x64], 0xc0
setne r11b
cmp r12d, 0xffffffff
jl 0x140228af3
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x140228b97
mov eax, dword [rsp + 0x60]
cmp dword [rcx + 0x2c], eax
jne 0x140228b97
movsx eax, word [rcx + 0x30]
cmp eax, r12d
je 0x140228b5a
jmp 0x140228b97
mov rax, qword [rdi + 0x50]
mov r8d, dword [rsp + 0x60]
mov byte [rsp + 0xaf], r11b
add rax, r14
mov rdx, qword [rax + 8]
call fcn.1401da8e0
mov r11b, byte [rsp + 0xaf]
test eax, eax
jne 0x140228b97
mov rax, qword [rsp + 0x58]
mov rcx, qword [r15]
mov byte [rsp + 0xaf], r11b
mov rdx, qword [rax]
call fcn.1401db9e0
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rdi + 0x40]
mov rdx, qword [rdx + rcx]
mov rcx, qword [rax]
call fcn.1401fe2c0
mov r11b, byte [rsp + 0xaf]
test eax, eax
je 0x140228b60
jmp 0x140228b97
cmp r12d, 0xffffffff
jne 0x140228b1c
cmp word [rsp + 0xa6], 0
je 0x140228b73
lea eax, [r13 + 1]
mov word [rbx + 0x1e], ax
movsxd rax, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x108]
shl rax, 5
mov al, byte [rdx + rax + 0x18]
test byte [rsp + 0x64], 0x40
je 0x140228ba6
jmp 0x140228c14
mov r11b, 1
inc dword [rsp + 0x38]
add qword [rsp + 0x58], 0x20
jmp 0x140228a78
cmp byte [rsp + 0x66], 0
je 0x140228bc3
mov edx, eax
mov cl, byte [rsp + 0xae]
xor cl, byte [rsp + 0x67]
and edx, 1
cmp cl, dl
jne 0x140228beb
jmp 0x140228c14
mov edx, eax
and edx, 1
cmp dl, byte [rsp + 0xae]
je 0x140228c0a
mov rdx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x98]
mov byte [rsp + 0x67], 1
or qword [rdx], rcx
jmp 0x140228c0f
cmp dword [rsp + 0x48], 0
je 0x140228d38
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0x48]
jg 0x140228d38
jmp 0x140228c4d
mov byte [rsp + 0x67], 0
mov byte [rsp + 0x66], 1
test al, 2
je 0x140228c2c
movzx eax, word [rbx + 0x18]
cmp eax, dword [rsp + 0xa0]
jne 0x140228beb
or dword [rbx + 0x38], 0x80000
inc r12d
mov al, 1
mov cl, byte [rsp + 0x38]
cmove ebp, eax
mov eax, 1
shl rax, cl
or qword [rsp + 0x30], rax
inc r13
jmp 0x14022896e
or bpl, sil
je 0x140228cd8
mov rdi, qword [rbx + 8]
or qword [rsp + 0x70], rdi
xor esi, esi
lea rbp, [r15 + 0x258]
mov r12, qword [rsp + 0x70]
mov r13d, 1
not r12
mov edi, esi
cmp dword [rsp + 0x54], esi
jle 0x140228cd5
mov rax, qword [rsp + 0x30]
mov ecx, esi
shr rax, cl
test al, 1
jne 0x140228cd0
mov rdx, qword [rsp + 0x108]
mov rax, rsi
mov rcx, rbp
shl rax, 5
mov r14, qword [rdx + rax + 8]
mov rdx, r14
call fcn.140211680
test rax, rax
jne 0x140228ccb
mov rcx, r14
call fcn.1401db410
test eax, eax
je 0x140228cd0
mov rax, r13
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x140228cd0
test r12, rax
je 0x140228cbc
inc rsi
jmp 0x140228c76
mov bpl, 1
inc qword [rsp + 0x40]
jmp 0x1402286d3
mov al, 0xff
jmp 0x140228d5a
mov rbx, qword [rsp + 0x88]
cmp qword [rsp + 0x30], rbx
jne 0x140228cfb
mov al, byte [rsp + 0x50]
jmp 0x140228d5a
mov al, 0xff
test bpl, bpl
jne 0x140228d5a
mov ecx, dword [rsp + 0x54]
mov edx, 1
dec ecx
test ecx, ecx
jle 0x140228654
cmp ecx, 0x3f
jg 0x140228d30
mov rax, rdx
mov r8, qword [rsp + 0x30]
shl rax, cl
dec rax
and r8, rax
cmp r8, rax
jne 0x140228d34
mov eax, ecx
jmp 0x140228d5a
dec ecx
jmp 0x140228d0d
test bpl, bpl
jmp 0x140228c50
mov byte [rsp + 0xae], 0
or r12d, 0xffffffff
test sil, sil
je 0x140228a5a
jmp 0x140228a3b
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret