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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rbx, qword [rcx + 0x10]
mov rdi, rcx
mov rsi, qword [rbx + 0x30]
movsxd rbp, dword [rsi + 0x78]
lea eax, [rbp + 1]
mov dword [rsi + 0x78], eax
lea eax, [rbp - 1]
test ebp, eax
jne 0x1400297b1
mov rdx, qword [rsi + 0x80]
mov rcx, qword [rsi]
lea eax, [rbp + rbp + 1]
movsxd r8, eax
shl r8, 2
call fcn.140022050
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
or edx, 0xffffffff
test rcx, rcx
je 0x1400297c3
mov dword [rcx + rbp*4], edx
mov rsi, qword [rbx + 0x30]
mov eax, edx
sub eax, ebp
movsxd rbp, dword [rsi + 0x78]
mov dword [rsp + 0x2c], eax
lea eax, [rbp + 1]
mov dword [rsi + 0x78], eax
lea eax, [rbp - 1]
test ebp, eax
jne 0x140029804
mov rdx, qword [rsi + 0x80]
mov rcx, qword [rsi]
lea eax, [rbp + rbp + 1]
movsxd r8, eax
shl r8, 2
call fcn.140022050
or edx, 0xffffffff
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x140029813
mov dword [rcx + rbp*4], edx
mov r8, qword [rsp + 0xb0]
mov eax, edx
xor r9d, r9d
mov r12d, dword [r8 + 0x14]
mov r14, qword [r8]
sub eax, ebp
test r12d, r12d
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0xc0]
movzx r15d, byte [rax]
mov ecx, dword [rax + 4]
mov r13d, r9d
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x3c], ecx
je 0x14002993b
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
mov ebp, dword [r8 + 0x10]
cmp dword [rax + 0x60], esi
jg 0x140029875
lea edx, [r9 + 1]
mov rcx, rbx
call fcn.1400214c0
xor r9d, r9d
test eax, eax
jne 0x1400298a2
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], InitCommonControls
mov byte [rax + rcx*8 + 3], r13b
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
mov byte [rax + rcx*8 + 1], r13b
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], esi
jg 0x1400298c3
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
xor r9d, r9d
test eax, eax
jne 0x1400298f4
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
mov edx, dword [rsp + 0x2c]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], InitCommonControls
mov byte [rax + rcx*8 + 3], r13b
mov dword [rax + rcx*8 + 4], r9d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
mov byte [rax + rcx*8 + 1], r13b
mov rsi, qword [rsp + 0xb0]
mov r8, qword [rbx + 0x30]
or eax, 0xffffffff
mov r12d, dword [rsi + 0x14]
sub eax, r12d
js 0x140029921
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140029921
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
sub eax, 1
mov dword [r8 + 0x64], eax
mov rax, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xb0]
cmp r15d, 9
mov ebp, dword [r8 + 0xc]
mov dword [rsp + 0x28], ebp
je 0x1400299a3
cmp r15d, 0xd
je 0x1400299a3
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x140029960
add dword [rdi + 0x54], 1
mov edx, dword [rdi + 0x54]
jmp 0x14002996c
sub al, 1
movzx eax, al
mov byte [rdi + 0x1f], al
mov edx, dword [rdi + rax*4 + 0x24]
movzx eax, byte [rdi + 0x1f]
mov dword [rsp + 0x24], edx
test al, al
jne 0x14002998b
add dword [rdi + 0x54], 1
mov ecx, dword [rdi + 0x54]
mov r15d, 1
mov dword [rsp + 0x20], ecx
jmp 0x1400299b7
sub al, 1
mov r15d, 1
movzx eax, al
mov byte [rdi + 0x1f], al
mov ecx, dword [rdi + rax*4 + 0x24]
mov dword [rsp + 0x20], ecx
jmp 0x1400299b7
mov eax, dword [rax + 8]
mov r15d, dword [rsp + 0xb8]
mov dword [rsp + 0x24], r9d
mov dword [rsp + 0x20], eax
mov eax, dword [r14]
sub eax, dword [r8 + 8]
test byte [r8 + 0x1c], 1
mov dword [rsp + 0x38], eax
je 0x140029b4e
mov r14d, dword [rdi + 0x50]
add dword [rdi + 0x54], 1
test r12d, r12d
mov ebp, dword [rdi + 0x54]
lea eax, [r14 + 1]
mov dword [rdi + 0x50], eax
je 0x1400299ef
mov rcx, rdi
call fcn.140027e30
mov r13d, eax
mov rcx, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rcx + 0x60], esi
jg 0x140029a0d
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029a46
mov rcx, qword [rbx + 8]
add dword [rbx + 0x3c], 1
mov eax, dword [rsp + 0x38]
lea rdx, [rsi + rsi*2]
lea eax, [rax + r15 + 1]
mov dword [rcx + rdx*8 + 0xc], eax
mov byte [rcx + rdx*8], 0x3c
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 4], r14d
mov dword [rcx + rdx*8 + 8], ebp
mov qword [rcx + rdx*8 + 0x10], 0
mov byte [rcx + rdx*8 + 1], 0
test r13d, r13d
je 0x140029a6f
mov edx, dword [rbx + 0x3c]
cmp edx, r13d
jbe 0x140029a62
mov eax, r13d
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]
sub ecx, 1
mov dword [rax + 0x64], ecx
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], esi
jg 0x140029a99
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
je 0x140029a99
mov r12d, dword [rsp + 0x28]
mov esi, 1
jmp 0x140029acf
add dword [rbx + 0x3c], 1
mov rax, qword [rbx + 8]
mov edx, dword [rsp + 0x2c]
mov r12d, dword [rsp + 0x28]
lea rcx, [rsi + rsi*2]
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8], 0x6b
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov rax, qword [rsp + 0xa8]
mov r8d, dword [rsp + 0x30]
lea r13d, [rsi + 1]
mov edx, dword [rax + 0x10]
mov rcx, rbx
mov dword [rsp + 0x34], r13d
call fcn.140026b40
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], esi
jg 0x140029b0e
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029b46
add dword [rbx + 0x3c], 1
mov rax, qword [rbx + 8]
lea rcx, [rsi + rsi*2]
xor r13d, r13d
mov dword [rax + rcx*8 + 4], r12d
mov byte [rax + rcx*8], 0x65
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r14d
mov r12d, r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], r13b
jmp 0x140029bcb
xor r13d, r13d
mov r12d, r13d
jmp 0x140029bcb
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], esi
jg 0x140029b73
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
je 0x140029b73
mov esi, 1
jmp 0x140029ba3
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
mov edx, dword [rsp + 0x2c]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], 0x6c
mov byte [rax + rcx*8 + 3], r13b
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], r13b
mov r8d, dword [rsp + 0x30]
lea eax, [rsi + 1]
mov rcx, rbx
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0xa8]
mov edx, dword [rax + 0x10]
call fcn.140026b40
mov r14d, ebp
mov r12d, 1
test r15d, r15d
mov esi, r13d
jle 0x140029c4c
mov r13d, dword [rsp + 0x38]
mov edi, dword [rsp + 0x20]
nop
mov rax, qword [rbx + 0x30]
movsxd rbp, dword [rbx + 0x3c]
cmp dword [rax + 0x60], ebp
jg 0x140029bfe
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029c39
add dword [rbx + 0x3c], 1
mov rcx, qword [rbx + 8]
lea rdx, [rbp + rbp*2]
lea eax, [rsi + r12]
mov byte [rcx + rdx*8], 0x2f
mov byte [rcx + rdx*8 + 3], 0
add eax, r13d
mov dword [rcx + rdx*8 + 4], r14d
mov qword [rcx + rdx*8 + 0x10], 0
mov dword [rcx + rdx*8 + 8], eax
lea eax, [rsi + rdi]
mov byte [rcx + rdx*8 + 1], 0
mov dword [rcx + rdx*8 + 0xc], eax
add esi, 1
cmp esi, r15d
jl 0x140029be0
mov rdi, qword [rsp + 0xa0]
xor r13d, r13d
mov eax, dword [rsp + 0x40]
movsxd rsi, dword [rbx + 0x3c]
cmp eax, 0xc
je 0x140029d6c
mov r12, qword [rsp + 0xc0]
cmp eax, 9
mov rax, qword [rbx + 0x30]
jne 0x140029d1b
cmp dword [rax + 0x60], esi
mov ebp, dword [r12 + 8]
jg 0x140029c8d
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029cc0
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
mov edx, dword [rsp + 0xb8]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], 0x21
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], 0
mov r9d, dword [r12 + 8]
mov eax, dword [rsp + 0xb8]
lea rcx, [rdi + 0x94]
lea r10d, [r9 + rax - 1]
mov r8d, 0xa
nop
mov edx, dword [rcx]
cmp edx, r9d
jl 0x140029d0c
cmp edx, r10d
jg 0x140029d0c
cmp byte [rcx - 6], 0
je 0x140029d09
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x140029d05
movzx eax, al
mov dword [rdi + rax*4 + 0x24], edx
add byte [rdi + 0x1f], 1
mov byte [rcx - 6], 0
mov dword [rcx], r13d
add rcx, 0x14
sub r8, 1
jne 0x140029ce0
jmp 0x140029e2b
cmp dword [rax + 0x60], esi
mov ebp, dword [r12 + 4]
jg 0x140029d3a
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029e2b
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], 0x14
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], 0
jmp 0x140029e2b
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x60], esi
jg 0x140029d86
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029dbe
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
mov ebp, dword [rsp + 0x3c]
mov r12d, dword [rsp + 0x24]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], 0x4b
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], 0
jmp 0x140029dc7
mov ebp, dword [rsp + 0x3c]
mov r12d, dword [rsp + 0x24]
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], esi
jg 0x140029de5
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029e15
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
mov edx, dword [rsp + 0x20]
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], 0x54
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], 0
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x140029e2b
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
mov r9d, dword [rsp + 0x24]
test r9d, r9d
je 0x140029eb4
mov r8d, dword [rsp + 0x20]
test r8d, r8d
je 0x140029e76
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x140029e76
mov ecx, r13d
lea rax, [rdi + 0x88]
cmp dword [rax + 0xc], r8d
je 0x140029e72
add ecx, 1
add rax, 0x14
cmp ecx, 0xa
jl 0x140029e52
movzx eax, dl
mov dword [rdi + rax*4 + 0x24], r8d
add byte [rdi + 0x1f], 1
jmp 0x140029e76
mov byte [rax + 6], 1
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x140029eb4
mov ecx, r13d
lea rax, [rdi + 0x88]
nop
nop
cmp dword [rax + 0xc], r9d
je 0x140029eb0
add ecx, 1
add rax, 0x14
cmp ecx, 0xa
jl 0x140029e90
movzx eax, dl
mov dword [rdi + rax*4 + 0x24], r9d
add byte [rdi + 0x1f], 1
jmp 0x140029eb4
mov byte [rax + 6], 1
mov r8, qword [rbx + 0x30]
or ebp, 0xffffffff
mov eax, ebp
sub eax, dword [rsp + 0x30]
js 0x140029ed8
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140029ed8
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
mov rsi, qword [rsp + 0xb0]
sub eax, 1
test byte [rsi + 0x1c], 1
mov dword [r8 + 0x64], eax
movsxd rdi, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
je 0x140029f20
cmp dword [rax + 0x60], edi
jg 0x140029f0e
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029f6a
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8], 4
jmp 0x140029f46
cmp dword [rax + 0x60], edi
jg 0x140029f36
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029f6a
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8], 8
mov edx, dword [rsp + 0x28]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x34]
mov byte [rax + rcx*8 + 1], 0
mov qword [rax + rcx*8 + 0x10], r13
mov dword [rax + rcx*8 + 0xc], r13d
mov dword [rax + rcx*8 + 8], edx
mov byte [rax + rcx*8 + 3], 0
mov edi, dword [rsi + 0x10]
test edi, edi
je 0x140029fbc
mov rax, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], esi
jg 0x140029f8f
mov edx, 1
mov rcx, rbx
call fcn.1400214c0
test eax, eax
jne 0x140029fbc
mov rax, qword [rbx + 8]
add dword [rbx + 0x3c], 1
lea rcx, [rsi + rsi*2]
mov byte [rax + rcx*8], InitCommonControls
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], 0
sub ebp, dword [rsp + 0x2c]
mov r8, qword [rbx + 0x30]
js 0x140029fdb
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140029fdb
mov eax, dword [rbx + 0x3c]
movsxd rcx, ebp
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
sub eax, 1
mov dword [r8 + 0x64], eax
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret