Function at 0x14025c5b0
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, 0x1b8
mov dword [rsp + 0xe8], r9d
mov eax, dword [rsp + 0xe8]
mov r14, rcx
mov rsi, r8
mov qword [rsp + 0x208], rdx
mov word [rsp + 0xb2], ax
mov rax, qword [rcx]
mov rax, qword [rax]
cmp dword [rax + 0x30], 0
mov qword [rsp + 0x48], rax
je 0x14025c601
mov ebp, dword [rax + 0x18]
jmp 0x14025d8b3
mov rbx, qword [rcx + 0x10]
mov eax, dword [rbx + 0x38]
mov dword [rsp + 0xb4], eax
and eax, 0x20
cmp eax, 1
sbb eax, eax
and eax, 0x1a7
add eax, 0x18
test byte [r8 + 0x64], 4
je 0x14025c629
and eax, 0xffffffc3
mov rdi, qword [rsp + 0x48]
mov rdx, qword [r14 + 8]
lea rcx, [rsp + 0x140]
xor ebp, ebp
mov rdi, qword [rdi]
mov qword [rsp + 0x78], rdi
mov edi, dword [rbx + 0x18]
mov word [rsp + 0x8a], di
mov di, word [rbx + 0x1a]
mov word [rsp + 0xee], di
mov edi, dword [rbx + 0x1c]
mov word [rsp + 0xf0], di
mov rdi, qword [rbx + 0x16]
mov qword [rsp + 0x100], rdi
mov di, word [rbx + 0x3e]
mov word [rsp + 0xf2], di
mov rdi, qword [rbx + 0x38]
mov qword [rsp + 0xf8], rdi
mov edi, dword [rbx + 0x3c]
mov word [rsp + 0xa8], di
mov rdi, qword [rbx]
mov qword [rsp + 0xc8], rdi
mov di, word [rbx + 0x16]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x208]
mov word [rsp + 0xaa], di
movzx edi, word [rsp + 0x8a]
mov qword [rsp + 0x28], rsi
mov r8d, dword [rax + 0x44]
mov r9d, edi
mov dword [rsp + 0x8c], edi
call fcn.14025ff30
mov word [rbx + 0x12], 0
mov rdi, rax
mov rax, qword [rsi + 0x10]
movsx eax, word [rax]
mov ecx, eax
mov dword [rsp + 0xc4], eax
call fcn.1401c5670
xor ecx, ecx
mov word [rsp + 0xec], ax
movzx eax, word [rsp + 0x8a]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xb8], rax
add rax, rax
mov qword [rsp + 0x70], rax
movzx eax, word [rsp + 0xa8]
mov qword [rsp + 0x58], rcx
inc eax
mov dword [rsp + 0x118], eax
movsx eax, word [rsp + 0xec]
mov dword [rsp + 0x11c], eax
test ebp, ebp
jne 0x14025d72b
test rdi, rdi
je 0x14025d72b
mov eax, dword [rdi + 0x14]
mov word [rsp + 0x54], ax
cmp ax, 0x100
je 0x14025c767
test byte [rdi + 0x12], 0x80
je 0x14025c794
mov rax, qword [rsi + 8]
mov rcx, qword [rsp + 0x70]
movsx rdx, word [rax + rcx]
mov rax, rdx
test edx, edx
js 0x14025c790
mov rdx, qword [rsi + 0x18]
imul rax, rax, 0x18
add rax, qword [rdx + 8]
test byte [rax + 8], 0xf
je 0x14025c794
jmp 0x14025c7a3
inc edx
je 0x14025c7a3
mov rax, qword [rdi + 0x28]
and rax, qword [rbx + 8]
mov qword [rsp + 0x68], rax
je 0x14025c7aa
xor ebp, ebp
jmp 0x14025d716
test byte [rdi + 0x13], 1
je 0x14025c7b8
cmp word [rsp + 0x54], 0x10
je 0x14025c7a3
mov rax, qword [rsp + 0x208]
test byte [rax + 0x3c], 0x58
je 0x14025c7d5
mov rcx, qword [rdi]
mov rdx, rax
call fcn.1401c3400
test eax, eax
je 0x14025c7a3
cmp byte [rsi + 0x62], 0
mov al, byte [r14 + 0x2c]
je 0x14025c7f3
movzx edx, word [rsi + 0x5e]
dec edx
cmp dword [rsp + 0x8c], edx
jne 0x14025c7f3
or eax, 2
jmp 0x14025c7f6
or eax, 1
mov byte [r14 + 0x2c], al
mov eax, dword [rsp + 0xb4]
mov ecx, dword [r14 + 0x28]
mov dword [rbx + 0x38], eax
mov ax, word [rsp + 0x8a]
mov dword [rsp + 0xf4], ecx
mov word [rbx + 0x18], ax
mov ax, word [rsp + 0xee]
mov word [rbx + 0x1a], ax
mov eax, dword [rsp + 0xf0]
mov word [rbx + 0x1c], ax
mov eax, dword [rsp + 0xa8]
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jae 0x14025c886
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rbx + 0x48]
mov r8, qword [rbx + 8]
lea eax, [rdx + 1]
mov word [rbx + 0x3c], ax
not r8
mov qword [rcx + rdx*8], rdi
mov rdx, qword [rsp + 0xc8]
or rdx, qword [rdi + 0x28]
and rdx, r8
mov qword [rbx], rdx
mov edx, dword [rsp + 0x54]
and dx, 1
mov word [rsp + 0x80], dx
jne 0x14025c8a6
jmp 0x14025c978
mov r8d, dword [rsp + 0x118]
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.14025ed70
test eax, eax
je 0x14025c843
xor ebp, ebp
jmp 0x14025d72b
mov r8, qword [rdi]
test byte [r8 + 5], 0x10
je 0x14025c8e5
mov dword [rsp + 0x50], 0x2e
movzx eax, ax
xor edx, edx
xor r10d, r10d
dec eax
cmp eax, edx
jle 0x14025c90b
mov r9, qword [rcx + rdx*8]
test r9, r9
je 0x14025c8e0
mov r11d, dword [rsp + 0x50]
cmp qword [r9], r8
cmove r11d, r10d
mov dword [rsp + 0x50], r11d
inc rdx
jmp 0x14025c8c2
mov rax, qword [r8 + 0x20]
xor edx, edx
mov dword [rsp + 0x50], edx
test rax, rax
je 0x14025c90b
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
test eax, eax
je 0x14025c90b
movsxd rcx, eax
call fcn.1402254a0
cwde
mov dword [rsp + 0x50], eax
cmp byte [rsi + 0x64], 0
jns 0x14025c96f
cmp word [rsp + 0xec], 9
jle 0x14025c96f
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x70]
mov r8w, word [rax + rcx]
mov ecx, dword [rsp + 0x50]
call fcn.1401c5670
add r8d, 0xa
sub r8d, dword [rsp + 0xec]
sub r8d, dword [rsp + 0x50]
add r8w, ax
jns 0x14025c96f
cmp word [rsp + 0xb2], 1
jg 0x14025c7a3
mov rax, qword [rsp + 0x78]
test byte [rax + 0x62], 2
jne 0x14025c7a3
or dword [rbx + 0x38], 0x100000
or dword [rbx + 0x38], 4
jmp 0x14025cc05
test byte [rsp + 0x54], 0x82
je 0x14025c9f7
mov rax, qword [rsi + 8]
mov rcx, qword [rsp + 0x70]
movsx edx, word [rax + rcx]
mov eax, dword [rbx + 0x38]
mov ecx, eax
or ecx, 1
mov dword [rbx + 0x38], ecx
cmp edx, 0xffffffff
je 0x14025c9d5
test edx, edx
js 0x14025c9e4
cmp word [rsp + 0xb2], 0
jne 0x14025c9e4
movzx edx, word [rsi + 0x5e]
mov ecx, edx
dec edx
cmp dword [rsp + 0x8c], edx
jne 0x14025c9e4
test byte [rsi + 0x64], 8
jne 0x14025c9d5
dec cx
jne 0x14025c9dc
cmp byte [rsi + 0x62], 0
je 0x14025c9dc
cmp word [rsp + 0x54], 2
jne 0x14025c9dc
or eax, 0x1001
jmp 0x14025c9e1
or eax, 0x10001
mov dword [rbx + 0x38], eax
cmp byte [rsp + 0x169], 1
jbe 0x14025ca04
or dword [rbx + 0x38], 0x200000
jmp 0x14025ca04
test word [rsp + 0x54], 0x100
je 0x14025ca0f
or dword [rbx + 0x38], 8
xor eax, eax
mov dword [rsp + 0x50], eax
jmp 0x14025cc05
mov rax, qword [rsp + 0x208]
mov ebp, 1
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x50], eax
mov rax, qword [rdi]
mov rcx, qword [rax + 0x10]
call fcn.1402150f0
movzx r12d, word [rsi + 0x60]
mov ecx, dword [rsp + 0x8c]
sub r12d, ecx
cmp r12d, eax
cmovle eax, r12d
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0xb8]
lea r13, [rax + 1]
cmp dword [rsp + 0x58], ebp
jle 0x14025ca97
mov rdx, qword [rdi]
movsxd rax, ebp
shl rax, 5
mov rcx, qword [rdx + 0x10]
mov r11, qword [rcx + 0x20]
mov rcx, qword [rdx + 0x18]
add r11, rax
mov rdx, qword [rcx + 0x20]
mov r15, qword [r11 + 8]
test byte [rcx + 5], 0x10
je 0x14025ca8c
add rax, qword [rdx + 0x20]
mov r12, qword [rax + 8]
jmp 0x14025ca91
mov r12, qword [rdx + rax + 8]
cmp byte [r15], 0xa7
je 0x14025caaa
mov eax, dword [rbx + 0x38]
test byte [rsp + 0x54], 0x24
jne 0x14025cb45
jmp 0x14025cbac
mov eax, dword [rsp + 0x50]
cmp eax, dword [r15 + 0x2c]
jne 0x14025ca97
mov rax, qword [rsi + 8]
mov r10d, dword [r15 + 0x30]
cmp r10w, word [rax + r13*2]
mov dword [rsp + 0x60], r10d
jne 0x14025ca97
mov rax, qword [rsi + 0x38]
mov rcx, qword [rsp + 0xb8]
mov cl, byte [rax + rcx]
cmp byte [rax + r13], cl
jne 0x14025ca97
mov rcx, r15
call fcn.1402111c0
mov rcx, r12
movsx edx, al
call fcn.14020c880
mov r10d, dword [rsp + 0x60]
mov rcx, qword [rsi + 0x18]
mov r9d, eax
movsx edx, r10w
call fcn.140235d00
cmp r9b, al
jne 0x14025ca97
mov rcx, qword [rsp + 0x48]
mov r8, r12
mov rdx, r15
call fcn.140207330
test rax, rax
je 0x14025ca97
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + r13*8]
inc r13
call fcn.140235850
test eax, eax
jne 0x14025ca97
inc ebp
jmp 0x14025ca55
or eax, 0x22
mov word [rbx + 0x1a], bp
mov dword [rbx + 0x38], eax
test byte [rdi + 0x13], 1
je 0x14025cbdb
movzx r8d, word [rbx + 0x3c]
mov rcx, qword [rsp + 0x78]
lea rax, [rdi + 0x38]
mov rdx, rbx
mov qword [rsp + 0x58], rax
inc r8d
call fcn.14025ed70
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x14025c89f
movzx eax, word [rbx + 0x3c]
mov rdx, qword [rbx + 0x48]
mov qword [rsp + 0x60], rdi
lea ecx, [rax + 1]
mov word [rbx + 0x3c], cx
mov rcx, qword [rsp + 0x58]
mov qword [rdx + rax*8], rcx
or dword [rbx + 0x38], 0x10
mov word [rbx + 0x1c], 1
jmp 0x14025cc05
mov edx, eax
mov word [rbx + 0x1c], bp
or edx, 0x12
mov dword [rbx + 0x38], edx
test al, 0x20
je 0x14025cbf2
movzx edx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x58], rdi
mov rax, qword [rax + rdx*8 - 0x10]
mov qword [rsp + 0x60], rax
xor eax, eax
mov dword [rsp + 0x50], eax
jmp 0x14025cc05
xor r13d, r13d
xor r15d, r15d
mov qword [rsp + 0x60], rdi
mov dword [rsp + 0x50], r13d
mov qword [rsp + 0x58], r15
jmp 0x14025cc05
xor ebp, ebp
xor r12d, r12d
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x50], ebp
mov qword [rsp + 0x60], r12
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x38], 2
je 0x14025d43f
mov r12, qword [rbx + 0x20]
movsx edi, word [rbx + 0x16]
mov ebp, dword [r12 + 0x68]
mov dword [rsp + 0x54], edi
test ebp, ebp
jg 0x14025cc36
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
jmp 0x14025d373
movzx edi, ax
mov dword [rsp + 0xd8], edi
cmp edi, dword [r12 + 0x6c]
jge 0x14025cc27
mov rdi, qword [rsp + 0x48]
mov rdi, qword [rdi]
mov qword [rsp + 0x98], rdi
test byte [rdi + 0x61], 8
jne 0x14025cc27
mov r15d, dword [r14 + 0x28]
cmp dword [rsp + 0xd8], r15d
movzx edi, ax
jne 0x14025cfa6
mov rdx, qword [r14 + 0x20]
movzx eax, word [rbx + 0x1a]
movzx r10d, word [rbx + 0x1c]
mov qword [rsp + 0x128], rdx
mov dword [rsp + 0x90], eax
test rdx, rdx
je 0x14025cc98
mov word [rdx + 0x1c], r15w
test r15d, r15d
jne 0x14025ccb2
mov rax, qword [r12 + 0x88]
xor r13d, r13d
mov qword [rsp + 0x80], rax
jmp 0x14025ccf0
lea r9, [rsp + 0x130]
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x98], r10d
call fcn.14025baf0
mov r13, qword [rsp + 0x130]
mov rax, qword [rsp + 0x138]
mov r10d, dword [rsp + 0x98]
add rax, r13
mov qword [rsp + 0x80], rax
mov rax, qword [r12 + 0x38]
cmp byte [rax + rdi], 0
jne 0x14025cd19
mov eax, r10d
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov r10d, dword [rsp + 0x90]
mov dword [rsp + 0x90], eax
jmp 0x14025cd23
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
test rbp, rbp
je 0x14025ce1d
mov rax, qword [rbp]
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x128]
mov rdx, r12
mov r9, qword [rax + 0x18]
lea rax, [rsp + 0x124]
mov dword [rsp + 0x20], r10d
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0xa0], r9
call fcn.1402355b0
mov dword [rsp + 0x98], 0xfffffffe
mov r10d, eax
test eax, eax
jne 0x14025ce2b
mov r8d, dword [rsp + 0x124]
test r8d, r8d
je 0x14025ce2b
mov rcx, qword [rsp + 0xa0]
mov dword [rsp + 0xac], eax
mov r11d, 0x18
lea r9, [rsp + 0x130]
call fcn.1402150f0
mov rdx, qword [rsp + 0x128]
mov rcx, r12
cmp r8d, eax
mov eax, 0xc
cmovge r11d, eax
xor r8d, r8d
mov dword [rsp + 0xa0], r11d
call fcn.14025baf0
mov r11d, dword [rsp + 0xa0]
xor edx, edx
and r11d, dword [rbp + 0x14]
test r11w, r11w
mov dword [rsp + 0x98], eax
mov r10d, dword [rsp + 0xac]
mov rax, qword [rsp + 0x130]
je 0x14025ce0b
mov rdx, qword [rsp + 0x138]
add rax, rdx
cmp r13, rax
cmovb r13, rax
dec dword [rsp + 0x54]
xor ebp, ebp
jmp 0x14025ce2b
mov dword [rsp + 0x98], 0xfffffffe
xor r10d, r10d
test rdi, rdi
je 0x14025cf45
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x128]
mov rdx, r12
mov r9, qword [rax + 0x18]
lea rax, [rsp + 0x124]
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x90]
mov qword [rsp + 0x90], r9
mov dword [rsp + 0x20], eax
call fcn.1402355b0
mov r10, qword [rsp + 0x128]
test eax, eax
jne 0x14025cf2f
mov r8d, dword [rsp + 0x124]
test r8d, r8d
je 0x14025cf25
mov rcx, qword [rsp + 0x90]
mov r15d, 0x18
lea r9, [rsp + 0x130]
call fcn.1402150f0
mov rdx, r10
mov rcx, r12
cmp r8d, eax
mov eax, 0xc
mov r8d, 1
cmovge r15d, eax
call fcn.14025baf0
and r15d, dword [rdi + 0x14]
mov r8d, eax
mov rax, qword [rsp + 0x130]
test r15w, r15w
je 0x14025cef0
mov rdi, qword [rsp + 0x138]
mov qword [rsp + 0x68], rdi
mov rdi, qword [rsp + 0x68]
add rax, rdi
cmp qword [rsp + 0x80], rax
cmovbe rax, qword [rsp + 0x80]
xor edi, edi
dec dword [rsp + 0x54]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x128]
mov qword [r14 + 0x20], rax
jmp 0x14025cf6c
mov qword [r14 + 0x20], r10
or r8d, 0xffffffff
jmp 0x14025cf6c
mov qword [r14 + 0x20], r10
mov eax, dword [rsp + 0x54]
test rbp, rbp
jne 0x14025d397
jmp 0x14025d385
mov rax, qword [rsp + 0x128]
or r8d, 0xffffffff
mov qword [r14 + 0x20], rax
test r10d, r10d
je 0x14025cf6c
mov eax, dword [rsp + 0x54]
test rbp, rbp
jne 0x14025d397
jmp 0x14025d410
mov rcx, qword [rsp + 0x80]
mov eax, 0xa
cmp r13, rcx
jae 0x14025cf93
sub rcx, r13
call fcn.1402254a0
cmp dword [rsp + 0x98], r8d
jne 0x14025cf93
sub eax, 0x14
cwde
cmp dword [rsp + 0x54], eax
cmovle eax, dword [rsp + 0x54]
mov dword [rsp + 0x54], eax
jmp 0x14025d373
cmp qword [r12 + 0x20], 0
je 0x14025cfb9
mov rax, qword [r12 + 0x20]
mov r13b, byte [rax + rdi]
jmp 0x14025cfd1
mov rcx, qword [rsp + 0x98]
mov rdx, r12
call fcn.140221f40
test rax, rax
jne 0x14025cfae
mov r13b, 0x41
mov rax, qword [r12 + 0x40]
mov rcx, qword [rsp + 0x48]
xor r11d, r11d
mov qword [rsp + 0x128], r11
mov rdx, qword [rax + rdi*8]
mov qword [rsp + 0x130], r11
call fcn.140225060
cmp qword [rsp + 0x60], 0
mov qword [rsp + 0xd0], rax
je 0x14025d035
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
xor r9d, r9d
xor edi, edi
movzx r8d, r13b
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea rax, [rsp + 0x128]
mov qword [rsp + 0x20], rax
call fcn.140252940
jmp 0x14025d03a
xor eax, eax
or edi, 0xffffffff
cmp qword [rsp + 0x58], 0
je 0x14025d046
test eax, eax
je 0x14025d04c
lea r13d, [rbp + 1]
jmp 0x14025d089
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
xor r9d, r9d
movzx r8d, r13b
xor r13d, r13d
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea rax, [rsp + 0x130]
mov qword [rsp + 0x20], rax
call fcn.140252940
cmp qword [rsp + 0x130], 0
jne 0x14025d089
mov r13d, dword [r12 + 0x68]
mov rcx, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x130]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x80], rdx
test rcx, rcx
jne 0x14025d0c6
test rdx, rdx
jne 0x14025d0c6
call fcn.140238a90
xor ecx, ecx
call fcn.140238a90
xor ecx, ecx
jmp 0x14025d317
xor r15d, r15d
test eax, eax
jne 0x14025d2d8
lea rax, [rsp + 0x124]
mov qword [rsp + 0x108], rax
lea rax, [rsp + 0x120]
mov qword [rsp + 0x110], rax
mov eax, dword [rsp + 0x68]
cmp dword [r12 + 0x68], eax
jle 0x14025d2d8
imul rax, qword [rsp + 0x68], 0x28
add rax, qword [r12 + 0x78]
xor r10d, r10d
mov ecx, dword [rax + 8]
mov rax, qword [rax]
mov dword [rsp + 0x120], r10d
mov qword [rsp + 0xa0], rax
movzx eax, byte [rax]
mov dword [rsp + 0xdc], ecx
test al, al
js 0x14025d140
mov dword [rsp + 0x124], eax
mov ebp, 1
jmp 0x14025d158
mov rdx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xa0]
call fcn.140221890
movzx ebp, al
mov eax, dword [rsp + 0x124]
mov dword [rsp + 0xac], eax
cmp eax, ebp
jle 0x14025d173
cmp dword [rsp + 0xdc], eax
jge 0x14025d17d
mov ecx, 0x14162
jmp 0x14025d21b
xor r9d, r9d
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0xe4], r9d
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0xa0]
movsxd rcx, ebp
add rcx, rax
movzx eax, byte [rcx]
test al, al
js 0x14025d1b6
mov dword [rsp + 0x120], eax
mov al, 1
jmp 0x14025d1c3
mov rdx, qword [rsp + 0x110]
call fcn.140221890
movzx eax, al
add ebp, eax
cmp dword [rsp + 0xac], ebp
jge 0x14025d1d8
mov ecx, 0x14168
jmp 0x14025d21b
mov eax, dword [rsp + 0x120]
mov ecx, eax
mov dword [rsp + 0xe0], eax
call fcn.1402423a0
mov ecx, dword [rsp + 0xc0]
inc dword [rsp + 0xe4]
add eax, ecx
mov ecx, dword [rsp + 0xe4]
cmp dword [rsp + 0xd8], ecx
jge 0x14025d18f
cmp dword [rsp + 0xdc], eax
jge 0x14025d22a
mov ecx, 0x1416e
call fcn.14020d050
test eax, eax
jne 0x14025d2d8
jmp 0x14025d279
test r15, r15
jne 0x14025d248
mov rcx, qword [rsp + 0x98]
call fcn.140238af0
mov r15, rax
test rax, rax
je 0x14025d2d8
movsxd rbp, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xa0]
mov r8, r15
mov edx, dword [rsp + 0xe0]
add rcx, rbp
call fcn.1402422c0
mov rax, qword [rsp + 0x98]
mov al, byte [rax + 0x64]
mov byte [r15 + 0x16], al
cmp qword [rsp + 0x90], 0
je 0x14025d2a4
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x90]
mov rdx, r15
call fcn.140225a60
cmp eax, 0x80000000
adc edi, 0
cmp qword [rsp + 0x80], 0
je 0x14025d2ce
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, r15
call fcn.140225a60
test eax, eax
js 0x14025d2ce
inc r13d
inc qword [rsp + 0x68]
jmp 0x14025d0f1
mov r9d, r13d
sub r9d, edi
cmp qword [rsp + 0x60], 0
sete al
cmp qword [rsp + 0x58], 0
sete dl
or al, dl
jne 0x14025d321
cmp r9d, 1
jg 0x14025d321
mov rcx, qword [rsp + 0x90]
call fcn.140238a90
mov rcx, qword [rsp + 0x80]
call fcn.140238a90
mov rcx, r15
call fcn.140238a90
jmp 0x14025cc27
movsxd rcx, dword [r12 + 0x68]
call fcn.1402254a0
test r9d, r9d
movsx r8d, ax
mov eax, 1
cmovg eax, r9d
movsxd rcx, eax
call fcn.1402254a0
mov rcx, qword [rsp + 0x90]
cwde
sub r8d, eax
sub word [rbx + 0x16], r8w
call fcn.140238a90
mov rcx, qword [rsp + 0x80]
call fcn.140238a90
mov rcx, r15
call fcn.140238a90
jmp 0x14025d608
mov eax, dword [rsp + 0x54]
test rbp, rbp
jne 0x14025d397
test rdi, rdi
je 0x14025d410
mov edx, dword [rdi + 0x10]
test dx, dx
jg 0x14025d3e7
mov eax, dword [rsp + 0x54]
xor ebp, ebp
add eax, edx
jmp 0x14025d410
mov edx, dword [rbp + 0x10]
test dx, dx
jg 0x14025d3b6
mov eax, dword [rsp + 0x54]
add eax, edx
test rdi, rdi
je 0x14025d410
mov edx, dword [rdi + 0x10]
test dx, dx
jg 0x14025d3f1
add eax, edx
jmp 0x14025d410
test byte [rbp + 0x12], 0x80
je 0x14025d3cf
test rdi, rdi
je 0x14025d410
mov edx, dword [rdi + 0x10]
test dx, dx
jg 0x14025d3f1
mov eax, dword [rsp + 0x54]
jmp 0x14025d3e3
mov eax, dword [rsp + 0x54]
sub eax, 0x14
test rdi, rdi
je 0x14025d410
mov edx, dword [rdi + 0x10]
test dx, dx
jg 0x14025d3f1
add eax, edx
jmp 0x14025d406
xor ebp, ebp
test byte [rdi + 0x12], 0x80
je 0x14025d3f7
jmp 0x14025d410
test byte [rdi + 0x12], 0x80
jne 0x14025d3ff
sub eax, 0x14
test rbp, rbp
je 0x14025d410
cmp word [rbp + 0x10], 0
jle 0x14025d410
cmp word [rdi + 0x10], 0
jle 0x14025d410
sub eax, 0x14
xor ecx, ecx
test rbp, rbp
mov edx, dword [rsp + 0x54]
setne cl
cmp rdi, 1
sbb ecx, 0xffffffff
sub edx, ecx
mov ecx, 0xa
cmp ax, cx
cmovl eax, ecx
cwde
cmp edx, eax
cmovg edx, eax
mov word [rbx + 0x16], dx
jmp 0x14025d608
lea r12d, [rax + 1]
mov eax, dword [rdi + 0x10]
mov word [rbx + 0x18], r12w
test ax, ax
jg 0x14025d469
mov rdx, qword [rsi + 8]
mov rcx, qword [rsp + 0x70]
cmp word [rdx + rcx], 0
js 0x14025d469
add ax, word [rbx + 0x16]
jmp 0x14025d600
xor r8d, r8d
cmp word [rsp + 0xb2], 0
mov qword [rsp + 0x128], r8
jne 0x14025d871
cmp dword [rsi + 0x68], 0
je 0x14025d871
movzx eax, r12w
mov dword [rsp + 0x90], eax
cmp dword [rsi + 0x6c], eax
jl 0x14025d871
cmp word [rsp + 0x80], 0
je 0x14025d4b9
mov rax, qword [rdi]
test byte [rax + 5], 0x10
jne 0x14025d871
mov rax, qword [rsp + 0x78]
test byte [rax + 0x61], 8
jne 0x14025d871
mov rax, qword [rdi]
test word [rsp + 0x54], 0x182
je 0x14025d4fc
mov r8, qword [rax + 0x18]
mov rcx, qword [rsp + 0x48]
lea r9, [rsp + 0x128]
mov rdx, r14
call fcn.14025b820
mov ebp, eax
test eax, eax
jne 0x14025d59a
jmp 0x14025d5a3
mov r15, qword [rax + 0x20]
mov rax, qword [r14 + 0x10]
xor r10d, r10d
lea r9, [rsp + 0x130]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x10]
movsx ecx, word [rax]
call fcn.1402255d0
mov r11d, dword [r14 + 0x28]
mov r13, rax
cmp dword [r15], r10d
jle 0x14025d89a
mov rax, r10
mov rcx, qword [rsp + 0x48]
mov rdx, r14
mov dword [rsp + 0xa0], r11d
shl rax, 5
mov qword [rsp + 0x98], r10
mov r8, qword [r15 + rax + 8]
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x130], r13
call fcn.14025b820
mov r10, qword [rsp + 0x98]
mov r11d, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0x130]
add qword [rsp + 0x68], rcx
mov ebp, eax
inc r10
test eax, eax
mov dword [r14 + 0x28], r11d
mov r9, qword [rsp + 0x80]
je 0x14025d526
cmp ebp, 0xc
jne 0x14025d72b
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x14025d871
call fcn.1402254a0
cmp dword [rsp + 0x90], 1
mov word [rbx + 0x16], ax
mov edx, eax
jne 0x14025d5ef
mov rcx, qword [rsi + 0x10]
cwde
add eax, 9
movsx ecx, word [rcx]
cmp eax, ecx
jl 0x14025d5ef
mov ax, word [rdi + 0x12]
mov ecx, eax
or ch, 0x40
mov word [rdi + 0x12], cx
test ah, 0x20
je 0x14025d5ef
or byte [r14 + 0x2d], 4
mov ax, word [rsp + 0xaa]
cmp dx, ax
jg 0x14025d600
mov ax, word [rbx + 0x16]
sub eax, dword [rsp + 0x50]
mov word [rbx + 0x16], ax
mov al, byte [rsi + 0x64]
mov r12w, word [rbx + 0x16]
and eax, 3
cmp al, 3
jne 0x14025d61e
lea eax, [r12 + 0x10]
jmp 0x14025d63d
movsx eax, word [rsi + 0x5c]
mov rdi, qword [rsp + 0x208]
imul eax, eax, 0xf
mov rdx, qword [rdi + 0x20]
movsx ecx, word [rdx + 0x3c]
cdq
idiv ecx
lea eax, [r12 + rax + 1]
mov ecx, dword [rsp + 0x11c]
movsx edx, ax
call fcn.140225500
mov word [rbx + 0x14], ax
test dword [rbx + 0x38], 0x4000140
jne 0x14025d66d
lea edx, [r12 + 0x10]
movsx ecx, ax
movsx edx, dx
call fcn.140225500
mov word [rbx + 0x14], ax
mov edi, dword [rsp + 0x50]
add di, word [rsp + 0xb2]
mov rdx, rbx
lea eax, [rdi + r12]
add word [rbx + 0x14], di
mov rcx, qword [r14 + 8]
mov word [rbx + 0x16], ax
mov r8d, dword [rsp + 0xc4]
call fcn.14025ebe0
mov rdx, rbx
mov rcx, r14
call fcn.14025e990
mov ebp, eax
mov eax, dword [rbx + 0x38]
test al, 2
cmovne r12w, word [rsp + 0xaa]
mov word [rbx + 0x16], r12w
test al, 0x10
jne 0x14025d6ff
mov eax, dword [rbx + 0x18]
cmp ax, word [rsi + 0x60]
jae 0x14025d6ff
cmp ax, word [rsi + 0x5e]
jb 0x14025d6d8
mov dl, byte [rsi + 0x64]
and edx, 3
cmp dl, 2
je 0x14025d6ff
cmp ax, 3
jbe 0x14025d6e8
mov rcx, qword [rsp + 0x48]
call fcn.14022f140
mov rdx, qword [rsp + 0x208]
movsx r9d, di
mov r8, rsi
mov rcx, r14
call fcn.14025c5b0
mov ax, word [rsp + 0xaa]
mov word [rbx + 0x16], ax
mov eax, dword [rsp + 0xf4]
mov dword [r14 + 0x28], eax
lea rcx, [rsp + 0x140]
call fcn.140260020
mov rdi, rax
jmp 0x14025c742
mov rax, qword [rsp + 0xc8]
mov di, word [rsp + 0xf2]
mov qword [rbx], rax
mov rax, qword [rsp + 0x100]
mov qword [rbx + 0x16], rax
mov rax, qword [rsp + 0xf8]
mov qword [rbx + 0x38], rax
cmp word [rsp + 0x8a], di
jne 0x14025d8b3
mov edx, dword [rsp + 0x8c]
movzx eax, word [rsi + 0x5e]
inc edx
cmp edx, eax
jge 0x14025d8b3
mov edi, dword [rsp + 0xa8]
cmp word [rsp + 0x8a], di
jne 0x14025d8b3
mov al, byte [rsi + 0x64]
and eax, 0xffffffc0
cmp al, 0x80
jne 0x14025d8b3
mov rax, qword [rsp + 0x78]
test byte [rax + 0x61], 0x40
jne 0x14025d8b3
mov rax, qword [rsi + 0x10]
mov rdi, qword [rsp + 0x70]
cmp word [rax + rdi + 2], 0x29
jle 0x14025d8b3
movzx r8d, word [rsp + 0xa8]
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
inc r8d
call fcn.14025ed70
mov ebp, eax
test eax, eax
jne 0x14025d8b3
movzx eax, word [rbx + 0x3c]
mov rdx, qword [rbx + 0x48]
mov r8, rsi
inc word [rbx + 0x18]
mov rdi, qword [rsp + 0x70]
lea ecx, [rax + 1]
inc word [rbx + 0x3e]
mov word [rbx + 0x3c], cx
xor ecx, ecx
mov qword [rdx + rax*8], rcx
mov rax, qword [rsi + 0x10]
mov rcx, r14
or dword [rbx + 0x38], 0x8000
mov r9w, word [rax + rdi]
mov ax, word [rax + rdi + 2]
mov edi, dword [rsp + 0xe8]
mov edx, eax
sub edx, r9d
add word [rbx + 0x16], dx
lea r9d, [r9 + rdi + 5]
mov rdx, qword [rsp + 0x208]
sub r9d, eax
movsx r9d, r9w
call fcn.14025c5b0
mov ax, word [rsp + 0xaa]
mov word [rbx + 0x16], ax
mov ax, word [rsp + 0x8a]
mov word [rbx + 0x18], ax
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0xb4]
mov dword [rbx + 0x38], eax
jmp 0x14025d8b3
mov rax, qword [rsi + 0x10]
movzx r12d, r12w
mov dx, word [rbx + 0x16]
add dx, word [rax + r12*2]
sub dx, word [rax + r12*2 - 2]
lea eax, [rdx + 0xa]
test word [rsp + 0x54], 0x100
cmove eax, edx
jmp 0x14025d604
mov rax, qword [rsp + 0x68]
cmp r13, rax
cmova r13, rax
mov qword [rsp + 0x128], r13
jmp 0x14025d5a3
mov eax, ebp
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret