Function at 0x14037ef08
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, 0x118
mov rax, qword [0x1404fcf48]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rax, qword [rcx]
xor r10d, r10d
mov rbx, qword [rcx + 0x10]
mov rsi, r8
movzx r13d, r9w
mov word [rsp + 0x30], r9w
mov r8, rdx
mov qword [rsp + 0x78], rdx
mov rax, qword [rax]
mov r12, rcx
mov qword [rsp + 0x70], rax
mov ebp, r10d
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x68], r10
mov r15, qword [rax]
mov qword [rsp + 0x48], r15
cmp byte [r15 + 0x67], r10b
je 0x14037ef7c
lea eax, [r10 + 7]
jmp 0x14037f90d
mov eax, dword [rbx + 0x38]
movzx edi, word [rbx + 0x18]
mov r8d, dword [r8 + 0x44]
mov r9d, edi
mov dword [rsp + 0x60], eax
and al, 0x20
neg al
mov qword [rsp + 0x28], rsi
movzx eax, word [rbx + 0x1a]
mov word [rsp + 0x40], ax
sbb edx, edx
movzx eax, word [rbx + 0x1c]
and edx, 0xfffffe59
mov word [rsp + 0x42], ax
add edx, 0x1bf
movzx eax, word [rbx + 0x3e]
mov ecx, edx
mov word [rsp + 0x46], ax
and ecx, 0xffffffc3
movzx eax, word [rbx + 0x3c]
mov word [rsp + 0x44], ax
mov rax, qword [rbx]
mov qword [rsp + 0x88], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x32], ax
mov eax, dword [rsi + 0x64]
and al, 4
mov word [rsp + 0x3a], di
mov dword [rsp + 0x3c], edi
cmove ecx, edx
mov rdx, qword [r12 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x90]
call fcn.14038288c
xor r11d, r11d
mov r14, rax
mov word [rbx + 0x12], r11w
mov rax, qword [rsi + 0x10]
lea ecx, [r11 + 0xa]
movsx rax, word [rax]
mov word [rsp + 0x58], ax
cmp ax, cx
jg 0x14037f032
mov word [rsp + 0x38], r11w
jmp 0x14037f043
mov rcx, rax
call fcn.140350ab0
sub ax, 0x21
mov word [rsp + 0x38], ax
mov edx, 2
mov ecx, 0x100
lea r8d, [rdx + 0xe]
lea r9d, [rdx - 1]
test r14, r14
je 0x14037f7d9
movzx r13d, word [r14 + 0x14]
mov eax, dword [r12 + 0x28]
mov dword [rsp + 0x34], r11d
mov dword [rsp + 0x80], eax
cmp r13w, cx
je 0x14037f081
test byte [r14 + 0x12], 0x80
je 0x14037f0c5
mov rax, qword [rsi + 8]
movzx ecx, di
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x14037f0b0
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test byte [rax + rcx*8 + 8], 0xf
jne 0x14037f779
mov edx, 2
jmp 0x14037f0ba
cmp r8d, 0xffffffff
je 0x14037f779
mov r8d, 0x10
mov ecx, 0x100
mov rax, qword [rbx + 8]
test qword [r14 + 0x28], rax
jne 0x14037f779
test word [r14 + 0x12], cx
je 0x14037f0e4
cmp r13w, r8w
je 0x14037f779
mov rax, qword [rsp + 0x78]
test byte [rax + 0x3c], 0x58
je 0x14037f108
mov rcx, qword [r14]
test byte [rcx + 4], 3
je 0x14037f779
mov eax, dword [rax + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x14037f779
cmp byte [rsi + 0x62], r11b
je 0x14037f123
movzx eax, word [rsi + 0x5e]
sub eax, r9d
movzx ecx, di
cmp ecx, eax
jne 0x14037f123
or byte [r12 + 0x2c], dl
jmp 0x14037f128
or byte [r12 + 0x2c], r9b
mov eax, dword [rsp + 0x60]
mov rdx, rbx
mov dword [rbx + 0x38], eax
mov rcx, r15
movzx eax, word [rsp + 0x40]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x42]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x44]
mov word [rbx + 0x18], di
mov word [rbx + 0x3c], ax
lea r8d, [r9 + rax]
call fcn.140380c40
xor r11d, r11d
test eax, eax
jne 0x14037f7cd
movzx ecx, word [rbx + 0x3c]
lea r10d, [r11 + 1]
mov rax, qword [rbx + 0x48]
movzx r15d, r13w
mov qword [rax + rcx*8], r14
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 [r14 + 0x28]
and rcx, rax
mov qword [rbx], rcx
and r15w, r10w
je 0x14037f2b8
mov r8, qword [r14]
test dword [r8 + 4], 0x1000
je 0x14037f1f3
movzx ecx, dx
lea r10d, [r11 + 0x2e]
dec ecx
mov dword [rsp + 0x34], r10d
test ecx, ecx
jle 0x14037f214
mov rax, qword [rbx + 0x48]
lea r9d, [r11 + 1]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x14037f1e3
cmp qword [rcx], r8
cmove r10d, r11d
add rax, 8
sub rdx, r9
jne 0x14037f1d4
mov dword [rsp + 0x34], r10d
jmp 0x14037f214
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x14037f20f
cmp dword [rax], r11d
je 0x14037f20f
movsxd rcx, dword [rax]
call fcn.140350ab0
movsx r10d, ax
jmp 0x14037f1ec
mov r10d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x14037f297
movzx r11d, word [rsp + 0x38]
mov edx, 0xa
cmp r11w, dx
jl 0x14037f294
mov rax, qword [rsi + 0x10]
movzx ecx, di
movzx r9d, word [rax + rcx*2]
cmp r10w, dx
jg 0x14037f244
xor edx, edx
movzx eax, dx
jmp 0x14037f251
movsx rcx, r10w
call fcn.140350ab0
sub ax, 0x21
sub ax, r10w
sub ax, r11w
add ax, r9w
movzx r9d, word [rsp + 0x30]
add ax, 0xa
jns 0x14037f28f
mov eax, 2
cmp r9w, ax
jge 0x14037f773
mov rcx, qword [rsp + 0x48]
test dword [rcx + 0x60], 0x20000
jne 0x14037f76a
bts dword [rbx + 0x38], 0x14
xor r11d, r11d
jmp 0x14037f29d
xor r11d, r11d
movzx r9d, word [rsp + 0x30]
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
jmp 0x14037f47f
test r13b, 0x82
je 0x14037f345
mov rax, qword [rsi + 8]
movzx r9d, word [rsp + 0x30]
movzx ecx, di
movsx r8d, word [rax + rcx*2]
mov ecx, dword [rbx + 0x38]
or ecx, r10d
mov dword [rbx + 0x38], ecx
cmp r8d, 0xffffffff
je 0x14037f32c
mov edx, ecx
test r8d, r8d
js 0x14037f335
test r9w, r9w
jne 0x14037f335
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
sub eax, r10d
movzx r10d, di
cmp r10d, eax
mov r10d, 1
jne 0x14037f335
test byte [rsi + 0x64], 8
jne 0x14037f32c
cmp r8w, r10w
jne 0x14037f326
cmp byte [rsi + 0x62], r11b
je 0x14037f326
lea eax, [r10 + 1]
cmp r13w, ax
je 0x14037f32c
bts edx, 0x10
jmp 0x14037f332
mov edx, ecx
bts edx, 0xc
mov dword [rbx + 0x38], edx
cmp byte [rsp + 0xb9], r10b
jbe 0x14037f35c
bts edx, 0x15
jmp 0x14037f359
bt r13w, 8
mov edx, dword [rbx + 0x38]
jae 0x14037f370
movzx r9d, word [rsp + 0x30]
or edx, 8
mov dword [rbx + 0x38], edx
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
jmp 0x14037f485
mov rax, qword [rsp + 0x78]
mov r8, rsi
mov qword [rsp + 0x20], r14
test r13b, 0x24
je 0x14037f42d
mov edi, dword [rsp + 0x3c]
or edx, 0x22
mov rcx, qword [rsp + 0x70]
mov r9d, edi
mov dword [rbx + 0x38], edx
mov edx, dword [rax + 0x44]
call fcn.1403826e8
mov word [rbx + 0x1a], ax
xor r11d, r11d
mov eax, 0x100
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x50], r11
test word [r14 + 0x12], ax
je 0x14037f40f
movzx r8d, word [rbx + 0x3c]
lea rax, [r14 + 0x38]
mov rcx, qword [rsp + 0x48]
inc r8d
mov rdx, rbx
mov qword [rsp + 0x50], rax
call fcn.140380c40
xor r11d, r11d
test eax, eax
jne 0x14037f7ad
movzx ecx, word [rbx + 0x3c]
lea r10d, [r11 + 1]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x50]
mov qword [rax + rcx*8], rdx
lea eax, [r11 + 0x10]
add word [rbx + 0x3c], r10w
or dword [rbx + 0x38], eax
mov word [rbx + 0x1c], r10w
jmp 0x14037f415
mov r10d, 1
mov edx, dword [rbx + 0x38]
mov rcx, r14
movzx r9d, word [rsp + 0x30]
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
jmp 0x14037f485
mov rbp, qword [rsp + 0x70]
or edx, 0x12
mov r9d, dword [rsp + 0x3c]
mov rcx, rbp
mov dword [rbx + 0x38], edx
mov edx, dword [rax + 0x44]
call fcn.1403826e8
mov edx, dword [rbx + 0x38]
xor r11d, r11d
movzx r9d, word [rsp + 0x30]
mov word [rbx + 0x1c], ax
mov rax, r14
mov qword [rsp + 0x50], rax
test dl, 0x20
je 0x14037f477
mov rax, qword [rbx + 0x48]
movzx ecx, word [rbx + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, r14
jmp 0x14037f47a
mov rcx, r11
mov qword [rsp + 0x68], rcx
mov r10d, 1
test dl, 2
je 0x14037f4a9
mov r8, rcx
mov qword [rsp + 0x20], rbx
mov rcx, rbp
mov r9, rax
mov rdx, r12
call fcn.140381fb0
movzx edi, word [rbx + 0x16]
jmp 0x14037f671
movzx eax, word [rbx + 0x18]
add ax, r10w
movzx edi, ax
mov word [rbx + 0x18], di
movzx edx, word [r14 + 0x10]
test dx, dx
jg 0x14037f4e8
movzx ecx, word [rsp + 0x3a]
mov rax, qword [rsi + 8]
cmp word [rax + rcx*2], r11w
jl 0x14037f4e8
mov r14d, dword [rsp + 0x34]
sub dx, r14w
add word [rbx + 0x16], dx
movzx edi, word [rbx + 0x16]
jmp 0x14037f676
mov dword [rsp + 0x5c], r11d
test r9w, r9w
jne 0x14037f647
cmp dword [rsi + 0x68], r11d
je 0x14037f647
cmp edi, dword [rsi + 0x6c]
jg 0x14037f647
test r15w, r15w
je 0x14037f520
mov rax, qword [r14]
test dword [rax + 4], 0x1000
jne 0x14037f647
mov r15, qword [rsp + 0x48]
test dword [r15 + 0x60], 0x800
jne 0x14037f647
mov r8, qword [r14]
lea r9, [rsp + 0x5c]
mov eax, 0x182
mov rdx, r12
mov rcx, rbp
test ax, r13w
je 0x14037f557
mov r8, qword [r8 + 0x18]
call fcn.14037e0bc
jmp 0x14037f560
mov r8, qword [r8 + 0x20]
call fcn.14037e180
xor r11d, r11d
cmp eax, 0xc
mov ebp, r11d
cmovne ebp, eax
test ebp, ebp
jne 0x14037f7bb
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x14037f647
lea r8d, [r11 + 0x28]
movzx ecx, r8w
cmp rax, 8
jae 0x14037f5ac
cmp rax, 2
jae 0x14037f59d
movzx ecx, r11w
lea eax, [rbp + 0xa]
jmp 0x14037f5ed
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x14037f59d
jmp 0x14037f5d7
mov edx, 0xff
jmp 0x14037f5bb
add cx, r8w
shr rax, 4
cmp rax, rdx
ja 0x14037f5b3
cmp rax, 0xf
jbe 0x14037f5d7
mov edx, 0xa
add cx, dx
shr rax, 1
cmp rax, 0xf
ja 0x14037f5cb
and eax, 7
lea rdx, [0x1404f85c0]
add cx, word [rdx + rax*2]
mov eax, 0xa
sub cx, ax
mov r9d, 1
mov word [rbx + 0x16], cx
cmp di, r9w
jne 0x14037f629
movsx edx, cx
add edx, eax
mov rax, qword [rsi + 0x10]
movsx ecx, word [rax]
cmp edx, ecx
jle 0x14037f629
mov eax, 0x4000
or word [r14 + 0x12], ax
mov eax, 0x2000
test word [r14 + 0x12], ax
je 0x14037f629
or byte [r12 + 0x2d], 4
movzx edi, word [rbx + 0x16]
cmp di, word [rsp + 0x32]
mov r14d, dword [rsp + 0x34]
cmovg di, word [rsp + 0x32]
sub di, r14w
mov word [rbx + 0x16], di
jmp 0x14037f67c
mov rax, qword [rsi + 0x10]
mov rcx, rdi
movzx edi, word [rax + rdi*2]
sub di, word [rax + rcx*2 - 2]
add di, word [rbx + 0x16]
bt r13w, 8
mov word [rbx + 0x16], di
movzx eax, di
jae 0x14037f671
lea edi, [rax + 0xa]
mov word [rbx + 0x16], di
mov r14d, dword [rsp + 0x34]
mov r9d, 1
movsx eax, word [rsi + 0x5c]
mov r15, qword [rsp + 0x78]
imul eax, eax, 0xf
mov rcx, qword [r15 + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
movzx ecx, word [rsp + 0x38]
idiv r8d
lea edx, [rdi + rax]
add dx, r9w
call fcn.140350b10
test dword [rbx + 0x38], 0x140
jne 0x14037f6be
mov edx, 0x10
movzx ecx, ax
add edx, edi
call fcn.140350b10
movzx r13d, word [rsp + 0x30]
add ax, r14w
movzx r8d, word [rsp + 0x58]
add ax, r13w
mov word [rbx + 0x14], ax
mov rdx, rbx
lea eax, [r14 + rdi]
add ax, r13w
mov word [rbx + 0x16], ax
mov rcx, qword [r12 + 8]
call fcn.140380a8c
mov rdx, rbx
mov rcx, r12
call fcn.1403808b4
mov edx, dword [rbx + 0x38]
mov r8d, 2
movzx ecx, word [rsp + 0x32]
test r8b, dl
mov ebp, eax
cmove cx, di
lea eax, [r8 + 0xe]
mov word [rbx + 0x16], cx
test al, dl
jne 0x14037f749
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x14037f749
cmp cx, word [rsi + 0x5e]
jb 0x14037f737
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, r8b
je 0x14037f749
lea r9d, [r14 + r13]
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14037ef08
movzx ecx, word [rsp + 0x32]
mov eax, dword [rsp + 0x80]
movzx edi, word [rsp + 0x3a]
mov word [rbx + 0x16], cx
mov dword [r12 + 0x28], eax
mov r15, qword [rsp + 0x48]
jmp 0x14037f77f
movzx r13d, r9w
mov r15, rcx
jmp 0x14037f77f
movzx r13d, r9w
jmp 0x14037f763
movzx r13d, word [rsp + 0x30]
lea rcx, [rsp + 0x90]
call fcn.140382980
xor r11d, r11d
mov r14, rax
mov ecx, 0x100
lea edx, [r11 + 2]
lea r9d, [r11 + 1]
lea r8d, [r11 + 0x10]
test ebp, ebp
je 0x14037f055
jmp 0x14037f7d9
movzx r13d, word [rsp + 0x30]
mov r9d, 1
jmp 0x14037f7dd
movzx r13d, word [rsp + 0x30]
mov r9d, 1
mov edi, dword [rsp + 0x3c]
jmp 0x14037f7e2
movzx r13d, word [rsp + 0x30]
mov r9d, 1
mov edi, dword [rsp + 0x3c]
mov r15, qword [rsp + 0x48]
mov rax, qword [rsp + 0x88]
movzx r14d, word [rsp + 0x3a]
movzx ecx, word [rsp + 0x46]
movzx edx, word [rsp + 0x44]
mov qword [rbx], rax
movzx eax, word [rsp + 0x40]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x42]
mov word [rbx + 0x1c], ax
mov eax, dword [rsp + 0x60]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x32]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], cx
mov word [rbx + 0x3c], dx
cmp r14w, cx
jne 0x14037f90b
movzx ecx, word [rsi + 0x5e]
lea eax, [rdi + 1]
cmp eax, ecx
jae 0x14037f90b
cmp r14w, dx
jne 0x14037f90b
test byte [rsi + 0x64], 0x40
jne 0x14037f90b
test byte [rsi + 0x64], 0x80
je 0x14037f90b
mov eax, 0x4000
test dword [r15 + 0x60], eax
jne 0x14037f90b
mov rax, qword [rsi + 0x10]
movsxd rdi, edi
cmp word [rax + rdi*2 + 2], 0x2a
jl 0x14037f90b
lea r8d, [r9 + rdx]
mov rcx, r15
mov rdx, rbx
call fcn.140380c40
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x14037f90b
movzx ecx, word [rbx + 0x3c]
lea r9d, [rax + 1]
add word [rbx + 0x18], r9w
mov r8, rsi
add word [rbx + 0x3e], r9w
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdx
mov rcx, r12
add word [rbx + 0x3c], r9w
bts dword [rbx + 0x38], 0xf
mov r9, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x78]
movzx r10d, word [r9 + r14*2]
sub r10w, word [r9 + rdi*2 + 2]
sub word [rbx + 0x16], r10w
lea r9d, [r10 + r13]
add r9w, 5
call fcn.14037ef08
movzx eax, word [rsp + 0x32]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x46]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x60]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x18], r14w
mov eax, ebp
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.140389d80
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret