Function at 0x14025f010
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, 0xa8
mov eax, dword [rsp + 0x110]
mov qword [rsp + 0xf8], rdx
mov rdx, qword [rcx]
mov r15, rcx
mov dword [rsp + 0x64], r9d
mov ebx, dword [rsp + 0x64]
mov qword [rsp + 0x100], r8
mov rdx, qword [rdx]
mov word [rsp + 0x52], bx
mov word [rsp + 0x9a], ax
test ax, ax
je 0x14025f06b
test byte [rdx + 0x60], 0x40
je 0x14025f06b
xor eax, eax
jmp 0x14025f6c1
mov rax, qword [rsp + 0xf8]
mov eax, dword [rax]
mov dword [rsp + 0x44], eax
cmp word [rsp + 0x44], 0x3f
ja 0x14025f064
movzx eax, word [rsp + 0x44]
mov cl, byte [rsp + 0x44]
mov r12b, 1
mov dword [rsp + 0x48], eax
mov eax, 1
shl rax, cl
dec rax
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x64]
and ax, 0x803
cmp ax, 1
sbb eax, eax
xor r10d, r10d
xor ebx, ebx
mov dword [rsp + 0x54], eax
add word [rsp + 0x54], 0x183
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x70], r10
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x30], r10
mov rdi, qword [rsp + 0x78]
cmp qword [rsp + 0x30], rdi
jae 0x14025f673
test r12b, 1
je 0x14025f673
movzx eax, word [rsp + 0x9a]
mov edx, dword [rsp + 0x38]
cmp eax, edx
jl 0x14025f66f
cmp qword [rsp + 0x38], 0
je 0x14025f112
mov rbx, qword [rbx + 8]
or qword [rsp + 0x70], rbx
cmp eax, edx
jle 0x14025f13d
mov rax, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x38]
mov r12b, 1
mov rax, qword [rax + 0x18]
mov rbx, qword [rax + rbx*8]
test word [rsp + 0x52], 0x800
jne 0x14025f665
jmp 0x14025f145
mov rbx, qword [rsp + 0x118]
test byte [rbx + 0x39], 4
je 0x14025f170
cmp byte [rbx + 0x20], 0
mov al, 0xff
je 0x14025f6c1
mov edx, dword [rsp + 0x64]
and dx, 0x280
cmp dx, 0x80
jne 0x14025f67f
jmp 0x14025f6c1
mov ax, word [rsp + 0x52]
and ax, 0x80
mov word [rsp + 0x98], ax
je 0x14025f189
mov word [rbx + 0x1e], 0
movzx eax, byte [rbx + 0x10]
xor esi, esi
imul rax, rax, 0x68
add rax, qword [r15 + 8]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0xf8]
add rax, 8
mov qword [rsp + 0x88], rax
mov rdi, rax
mov eax, dword [rsp + 0x48]
cmp esi, eax
je 0x14025f2bb
mov rbp, qword [rsp + 0x30]
mov ecx, esi
shr rbp, cl
and ebp, 1
jne 0x14025f2b0
mov rcx, qword [rdi]
call fcn.140215060
mov r12, rax
test rax, rax
je 0x14025f2b0
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x14025f2b0
mov eax, dword [rsp + 0x4c]
cmp dword [r12 + 0x2c], eax
jne 0x14025f2b0
movzx eax, word [rsp + 0x54]
xor r9d, r9d
mov edx, dword [rsp + 0x4c]
lea rcx, [r15 + 0x70]
movsx r8d, word [r12 + 0x30]
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x70]
not r9
call fcn.1402480e0
mov r13, rax
test rax, rax
je 0x14025f2b0
mov eax, dword [rax + 0x14]
cmp ax, 1
jne 0x14025f271
movzx eax, word [rbx + 0x3c]
cmp eax, ebp
jle 0x14025f2b0
mov rdx, qword [rbx + 0x48]
lea rcx, [rbp + 1]
cmp qword [rdx + rbp*8], r13
je 0x14025f25c
mov rbp, rcx
jmp 0x14025f245
cmp eax, ebp
jle 0x14025f2b0
mov eax, 1
mov ecx, esi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14025f2b0
test al, 0x82
je 0x14025f260
cmp word [r12 + 0x30], 0
js 0x14025f260
mov r12, qword [r15]
mov rdx, qword [rdi]
mov rcx, r12
call fcn.140214dd0
mov rdx, qword [r13]
mov rcx, r12
mov rbp, rax
call fcn.140213d30
test rax, rax
je 0x14025f2b0
mov rdx, qword [rax]
mov rcx, qword [rbp]
call fcn.140235850
test eax, eax
je 0x14025f260
inc esi
add rdi, 0x20
jmp 0x14025f1b5
mov eax, dword [rbx + 0x38]
bt eax, 0xc
jb 0x14025f5df
bt eax, 8
jb 0x14025f30e
mov rdi, qword [rbx + 0x20]
test rdi, rdi
je 0x14025f064
test byte [rdi + 0x64], 4
jne 0x14025f064
mov si, word [rdi + 0x5e]
xor r10d, r10d
cmp byte [rdi + 0x62], 0
mov edx, dword [rdi + 0x60]
mov word [rsp + 0x82], si
je 0x14025f309
shr eax, 0xf
xor eax, 1
and eax, 1
mov r10d, eax
mov r13d, r10d
jmp 0x14025f322
mov word [rsp + 0x82], 0
xor edi, edi
mov edx, 1
mov r13b, 1
mov cl, byte [rsp + 0x38]
mov eax, 1
xor esi, esi
xor r12d, r12d
mov byte [rsp + 0x81], 0
shl rax, cl
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x90], rax
movzx eax, dx
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x84], esi
cmp dword [rsp + 0x9c], esi
jle 0x14025f5d6
movzx edx, word [rbx + 0x18]
cmp edx, esi
jle 0x14025f3be
movzx eax, word [rbx + 0x3e]
cmp eax, esi
jg 0x14025f3be
mov r8, qword [rbx + 0x48]
mov r11, qword [r8 + rsi*8]
mov ecx, dword [r11 + 0x14]
test word [rsp + 0x54], cx
je 0x14025f39c
xor eax, eax
test cx, 0x180
cmovne r13d, eax
jmp 0x14025f5ce
and cl, 1
mov al, 1
je 0x14025f3c0
mov rcx, qword [r11]
lea rax, [rsi + 1]
cmp edx, eax
jle 0x14025f3be
mov r11, qword [r8 + rax*8]
inc rax
cmp qword [r11], rcx
jne 0x14025f3aa
xor eax, eax
jmp 0x14025f3c0
mov al, 1
test rdi, rdi
je 0x14025f41b
mov r8, qword [rdi + 0x38]
mov rcx, qword [rdi + 8]
or r14d, 0xffffffff
mov bpl, byte [r8 + rsi]
mov r8, qword [rdi + 0x18]
movsx rcx, word [rcx + rsi*2]
and ebp, 1
cmp cx, word [r8 + 0x34]
je 0x14025f421
movsx r14d, cx
test r13b, r13b
je 0x14025f421
test r14d, r14d
js 0x14025f411
mov r10d, dword [rsp + 0x84]
cmp edx, r10d
jg 0x14025f421
imul rcx, rcx, 0x18
add rcx, qword [r8 + 8]
test byte [rcx + 8], 0xf
jmp 0x14025f415
cmp r14d, 0xfffffffe
setne r13b
jmp 0x14025f421
or r14d, 0xffffffff
xor ebp, ebp
mov rdx, qword [rsp + 0x88]
mov dword [rsp + 0x60], esi
mov qword [rsp + 0x58], rdx
xor edx, edx
mov dword [rsp + 0x40], edx
mov ecx, dword [rsp + 0x48]
cmp dword [rsp + 0x40], ecx
jge 0x14025f5b2
test al, al
je 0x14025f5b2
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x40]
shr rax, cl
test al, 1
jne 0x14025f521
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax]
call fcn.140215060
mov rcx, rax
test rax, rax
je 0x14025f521
cmp r14d, 0xffffffff
jl 0x14025f4a6
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x14025f49c
mov eax, dword [rsp + 0x4c]
cmp dword [rcx + 0x2c], eax
jne 0x14025f49c
movsx eax, word [rcx + 0x30]
cmp eax, r14d
je 0x14025f4eb
test byte [rsp + 0x52], 0xc0
setne al
jmp 0x14025f523
movsxd rax, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x4c]
shl rax, 5
add rax, qword [rdi + 0x50]
mov rdx, qword [rax + 8]
call fcn.140213d50
test eax, eax
jne 0x14025f49c
mov rax, qword [rsp + 0x58]
mov rcx, qword [r15]
mov rdx, qword [rax]
call fcn.140214dd0
mov rdx, qword [rdi + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + rsi*8]
call fcn.140235850
test eax, eax
je 0x14025f4f1
jmp 0x14025f49c
cmp r14d, 0xffffffff
jne 0x14025f4c5
cmp word [rsp + 0x98], 0
je 0x14025f503
lea eax, [rsi + 1]
mov word [rbx + 0x1e], ax
movsxd rax, dword [rsp + 0x40]
mov rdx, qword [rsp + 0xf8]
shl rax, 5
mov dl, byte [rdx + rax + 0x18]
test byte [rsp + 0x52], 0x40
je 0x14025f532
jmp 0x14025f57b
mov al, 1
inc dword [rsp + 0x40]
add qword [rsp + 0x58], 0x20
jmp 0x14025f438
mov eax, edx
and eax, 1
cmp byte [rsp + 0x80], 0
je 0x14025f550
xor bpl, byte [rsp + 0x81]
cmp bpl, al
jne 0x14025f5b2
jmp 0x14025f57b
mov ecx, ebp
mov byte [rsp + 0x80], 1
xor ecx, eax
mov byte [rsp + 0x81], cl
cmp bpl, al
je 0x14025f57b
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x90]
or qword [rax], rcx
and dl, 2
je 0x14025f596
movzx eax, word [rbx + 0x18]
mov edx, dword [rsp + 0x84]
cmp eax, edx
jne 0x14025f5b2
or dword [rbx + 0x38], 0x80000
inc r14d
mov al, 1
mov cl, byte [rsp + 0x40]
cmove r12d, eax
mov eax, 1
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14025f5ce
cmp dword [rsp + 0x60], 0
je 0x14025f5c9
movzx eax, word [rsp + 0x82]
mov edi, dword [rsp + 0x60]
cmp eax, edi
jle 0x14025f5d6
test r12b, r12b
jmp 0x14025f5d9
inc rsi
jmp 0x14025f355
or r12b, r13b
je 0x14025f665
mov rsi, qword [rbx + 8]
or qword [rsp + 0x68], rsi
xor r14d, r14d
lea rbp, [r15 + 0x258]
mov r12, qword [rsp + 0x68]
mov r13d, 1
not r12
mov edi, r14d
cmp dword [rsp + 0x48], r14d
jle 0x14025f662
mov rax, qword [rsp + 0x30]
mov ecx, r14d
shr rax, cl
test al, 1
jne 0x14025f65d
mov rsi, qword [rsp + 0xf8]
mov rax, r14
mov rcx, rbp
shl rax, 5
mov rsi, qword [rsi + rax + 8]
mov rdx, rsi
call fcn.140247fd0
test rax, rax
jne 0x14025f658
mov rcx, rsi
call fcn.140214810
test eax, eax
je 0x14025f65d
mov rax, r13
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14025f65d
test r12, rax
je 0x14025f649
inc r14
jmp 0x14025f600
mov r12b, 1
inc qword [rsp + 0x38]
jmp 0x14025f0d3
mov al, 0xff
jmp 0x14025f6c1
mov rbx, qword [rsp + 0x78]
cmp qword [rsp + 0x30], rbx
jne 0x14025f685
mov al, byte [rsp + 0x44]
jmp 0x14025f6c1
mov al, 0xff
test r12b, r12b
jne 0x14025f6c1
mov eax, dword [rsp + 0x48]
mov r8d, 1
dec eax
test eax, eax
jle 0x14025f064
cmp eax, 0x3f
jg 0x14025f6c1
mov ecx, eax
mov rdx, r8
shl rdx, cl
mov rcx, qword [rsp + 0x30]
dec rdx
and rcx, rdx
cmp rcx, rdx
je 0x14025f6c1
dec eax
jmp 0x14025f698
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret