Function at 0x1400257c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r14, r9
mov r15, r8
mov r12d, edx
mov rsi, rcx
mov qword [rsp + 0x40], rcx
call fcn.140050be0
mov rbx, rax
mov eax, dword [rsi + 0x50]
mov rdi, qword [rbx + 0x30]
dec eax
movsxd rbp, dword [rdi + 0x78]
mov dword [rsp + 0x30], eax
lea eax, [rbp + 1]
mov dword [rdi + 0x78], eax
lea eax, [rbp - 1]
test ebp, eax
jne 0x140025839
mov rdx, qword [rdi + 0x80]
mov rcx, qword [rdi]
lea eax, [rbp*2 + 1]
movsxd r8, eax
shl r8, 2
call fcn.140044940
mov qword [rdi + 0x80], rax
mov rcx, qword [rdi + 0x80]
or edx, 0xffffffff
test rcx, rcx
je 0x14002584b
mov dword [rcx + rbp*4], edx
mov ecx, edx
sub ecx, ebp
xor ebp, ebp
mov dword [rsp + 0xa0], ecx
cmp dword [rsp + 0xd8], ebp
jge 0x140025882
mov rax, qword [rsp + 0xc0]
mov r9d, ecx
mov edx, 0x87
movzx r8d, byte [rax + 0x2c]
mov rcx, rbx
mov dword [rsp + 0x20], ebp
call fcn.140068970
mov rax, qword [rsp + 0xc0]
mov r13d, dword [rsp + 0xd0]
mov edi, ebp
cmp dword [rax + 0x28], ebp
jle 0x14002593d
mov r14, qword [rsp + 0xc8]
mov r12d, dword [rsp + 0xa0]
mov rsi, rax
mov r15d, dword [r14]
mov rax, qword [rbx + 0x30]
movsxd rbp, dword [rbx + 0x3c]
inc r15d
add r15d, r13d
cmp dword [rax + 0x60], ebp
jg 0x1400258d7
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
jne 0x14002590b
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
lea rcx, [rbp*2]
add rcx, rbp
xor ebp, ebp
mov word [rax + rcx*8], 0x4c
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
jmp 0x14002590d
xor ebp, ebp
inc edi
add r14, 4
cmp edi, dword [rsi + 0x28]
jl 0x1400258b0
mov rsi, qword [rsp + 0x40]
mov r12d, dword [rsp + 0xa8]
mov r14, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xc0]
cmp dword [rsp + 0xe0], 0
jne 0x140025ef3
test r14, r14
jne 0x140025adc
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x140025964
inc dword [rsi + 0x54]
mov edi, dword [rsi + 0x54]
jmp 0x140025970
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov edi, dword [rsi + rax*4 + 0x24]
mov rax, qword [rsp + 0xc8]
lea r8d, [r13 + 1]
mov r9d, edi
mov eax, dword [rax]
mov edx, 0x22
mov rcx, rbx
add r8d, eax
mov dword [rsp + 0x20], ebp
call fcn.140068970
xor r9d, r9d
mov r8d, edi
lea edx, [r9 + 0x26]
mov rcx, rbx
mov dword [rsp + 0x20], ebp
call fcn.140068970
mov ebp, eax
mov rax, qword [rsp + 0xc0]
cmp r15, qword [rax]
jne 0x1400259f6
cmp dword [rsp + 0xd8], 1
jne 0x1400259f6
mov r9d, dword [rsp + 0xa0]
mov r8d, r13d
mov edx, 0x4f
mov rcx, rbx
mov dword [rsp + 0x20], edi
call fcn.140068970
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1400259f6
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x90
mov r9, r15
mov r15d, dword [rsp + 0x30]
mov r8d, r12d
mov rcx, rsi
mov edx, r15d
mov dword [rsp + 0x20], 0x36
call fcn.1400557c0
xor r9d, r9d
mov r8d, r15d
lea edx, [r9 + 0x46]
mov rcx, rbx
mov dword [rsp + 0x20], edi
call fcn.140068970
mov r13d, dword [rsp + 0xa0]
xor r8d, r8d
lea edx, [r8 + 0x10]
mov rcx, rbx
mov r9d, r13d
mov dword [rsp + 0x20], 0
call fcn.140068970
mov edx, dword [rbx + 0x3c]
lea eax, [rdx - 2]
cmp edx, eax
jbe 0x140025a62
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov edx, dword [rbx + 0x3c]
cmp edx, ebp
jbe 0x140025a88
mov rax, qword [rbx + 8]
lea rcx, [rbp*2]
add rcx, rbp
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
xor ebp, ebp
dec ecx
mov dword [rax + 0x64], ecx
test edi, edi
je 0x140025f02
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x140025f02
mov ecx, ebp
lea rax, [rsi + 0x88]
cmp dword [rax + 0xc], edi
je 0x140025ad3
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140025ab4
movzx eax, dl
mov dword [rsi + rax*4 + 0x24], edi
inc byte [rsi + 0x1f]
jmp 0x140025f02
mov byte [rax + 6], 1
jmp 0x140025f02
movsxd r15, dword [rax + 0x28]
mov ecx, dword [rsi + 0x44]
mov ebp, dword [rsi + 0x48]
mov dword [rsp + 0xe0], ebp
cmp r15d, ecx
jg 0x140025b01
lea eax, [r15 + rbp]
sub ecx, r15d
mov dword [rsi + 0x48], eax
mov dword [rsi + 0x44], ecx
jmp 0x140025b14
mov eax, dword [rsi + 0x54]
lea ebp, [rax + 1]
add eax, r15d
mov dword [rsp + 0xe0], ebp
mov dword [rsi + 0x54], eax
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x140025b24
inc dword [rsi + 0x54]
mov eax, dword [rsi + 0x54]
jmp 0x140025b30
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x24]
mov r9d, dword [r14 + 0x58]
mov r8d, dword [rsp + 0x30]
mov edx, 0x36
mov rcx, rbx
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x20], r12d
call fcn.140068970
mov rdx, r14
mov rcx, rsi
call fcn.140072460
xor edi, edi
mov r12, r15
test r15d, r15d
jle 0x140025be1
mov rsi, qword [rsp + 0xc8]
mov rax, qword [rbx + 0x30]
movsxd r14, dword [rbx + 0x3c]
lea r15d, [r13 + 1]
add r15d, dword [rsi + rdi*4]
cmp dword [rax + 0x60], r14d
jg 0x140025b97
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
jne 0x140025bc7
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
lea rcx, [r14 + r14*2]
mov word [rax + rcx*8], 0x21
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
inc rdi
inc ebp
cmp rdi, r12
jl 0x140025b70
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0xb8]
mov r15d, r12d
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb0]
cmp rdx, qword [rax]
jne 0x140025d1f
cmp dword [rsp + 0xd8], 1
jne 0x140025d1f
mov eax, dword [rbx + 0x3c]
xor edi, edi
inc eax
add eax, r15d
test r12, r12
jle 0x140025ccd
mov esi, eax
nop dword [rax]
mov rax, qword [rsp + 0xc8]
lea r15d, [r13 + 1]
lea ebp, [r13 + 1]
mov eax, dword [rax + rdi*4]
add r15d, eax
mov rax, qword [r14 + 8]
movsxd r14, dword [rbx + 0x3c]
movsx ecx, word [rax + rdi*2]
mov rax, qword [rbx + 0x30]
add ebp, ecx
cmp cx, word [rdx + 0x40]
cmove ebp, r13d
cmp dword [rax + 0x60], r14d
jg 0x140025c67
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
jne 0x140025c93
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
lea rcx, [r14 + r14*2]
mov word [rax + rcx*8], 0x4e
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], 0
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140025ca9
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
mov r14, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
inc rdi
cmp rdi, r12
jl 0x140025c20
mov rsi, qword [rsp + 0x40]
mov r15d, r12d
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x140025ceb
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
jne 0x140025d1f
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov r13d, dword [rsp + 0xa0]
lea rcx, [rdi + rdi*2]
xor edx, edx
mov word [rax + rcx*8], InitCommonControls
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
jmp 0x140025d27
mov r13d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb8]
mov rcx, rbx
call fcn.1400513f0
mov rcx, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
mov rbp, rax
cmp dword [rcx + 0x60], edi
jg 0x140025d6c
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
je 0x140025d6c
mov r14d, dword [rsp + 0x34]
mov r12d, dword [rsp + 0xe0]
mov edi, 1
jmp 0x140025da7
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
mov r12d, dword [rsp + 0xe0]
mov r14d, dword [rsp + 0x34]
lea rcx, [rdi + rdi*2]
mov word [rax + rcx*8], 0x31
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], 0
mov r9d, r15d
mov r8, rbp
mov edx, edi
mov rcx, rbx
call fcn.140068cc0
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x140025dde
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
je 0x140025dde
mov edi, 1
xor ebp, ebp
jmp 0x140025e0d
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rsp + 0x30]
lea rcx, [rdi + rdi*2]
xor ebp, ebp
mov word [rax + rcx*8], 0x45
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], rbp
mov r8, qword [rbx + 8]
mov rcx, qword [rbx]
test r8, r8
je 0x140025e50
cmp byte [rcx + 0x50], 0
jne 0x140025e50
test edi, edi
jns 0x140025e28
mov edi, dword [rbx + 0x3c]
dec edi
movsxd rax, edi
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140027190
mov qword [rdi + 0x10], rbp
mov dword [rdi + 0x10], ebp
mov byte [rdi + 1], 0xf2
jmp 0x140025e5c
xor r8d, r8d
lea edx, [r8 - 0xe]
call fcn.140027190
test r14d, r14d
je 0x140025e95
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x140025e95
mov ecx, ebp
lea rax, [rsi + 0x88]
cmp dword [rax + 0xc], r14d
je 0x140025e91
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140025e73
movzx eax, dl
mov dword [rsi + rax*4 + 0x24], r14d
inc byte [rsi + 0x1f]
jmp 0x140025e95
mov byte [rax + 6], 1
lea r9d, [r15 - 1]
lea rcx, [rsi + 0x94]
mov r8d, 0xa
add r9d, r12d
nop dword [rax]
mov edx, dword [rcx]
cmp edx, r12d
jl 0x140025eda
cmp edx, r9d
jg 0x140025eda
cmp byte [rcx - 6], 0
je 0x140025ed8
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140025ed4
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edx
inc byte [rsi + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], ebp
add rcx, 0x14
dec r8
jne 0x140025eb0
cmp r15d, dword [rsi + 0x44]
jle 0x140025efd
mov dword [rsi + 0x44], r15d
mov dword [rsi + 0x48], r12d
jmp 0x140025efd
mov r13d, dword [rsp + 0xa0]
xor ebp, ebp
mov r15d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0xc0]
movzx ecx, byte [rdx + 0x2c]
test cl, cl
jne 0x140025fd8
mov rax, qword [rsi]
test dword [rax + 0x2c], 0x1000000
jne 0x140025fd8
cmp qword [rsi + 0x1c0], 0
jne 0x140025fd8
cmp byte [rsi + 0x20], cl
jne 0x140025fd8
mov rcx, rsi
call fcn.140050be0
mov rcx, qword [rsi + 0x1c0]
mov edx, 0x18
test rcx, rcx
lea r9d, [rdx - 0x16]
mov r8d, 0x313
cmovne rsi, rcx
mov rcx, rax
mov r14, rax
mov byte [rsi + 0x21], 1
mov dword [rsp + 0x20], ebp
call fcn.140068970
mov r8, qword [r14 + 8]
mov rcx, qword [r14]
test r8, r8
je 0x140025fb4
cmp byte [rcx + 0x50], 0
jne 0x140025fb4
test eax, eax
jns 0x140025f91
mov eax, dword [r14 + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140027190
mov qword [rdi + 0x10], rbp
mov byte [rdi + 1], 0
jmp 0x140025fc0
xor r8d, r8d
lea edx, [r8 - 2]
call fcn.140027190
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x140026048
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 4
jmp 0x140026048
mov ebp, dword [rsp + 0xd8]
test ebp, ebp
jle 0x140025ff9
test cl, cl
jne 0x140025ff9
mov rax, qword [rsi + 0x1c0]
test rax, rax
cmovne rsi, rax
mov byte [rsi + 0x21], 1
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
movzx esi, byte [rdx + 0x2c]
cmp dword [rax + 0x60], edi
jg 0x14002601b
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
jne 0x140026046
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 8], ebp
xor ebp, ebp
mov word [rax + rcx*8], 0x86
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
jmp 0x140026048
xor ebp, ebp
mov r9, qword [rbx + 0x30]
or eax, 0xffffffff
sub eax, r13d
js 0x14002606a
mov r8, qword [r9 + 0x80]
test r8, r8
je 0x14002606a
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r9 + 0x64], eax
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x140026091
mov edx, 1
mov rcx, rbx
call fcn.140029ca0
test eax, eax
jne 0x1400260ba
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
lea rcx, [rdi + rdi*2]
mov word [rax + rcx*8], 0x3d
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], rbp
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret