Function at 0x140180448
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, 0x148
mov rax, qword [0x14024a418]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rax, qword [rcx]
movzx r14d, r9w
mov rbx, qword [rcx + 0x10]
mov rsi, r8
mov word [rsp + 0x32], r9w
mov r10, rdx
xor r9d, r9d
mov qword [rsp + 0xb0], r8
mov rax, qword [rax]
mov r13, rcx
mov qword [rsp + 0x80], rdx
mov ebp, r9d
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x60], rax
mov rdi, qword [rax]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x70], r9
cmp dword [rax + 0x30], r9d
je 0x1401804ce
mov eax, dword [rax + 0x18]
jmp 0x140180f6c
mov eax, dword [rbx + 0x38]
movzx r15d, word [rbx + 0x18]
movzx r8d, word [rbx + 0x3c]
mov r9d, r15d
mov dword [rsp + 0x6c], eax
and al, 0x20
neg al
mov word [rsp + 0x50], r8w
movzx eax, word [rbx + 0x1a]
mov r8d, dword [r10 + 0x44]
sbb edx, edx
mov word [rsp + 0x4c], ax
and edx, 0xfffffe59
movzx eax, word [rbx + 0x1c]
add edx, 0x1bf
mov ecx, edx
mov word [rsp + 0x4e], ax
movzx eax, word [rbx + 0x3e]
and ecx, 0xffffffc3
test byte [rsi + 0x64], 4
mov word [rsp + 0x52], ax
mov rax, qword [rbx]
cmove ecx, edx
mov rdx, qword [r13 + 8]
mov qword [rsp + 0xa8], rax
movzx eax, word [rbx + 0x16]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xc0]
mov word [rsp + 0x30], r15w
mov word [rsp + 0x38], ax
mov dword [rsp + 0x90], r15d
call fcn.140183f58
xor r9d, r9d
mov qword [rsp + 0xa0], rax
mov word [rbx + 0x12], r9w
mov r12, rax
mov rcx, qword [rsi + 0x10]
movsx rax, word [rcx]
lea ecx, [r9 + 0xa]
mov word [rsp + 0x68], ax
cmp ax, cx
jg 0x140180592
mov word [rsp + 0x48], r9w
jmp 0x1401805a3
mov rcx, rax
call fcn.1401511d4
sub ax, 0x21
mov word [rsp + 0x48], ax
mov edx, 2
mov ecx, 0x100
lea r10d, [rdx + 0xe]
lea r8d, [rdx + 1]
lea r11d, [rdx - 1]
test r12, r12
je 0x140180e3f
movzx edi, word [r12 + 0x14]
mov eax, dword [r13 + 0x28]
mov word [rsp + 0x4a], di
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x94], eax
cmp di, cx
je 0x1401805ea
test byte [r12 + 0x12], 0x80
je 0x140180632
mov rax, qword [rsi + 8]
movzx ecx, r15w
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x14018061d
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x140180de7
mov edx, 2
jmp 0x140180627
cmp r8d, 0xffffffff
je 0x140180de7
mov ecx, 0x100
mov r8d, 3
mov rax, qword [rbx + 8]
test qword [r12 + 0x28], rax
jne 0x140180de7
test word [r12 + 0x12], cx
je 0x140180653
cmp di, r10w
je 0x140180de7
mov r10, qword [rsp + 0x80]
test byte [r10 + 0x3c], 0x58
je 0x14018068d
mov rcx, qword [r12]
test byte [rcx + 4], r8b
je 0x140180de7
mov eax, dword [r10 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x140180de7
test byte [r10 + 0x3c], 0x18
je 0x14018068d
test byte [rcx + 4], dl
jne 0x140180de7
cmp byte [rsi + 0x62], r9b
je 0x1401806a8
movzx eax, word [rsi + 0x5e]
sub eax, r11d
movzx ecx, r15w
cmp ecx, eax
jne 0x1401806a8
or byte [r13 + 0x2c], dl
jmp 0x1401806ac
or byte [r13 + 0x2c], r11b
mov eax, dword [rsp + 0x6c]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x18], r15w
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jb 0x140180701
mov rcx, qword [rsp + 0x40]
lea r8d, [r11 + rax]
mov rdx, rbx
call fcn.14018228c
xor r9d, r9d
lea r11d, [r9 + 1]
test eax, eax
jne 0x140180e3a
mov r10, qword [rsp + 0x80]
movzx ecx, word [rbx + 0x3c]
movzx r15d, di
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], r12
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0xa8]
add dx, r11w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [r12 + 0x28]
and rcx, rax
mov qword [rbx], rcx
and r15w, r11w
je 0x140180845
mov r8, qword [r12]
test dword [r8 + 4], 0x1000
je 0x140180789
movzx ecx, dx
mov r11d, 0x2e
dec ecx
mov dword [rsp + 0x34], r11d
test ecx, ecx
jle 0x1401807aa
mov rax, qword [rbx + 0x48]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x140180778
cmp qword [rcx], r8
cmove r11d, r9d
add rax, 8
sub rdx, 1
jne 0x140180769
mov dword [rsp + 0x34], r11d
jmp 0x1401807aa
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1401807a5
cmp dword [rax], r9d
je 0x1401807a5
movsxd rcx, dword [rax]
call fcn.1401511d4
movsx r11d, ax
jmp 0x140180782
mov r11d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x14018083d
movzx edi, word [rsp + 0x48]
mov edx, 0xa
cmp di, dx
jl 0x14018083d
movzx r10d, word [rsp + 0x30]
mov rax, qword [rsi + 0x10]
movzx r9d, word [rax + r10*2]
cmp r11w, dx
jg 0x1401807dc
xor eax, eax
jmp 0x1401807ee
movsx rcx, r11w
call fcn.1401511d4
sub ax, 0x21
mov edx, 0xa
sub ax, r11w
sub ax, di
add ax, r9w
add ax, dx
jns 0x140180824
mov rdi, qword [rsp + 0x40]
mov eax, 2
cmp r14w, ax
jge 0x140180e26
test dword [rdi + 0x60], 0x20000
jne 0x140180e26
bts dword [rbx + 0x38], 0x14
xor r9d, r9d
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x70]
jmp 0x1401809fe
movzx r10d, word [rsp + 0x30]
jmp 0x140180827
test dil, 0x82
je 0x1401808e5
mov rax, qword [rsi + 8]
mov ecx, dword [rbx + 0x38]
movzx r10d, word [rsp + 0x30]
or ecx, r11d
movsx r9d, word [rax + r10*2]
mov dword [rbx + 0x38], ecx
cmp r9d, 0xffffffff
je 0x1401808b3
xor ebp, ebp
mov r8d, ecx
mov edx, ecx
test r9d, r9d
js 0x1401808bf
test r14w, r14w
jne 0x1401808bf
movzx r9d, word [rsi + 0x5e]
mov eax, r9d
sub eax, r11d
lea r11d, [rbp + 1]
cmp r10d, eax
jne 0x1401808bf
test byte [rsi + 0x64], 8
jne 0x1401808b3
cmp r9w, r11w
jne 0x1401808ad
cmp byte [rsi + 0x62], bpl
je 0x1401808ad
lea eax, [rbp + 2]
cmp di, ax
je 0x1401808b3
bts edx, 0x10
jmp 0x1401808b9
mov edx, ecx
bts edx, 0xc
mov r8d, edx
mov dword [rbx + 0x38], edx
cmp byte [rsp + 0xe9], r11b
jbe 0x1401808d3
mov edx, r8d
bts edx, 0x15
mov dword [rbx + 0x38], edx
mov rax, qword [rsp + 0x58]
xor r9d, r9d
mov rcx, qword [rsp + 0x70]
jmp 0x140180a04
bt di, 8
jae 0x14018090a
mov edx, dword [rbx + 0x38]
movzx r10d, word [rsp + 0x30]
or edx, 8
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x70]
mov dword [rbx + 0x38], edx
jmp 0x140180a04
mov r9d, dword [rsp + 0x90]
mov r8, rsi
mov edx, dword [r10 + 0x44]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x20], r12
call fcn.140183db4
mov edx, dword [rbx + 0x38]
xor r9d, r9d
test dil, 0x24
je 0x1401809c7
or edx, 0x22
mov word [rbx + 0x1a], ax
mov eax, 0x100
mov dword [rbx + 0x38], edx
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x58], r9
test word [r12 + 0x12], ax
je 0x1401809b1
movzx r8d, word [rbx + 0x3c]
lea rax, [r12 + 0x38]
mov rdi, qword [rsp + 0x40]
inc r8d
mov rcx, rdi
mov qword [rsp + 0x58], rax
mov rdx, rbx
call fcn.14018228c
xor r9d, r9d
lea r11d, [r9 + 1]
test eax, eax
jne 0x140180e3f
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov r8, qword [rsp + 0x58]
mov qword [rax + rcx*8], r8
lea eax, [r9 + 0x10]
add word [rbx + 0x3c], r11w
or dword [rbx + 0x38], eax
mov edx, dword [rbx + 0x38]
mov word [rbx + 0x1c], r11w
jmp 0x1401809b7
mov r11d, 1
movzx r10d, word [rsp + 0x30]
mov rcx, r12
mov rax, qword [rsp + 0x58]
jmp 0x140180a04
movzx r10d, word [rsp + 0x30]
or edx, 0x12
mov word [rbx + 0x1c], ax
mov rax, r12
mov qword [rsp + 0x58], rax
mov dword [rbx + 0x38], edx
test dl, 0x20
je 0x1401809f6
mov rax, qword [rbx + 0x48]
movzx ecx, word [rbx + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, r12
jmp 0x1401809f9
mov rcx, r9
mov qword [rsp + 0x70], rcx
mov r11d, 1
test dl, 2
je 0x140180a29
mov r12, qword [rsp + 0x60]
mov r8, rcx
mov rcx, r12
mov qword [rsp + 0x20], rbx
mov r9, rax
mov rdx, r13
call fcn.14018366c
jmp 0x140180cc8
movzx eax, word [rbx + 0x18]
add ax, r11w
movzx r14d, ax
mov word [rbx + 0x18], r14w
movzx edx, word [r12 + 0x10]
mov dword [rsp + 0x78], r14d
test dx, dx
jg 0x140180a76
mov rax, qword [rsi + 8]
movzx ecx, r10w
cmp word [rax + rcx*2], r9w
jl 0x140180a76
mov r15d, dword [rsp + 0x34]
sub dx, r15w
add word [rbx + 0x16], dx
movzx r14d, word [rsp + 0x32]
mov r12, qword [rsp + 0x60]
jmp 0x140180ccd
mov rdi, r9
mov qword [rsp + 0x88], r9
cmp word [rsp + 0x32], r9w
jne 0x140180c8d
cmp dword [rsi + 0x68], r9d
je 0x140180c8d
cmp r14d, dword [rsi + 0x6c]
jg 0x140180c8d
test r15w, r15w
je 0x140180ab8
mov rax, qword [r12]
test dword [rax + 4], 0x1000
jne 0x140180c8d
mov rax, qword [rsp + 0x40]
test dword [rax + 0x60], 0x800
jne 0x140180c8d
mov rax, qword [r12]
mov ecx, 0x182
test word [rsp + 0x4a], cx
je 0x140180b00
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
mov rdx, r13
call fcn.14017f64c
mov rdi, qword [rsp + 0x88]
jmp 0x140180ba0
mov r13, qword [rax + 0x20]
mov r11, qword [rsp + 0x98]
mov rax, qword [r11 + 0x10]
mov rcx, qword [rax + 0x20]
mov rcx, qword [rcx + 0x10]
movzx ecx, word [rcx]
call fcn.14015134c
mov r12d, dword [r11 + 0x28]
lea r15, [r13 + 8]
xor ecx, ecx
mov r14, rax
mov eax, ecx
mov esi, ecx
mov ebp, ecx
cmp ebp, dword [r13]
jge 0x140180b79
mov r8, qword [r15]
lea r9, [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
mov rdx, r11
mov qword [rsp + 0x88], r14
call fcn.14017f64c
mov r11, qword [rsp + 0x98]
inc ebp
add rsi, qword [rsp + 0x88]
add r15, 0x20
mov dword [r11 + 0x28], r12d
test eax, eax
je 0x140180b33
jmp 0x140180b83
cmp rsi, r14
mov rdi, rsi
cmova rdi, r14
mov rsi, qword [rsp + 0xb0]
mov r14d, dword [rsp + 0x78]
mov r12, qword [rsp + 0xa0]
mov r13, qword [rsp + 0x98]
xor r9d, r9d
cmp eax, 0xc
mov ebp, r9d
cmovne ebp, eax
test ebp, ebp
jne 0x140180e2e
test rdi, rdi
je 0x140180c8d
lea edx, [rbp + 0x28]
movzx eax, dx
cmp rdi, 8
jae 0x140180be7
cmp rdi, 2
jae 0x140180bd8
movzx eax, r9w
lea ecx, [rbp + 0xa]
jmp 0x140180c27
add ax, 0xfff6
add rdi, rdi
cmp rdi, 8
jb 0x140180bd8
jmp 0x140180c11
mov ecx, 0xff
jmp 0x140180bf5
add ax, dx
shr rdi, 4
cmp rdi, rcx
ja 0x140180bee
cmp rdi, 0xf
jbe 0x140180c11
mov ecx, 0xa
add ax, cx
shr rdi, 1
cmp rdi, 0xf
ja 0x140180c05
and edi, 7
lea rcx, [0x1402459a0]
add ax, word [rcx + rdi*2]
mov ecx, 0xa
sub ax, cx
mov r9d, 1
mov word [rbx + 0x16], ax
cmp r14w, r9w
jne 0x140180c64
movsx edx, ax
mov rax, qword [rsi + 0x10]
add edx, ecx
movsx ecx, word [rax]
cmp edx, ecx
jle 0x140180c64
mov eax, 0x4000
or word [r12 + 0x12], ax
mov eax, 0x2000
test word [r12 + 0x12], ax
je 0x140180c64
or byte [r13 + 0x2d], 4
movzx eax, word [rbx + 0x16]
cmp ax, word [rsp + 0x38]
mov r15d, dword [rsp + 0x34]
cmovg ax, word [rsp + 0x38]
movzx r14d, word [rsp + 0x32]
sub ax, r15w
mov r12, qword [rsp + 0x60]
mov word [rbx + 0x16], ax
jmp 0x140180cd3
mov rax, qword [rsi + 0x10]
mov r12, qword [rsp + 0x60]
movzx ecx, r14w
movzx r14d, word [rsp + 0x32]
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
mov ecx, 0x100
add dx, word [rbx + 0x16]
movzx eax, dx
mov word [rbx + 0x16], dx
test word [rsp + 0x4a], cx
je 0x140180cc8
add ax, 0xa
mov word [rbx + 0x16], ax
mov r15d, dword [rsp + 0x34]
mov r9d, 1
mov eax, dword [rsi + 0x64]
mov ecx, 3
movzx edi, word [rbx + 0x16]
and eax, ecx
lea r10d, [rcx + 0xd]
cmp al, cl
jne 0x140180cef
lea eax, [r10 + rdi]
jmp 0x140180d12
mov rcx, qword [rsp + 0x80]
movsx eax, word [rsi + 0x5c]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
add ax, di
add ax, r9w
movzx ecx, word [rsp + 0x48]
movzx edx, ax
call fcn.140151234
test dword [rbx + 0x38], 0x4000140
jne 0x140180d34
lea edx, [r10 + rdi]
movzx ecx, ax
call fcn.140151234
movzx r8d, word [rsp + 0x68]
add ax, r15w
add ax, r14w
mov rdx, rbx
mov word [rbx + 0x14], ax
lea eax, [r15 + rdi]
add ax, r14w
mov word [rbx + 0x16], ax
mov rcx, qword [r13 + 8]
call fcn.1401820cc
mov rdx, rbx
mov rcx, r13
call fcn.140181ee8
mov edx, dword [rbx + 0x38]
mov r8d, 2
movzx ecx, word [rsp + 0x38]
test r8b, dl
mov ebp, eax
cmove cx, di
lea eax, [r8 + 0xe]
mov word [rbx + 0x16], cx
test al, dl
jne 0x140180dcd
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x140180dcd
lea edx, [rax - 0xd]
cmp cx, word [rsi + 0x5e]
jb 0x140180da9
mov eax, dword [rsi + 0x64]
and al, dl
cmp al, r8b
je 0x140180dcd
cmp cx, dx
jbe 0x140180db6
mov rcx, r12
call fcn.140158fbc
mov rdx, qword [rsp + 0x80]
lea r9d, [r14 + r15]
mov r8, rsi
mov rcx, r13
call fcn.140180448
movzx ecx, word [rsp + 0x38]
mov eax, dword [rsp + 0x94]
movzx r15d, word [rsp + 0x30]
mov word [rbx + 0x16], cx
mov dword [r13 + 0x28], eax
mov rdi, qword [rsp + 0x40]
lea rcx, [rsp + 0xc0]
call fcn.14018404c
xor r9d, r9d
mov qword [rsp + 0xa0], rax
mov r12, rax
mov ecx, 0x100
lea edx, [r9 + 2]
lea r11d, [r9 + 1]
lea r8d, [r9 + 3]
lea r10d, [r9 + 0x10]
test ebp, ebp
je 0x1401805b9
jmp 0x140180e3f
movzx r15d, word [rsp + 0x30]
jmp 0x140180dec
movzx r14d, word [rsp + 0x32]
mov r11d, 1
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0xa8]
movzx r15d, word [rsp + 0x30]
movzx r12d, word [rsp + 0x38]
movzx r8d, word [rsp + 0x50]
mov ecx, dword [rsp + 0x6c]
mov qword [rbx], rax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x52]
mov word [rbx + 0x18], r15w
mov word [rbx + 0x3e], ax
mov dword [rbx + 0x38], ecx
mov word [rbx + 0x16], r12w
mov word [rbx + 0x3c], r8w
cmp r15w, ax
jne 0x140180f6a
movzx ecx, word [rsi + 0x5e]
lea eax, [r15 + 1]
cmp eax, ecx
jae 0x140180f6a
cmp r15w, r8w
jne 0x140180f6a
test byte [rsi + 0x64], 0x40
jne 0x140180f6a
test byte [rsi + 0x64], 0x80
je 0x140180f6a
mov eax, 0x4000
test dword [rdi + 0x60], eax
jne 0x140180f6a
mov rax, qword [rsi + 0x10]
cmp word [rax + r15*2 + 2], 0x2a
jl 0x140180f6a
mov rcx, qword [rsp + 0x40]
add r8d, r11d
mov rdx, rbx
call fcn.14018228c
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x140180f6a
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
mov rcx, r13
add word [rbx + 0x3c], r8w
mov r8, rsi
bts dword [rbx + 0x38], 0xf
mov r9, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x80]
movzx r10d, word [r9 + r15*2]
sub r10w, word [r9 + r15*2 + 2]
sub word [rbx + 0x16], r10w
lea r9d, [r10 + r14]
add r9w, 5
call fcn.140180448
movzx eax, word [rsp + 0x52]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x6c]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x16], r12w
mov word [rbx + 0x18], r15w
mov eax, ebp
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.14018b6b0
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret