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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x148
mov rsi, qword [rcx]
lea rdi, [rcx + 0x158]
movsxd r9, edx
mov rbp, qword [rsi + 0x10]
xor r12d, r12d
mov rax, r9
mov rbx, r8
mov r8, rcx
mov rcx, qword [rsi]
imul rax, rax, 0x58
mov r14, qword [r8 + 8]
mov edx, dword [r8 + 0x54]
lea r15, [rax + r8 + 0x340]
movzx r13d, byte [r15 + 0x2c]
mov r10, qword [r15 + 0x48]
mov qword [rsp + 0x60], rdi
imul r13, r13, 0x70
test edx, edx
mov r11d, dword [r13 + r14 + 0x4c]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xa8], rbp
mov dword [rsp + 0x30], r11d
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0x90], r10
mov ecx, r12d
lea edi, [r12 + 1]
jle 0x140058898
lea rax, [r8 + 0x58]
cmp dword [rax], r11d
je 0x140058a83
add ecx, edi
add rax, 4
cmp ecx, edx
jl 0x140058885
mov rax, r12
not rax
mov rcx, r9
and rax, rbx
mov qword [r15 + 0x50], rax
mov rax, qword [r8 + 0x28]
shr rax, cl
and eax, edi
test byte [r10 + 0x28], 0x40
mov qword [rsp + 0x48], rax
je 0x1400588c8
test byte [r8 + 0x32], 0x20
mov dword [rsp + 0x54], edi
je 0x1400588cd
mov dword [rsp + 0x54], r12d
mov rbx, qword [rbp + 0x30]
movsxd rdi, dword [rbx + 0x78]
lea eax, [rdi + 1]
mov dword [rbx + 0x78], eax
lea eax, [rdi - 1]
test edi, eax
jne 0x140058903
mov rdx, qword [rbx + 0x80]
mov rcx, qword [rbx]
lea eax, [rdi + rdi + 1]
movsxd r8, eax
shl r8, 2
call fcn.140022050
mov qword [rbx + 0x80], rax
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x140058916
mov dword [rcx + rdi*4], 0xffffffff
or eax, 0xffffffff
sub eax, edi
mov dword [r15 + 0x10], eax
mov dword [r15 + 0xc], eax
mov rdi, qword [rbp + 0x30]
movsxd rbx, dword [rdi + 0x78]
mov dword [rsp + 0x198], eax
lea eax, [rbx + 1]
mov dword [rdi + 0x78], eax
lea eax, [rbx - 1]
test ebx, eax
jne 0x140058960
mov rdx, qword [rdi + 0x80]
mov rcx, qword [rdi]
lea eax, [rbx + rbx + 1]
movsxd r8, eax
shl r8, 2
call fcn.140022050
mov qword [rdi + 0x80], rax
mov rcx, qword [rdi + 0x80]
test rcx, rcx
je 0x140058973
mov dword [rcx + rbx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ebx
cmp byte [r15 + 0x2c], r12b
mov dword [rsp + 0x68], eax
mov dword [r15 + 0x18], eax
jbe 0x1400589e3
test byte [r13 + r14 + 0x44], 8
je 0x1400589e3
add dword [rsi + 0x54], 1
mov ebx, dword [rsi + 0x54]
mov dword [r15], ebx
mov rax, qword [rbp + 0x30]
movsxd rdi, dword [rbp + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x1400589b6
mov edx, 1
mov rcx, rbp
call fcn.1400214c0
test eax, eax
jne 0x1400589e3
mov rax, qword [rbp + 8]
add dword [rbp + 0x3c], 1
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8], 0x17
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
mov ecx, dword [r13 + r14 + 0x48]
mov qword [rsp + 0x98], 0xa
test cl, 4
je 0x140058ad1
mov edi, dword [r13 + r14 + 0x3c]
mov rax, qword [rbp + 0x30]
movsxd rbx, dword [rbp + 0x3c]
cmp dword [rax + 0x60], ebx
mov r13d, dword [r13 + r14 + 0x38]
mov r14d, 1
jg 0x140058a29
mov edx, r14d
mov rcx, rbp
call fcn.1400214c0
test eax, eax
jne 0x140058a56
mov rax, qword [rbp + 8]
add dword [rbp + 0x3c], 1
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], reloc.COMCTL32.dll_InitCommonControls
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
mov rax, qword [rbp + 0x30]
movsxd rbx, dword [rbp + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x140058a8e
mov edx, r14d
mov rcx, rbp
call fcn.1400214c0
test eax, eax
je 0x140058a8e
mov ebx, r14d
mov byte [r15 + 0x2d], InitCommonControls
mov dword [r15 + 0x34], ebx
jmp 0x14005972a
mov rax, rdi
shl rax, cl
jmp 0x14005889b
mov rax, qword [rbp + 8]
add dword [rbp + 0x3c], 1
mov r9d, dword [rsp + 0x198]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], 0x14
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
mov dword [r15 + 0x34], ebx
mov byte [r15 + 0x2d], InitCommonControls
jmp 0x14005972a
mov r9, qword [rsp + 0x90]
mov edx, dword [r9 + 0x28]
mov eax, edx
and eax, 0x100
je 0x140058c65
test dl, 5
je 0x140058c65
mov rax, qword [r9 + 0x38]
mov r11, qword [rsp + 0x48]
mov r8, r15
mov rdx, qword [rax]
add dword [rsi + 0x54], 1
mov edi, dword [rsi + 0x54]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r11d
call fcn.14004f0b0
cmp eax, edi
mov ebx, eax
je 0x140058b62
test edi, edi
je 0x140058b62
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140058b62
mov edx, r12d
lea rcx, [rsi + 0x88]
nop
nop
cmp dword [rcx + 0xc], edi
je 0x140058b5e
add edx, 1
add rcx, 0x14
cmp edx, 0xa
jl 0x140058b40
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edi
add byte [rsi + 0x1f], 1
jmp 0x140058b62
mov byte [rcx + 6], 1
mov rax, qword [rbp + 0x30]
movsxd rdi, dword [rbp + 0x3c]
mov r13d, dword [r15 + 0x10]
cmp dword [rax + 0x60], edi
mov r14d, 1
jg 0x140058b88
mov edx, r14d
mov rcx, rbp
call fcn.1400214c0
test eax, eax
jne 0x140058bb5
mov rax, qword [rbp + 8]
add dword [rbp + 0x3c], 1
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8], 0x26
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
mov rax, qword [rbp + 0x30]
movsxd rdi, dword [rbp + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x140058bd1
mov edx, r14d
mov rcx, rbp
call fcn.1400214c0
test eax, eax
jne 0x140058c05
mov rax, qword [rbp + 8]
add dword [rbp + 0x3c], 1
mov r10d, dword [rsp + 0x30]
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8], 0x49
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
jmp 0x140058c0a
mov r10d, dword [rsp + 0x30]
lea rcx, [rsi + 0x94]
mov r9d, 0xa
mov edx, dword [rcx]
cmp edx, ebx
jl 0x140058c3f
jg 0x140058c3f
cmp byte [rcx - 6], r12b
je 0x140058c3c
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140058c38
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edx
add byte [rsi + 0x1f], 1
mov byte [rcx - 6], r12b
mov dword [rcx], r12d
add rcx, 0x14
sub r9, 1
jne 0x140058c17
mov r9d, ebx
or r8d, 0xffffffff
mov edx, r10d
mov rcx, rsi
call fcn.140004e80
mov byte [r15 + 0x2d], 0x9f
jmp 0x14005972a
test eax, eax
je 0x140058ee5
test dl, 2
je 0x140058ee5
test dl, 0x20
mov r13d, 0x9f
mov dword [rsp + 0x40], r12d
mov eax, r12d
mov rdi, r12
mov qword [rsp + 0x70], r12
mov r14, r12
je 0x140058ca0
mov rax, qword [r9 + 0x38]
mov r14, qword [rax]
mov eax, 1
test dl, 0x10
je 0x140058cb5
movsxd rcx, eax
mov rax, qword [r9 + 0x38]
mov rdi, qword [rax + rcx*8]
mov qword [rsp + 0x70], rdi
mov rax, qword [rsp + 0x48]
test eax, eax
je 0x140058cd1
mov rax, r14
mov r14, rdi
mov rdi, rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x48]
test r14, r14
je 0x140058dce
mov rbx, qword [r14]
lea r8, [rsp + 0x54]
mov rcx, rsi
mov rdx, qword [rbx + 0x18]
mov byte [rsp + 0x1a8], 0x42
mov byte [rsp + 0x1a9], 0x40
mov byte [rsp + 0x1aa], 0x3f
mov byte [rsp + 0x1ab], 0x41
call fcn.140024cb0
movzx ecx, byte [rbx]
mov r9d, dword [rsp + 0x198]
mov r8d, dword [rsp + 0x30]
movzx edx, byte [rsp + rcx + 0x158]
mov rcx, rbp
mov edi, eax
mov dword [rsp + 0x20], eax
call fcn.140023de0
lea r11, [rsi + 0x88]
lea rcx, [r11 + 0xc]
mov r8d, 0xa
mov edx, dword [rcx]
cmp edx, edi
jl 0x140058d6d
jg 0x140058d6d
cmp byte [rcx - 6], r12b
je 0x140058d6a
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140058d66
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edx
add byte [rsi + 0x1f], 1
mov byte [rcx - 6], r12b
mov dword [rcx], r12d
add rcx, 0x14
sub r8, 1
jne 0x140058d45
mov ecx, dword [rsp + 0x54]
test ecx, ecx
je 0x140058db4
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x140058db4
mov eax, r12d
nop
nop
cmp dword [r11 + 0xc], ecx
je 0x140058daf
add eax, 1
add r11, 0x14
cmp eax, 0xa
jl 0x140058d90
movzx eax, dl
mov dword [rsi + rax*4 + 0x24], ecx
add byte [rsi + 0x1f], 1
jmp 0x140058db4
mov byte [r11 + 6], 1
mov rdx, r14
mov rcx, r15
call fcn.1400041c0
mov rdi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x198]
jmp 0x140058df5
mov r14d, dword [rsp + 0x198]
mov r8d, dword [rsp + 0x30]
mov edx, 0x6d
mov ecx, 0x6a
test eax, eax
mov r9d, r14d
cmovne edx, ecx
mov rcx, rbp
call fcn.140025730
test rdi, rdi
je 0x140058e56
mov rbx, qword [rdi]
add dword [rsi + 0x54], 1
mov eax, dword [rsi + 0x54]
mov rdx, qword [rbx + 0x18]
mov r8d, eax
mov rcx, rsi
mov dword [rsp + 0x40], eax
call fcn.14004f580
movzx r11d, byte [rbx]
cmp r11b, 0x52
je 0x140058e32
cmp r11b, 0x50
je 0x140058e32
mov eax, 0x52
lea r13d, [rax - 2]
jmp 0x140058e3d
mov eax, 0x51
mov r13d, 0x53
mov r11, qword [rsp + 0x48]
mov rdx, rdi
mov rcx, r15
test r11d, r11d
cmovne r13d, eax
call fcn.1400041c0
jmp 0x140058e5b
mov r11, qword [rsp + 0x48]
mov ecx, dword [rbp + 0x3c]
mov edi, dword [rsp + 0x30]
test r11d, r11d
sete al
mov dword [r15 + 0x30], edi
mov dword [r15 + 0x34], ecx
add al, 7
cmp r13d, 0x9f
mov byte [r15 + 0x2d], al
je 0x14005972a
add dword [rsi + 0x54], 1
mov ebx, dword [rsi + 0x54]
mov r8d, edi
mov edx, 0x68
mov rcx, rbp
mov r9d, ebx
call fcn.140025730
mov r9d, ebx
or r8d, 0xffffffff
mov edx, edi
mov rcx, rsi
call fcn.140004e80
mov r8d, dword [rsp + 0x40]
mov r9d, r14d
mov edx, r13d
mov rcx, rbp
mov dword [rsp + 0x20], ebx
call fcn.140023de0
mov r11, qword [rbp + 8]
test r11, r11
je 0x14005972a
movsxd rax, dword [rbp + 0x3c]
lea rcx, [rax + rax*2]
mov byte [r11 + rcx*8 - 0x15], 0x53
jmp 0x14005972a
bt edx, 9
jae 0x1400596d7
mov eax, dword [r15 + 8]
mov r10, qword [r9 + 0x20]
movzx r13d, word [r9 + 0x18]
mov rbx, r12
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x190]
test byte [rax + 0x32], 1
mov rdi, r12
mov r14d, r12d
mov byte [rsp + 0x198], bl
mov byte [rsp + 0x34], bl
mov byte [rsp + 0x1a8], bl
mov qword [rsp + 0x70], r10
je 0x140058f4a
cmp byte [rax + 0x34], bl
jle 0x140058f4a
cmp word [r10 + 0x56], r13w
mov r11d, 1
jbe 0x140058f50
mov byte [rsp + 0x34], r11b
mov r14d, r11d
jmp 0x140058f50
mov r11d, 1
test dl, 0x20
movzx eax, r13w
mov dword [rsp + 0x38], eax
mov r8, rax
je 0x140058f6f
mov rax, qword [r9 + 0x38]
mov r14d, r11d
mov rbx, qword [rax + r8*8]
add r8d, 1
test dl, 0x10
je 0x14005900e
mov rax, qword [r9 + 0x38]
movsxd rcx, r8d
mov r14d, r11d
mov rdi, qword [rax + rcx*8]
bt word [rdi + 0x1c], 8
jae 0x140058fd5
add dword [rsi + 0x54], 1
mov r9d, dword [rsi + 0x54]
mov r11, qword [rsp + 0x48]
mov dword [r15 + 0x24], r9d
mov rax, qword [r10 + 0x38]
mov r8d, r12d
movzx ecx, r13w
mov edx, 0x17
cmp byte [rcx + rax], 1
mov rcx, rbp
sete r8b
xor r8d, r11d
call fcn.140025730
mov r11d, dword [rbp + 0x3c]
mov r10, qword [rsp + 0x70]
mov dword [r15 + 0x28], r11d
mov r11d, 1
test rbx, rbx
jne 0x14005900e
mov rax, qword [r10 + 8]
movzx ecx, r13w
movsx rdx, word [rax + rcx*2]
test edx, edx
js 0x14005900e
mov rax, qword [r10 + 0x18]
lea rdx, [rdx + rdx*2]
mov rcx, qword [rax + 8]
mov eax, dword [rsp + 0x34]
add rdx, rdx
cmp byte [rcx + rdx*8 + 0x28], r12b
movzx eax, al
cmove eax, r11d
mov dword [rsp + 0x34], eax
mov r9d, r14d
mov r14, qword [rsp + 0x48]
lea rax, [rsp + 0x80]
mov rdx, r15
mov rcx, rsi
mov r8d, r14d
mov qword [rsp + 0x20], rax
call fcn.140052d50
mov r10, qword [rsp + 0x80]
test r10, r10
mov r9d, eax
mov dword [rsp + 0x3c], eax
je 0x140059055
movzx ecx, r13w
movzx edx, byte [rcx + r10]
mov byte [rsp + 0x198], dl
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x70]
movzx r8d, word [rax + 0x56]
cmp r13w, r8w
jae 0x140059083
mov rax, qword [rax + 0x38]
mov edx, r12d
movzx ecx, r13w
cmp byte [rcx + rax], dl
sete dl
cmp r14d, edx
je 0x14005908e
test r14d, r14d
je 0x1400590ab
cmp r8w, r13w
jne 0x1400590ab
mov rax, rdi
mov rdi, rbx
mov rbx, rax
movzx eax, byte [rsp + 0x34]
mov byte [rsp + 0x1a8], al
xor al, al
mov dword [rsp + 0x34], eax
jmp 0x1400590af
mov eax, dword [rsp + 0x34]
test rbx, rbx
je 0x1400590c6
test byte [rbx + 0x1a], 0x28
jne 0x1400590c6
mov dword [rsp + 0x78], r12d
mov ecx, 1
jmp 0x1400590cf
mov ecx, 1
mov dword [rsp + 0x78], ecx
test rdi, rdi
je 0x1400590df
test byte [rdi + 0x1a], 0x28
mov dword [rsp + 0x40], r12d
je 0x1400590e3
mov dword [rsp + 0x40], ecx
test rbx, rbx
jne 0x1400590f3
test r13w, r13w
mov dword [rsp + 0x7c], r12d
je 0x1400590f7
mov dword [rsp + 0x7c], ecx
test rbx, rbx
mov ecx, dword [rsp + 0x38]
mov r14d, ecx
je 0x1400591cc
mov rax, qword [rbx]
lea r8d, [rcx + r9]
mov rcx, rsi
mov r14, qword [rax + 0x18]
mov rdx, r14
call fcn.14004f580
bt word [rbx + 0x1c], 8
jae 0x140059158
mov ecx, dword [rbp + 0x3c]
mov rax, qword [rbp]
sub ecx, 1
cmp byte [rax + 0x51], r12b
je 0x14005913e
lea rcx, [0x1400c20e0]
jmp 0x14005914d
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
lea rcx, [rax + rcx*8]
mov eax, dword [r15 + 0x24]
mov byte [rcx + 3], 1
mov dword [rcx + 0xc], eax
mov rcx, r14
call fcn.140005030
test eax, eax
je 0x140059181
mov ecx, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x58]
movzx r8d, r13w
add r8d, ecx
mov rcx, rbp
mov edx, 0x4c
call fcn.140025730
mov r10, qword [rsp + 0x80]
test r10, r10
je 0x1400591bd
movzx r9d, r13w
mov rcx, r14
movzx edx, byte [r9 + r10]
call fcn.14000aea0
cmp al, 0x41
jne 0x1400591a7
mov byte [r9 + r10], al
movzx edx, byte [r9 + r10]
mov rcx, r14
call fcn.140004fa0
test eax, eax
je 0x1400591bd
mov byte [r9 + r10], 0x41
mov r13d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x34]
lea r14d, [r13 + 1]
jmp 0x140059209
test al, al
je 0x140059206
xor r8d, r8d
add r9d, ecx
mov rcx, rbp
lea edx, [r8 + 0x1a]
call fcn.140025730
mov eax, dword [rsp + 0x34]
mov r10, qword [rsp + 0x80]
mov r13d, dword [rsp + 0x38]
add r14d, 1
mov dword [rsp + 0x78], r12d
mov dword [rsp + 0x7c], 1
jmp 0x140059209
mov r13d, ecx
mov edx, dword [rsp + 0x3c]
movzx eax, al
mov r8d, r14d
mov r9, r10
mov rcx, rsi
sub r8d, eax
call fcn.1400294b0
movsxd rdx, dword [rsp + 0x48]
movsxd rax, dword [rsp + 0x78]
movsxd rcx, dword [rsp + 0x7c]
mov r9d, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
lea rcx, [rax + rcx*2]
mov dword [rsp + 0x28], r14d
lea rax, [rdx + rcx*2]
lea rcx, [0x140000000]
movzx edx, byte [rax + rcx + 0xac958]
mov eax, dword [rsp + 0x3c]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.140028cb0
test rdi, rdi
je 0x140059374
mov rax, qword [rdi]
lea rcx, [rsi + 0x94]
mov r8d, 0xa
mov r14, qword [rax + 0x18]
mov eax, dword [rsp + 0x3c]
add r13d, eax
nop
nop
mov edx, dword [rcx]
cmp edx, r13d
jl 0x1400592b9
jg 0x1400592b9
cmp byte [rcx - 6], r12b
je 0x1400592b6
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x1400592b2
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edx
add byte [rsi + 0x1f], 1
mov byte [rcx - 6], r12b
mov dword [rcx], r12d
add rcx, 0x14
sub r8, 1
jne 0x140059290
mov r8d, r13d
mov rdx, r14
mov rcx, rsi
call fcn.14004f580
bt word [rdi + 0x1c], 8
jae 0x14005930c
mov ecx, dword [rbp + 0x3c]
mov rax, qword [rbp]
sub ecx, 1
cmp byte [rax + 0x51], r12b
je 0x1400592f2
lea rcx, [0x1400c20e0]
jmp 0x140059301
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
lea rcx, [rax + rcx*8]
mov eax, dword [r15 + 0x24]
mov byte [rcx + 3], 1
mov dword [rcx + 0xc], eax
mov rcx, r14
call fcn.140005030
test eax, eax
je 0x14005932d
mov r9d, dword [rsp + 0x58]
mov r8d, r13d
mov edx, 0x4c
mov rcx, rbp
call fcn.140025730
movzx r9d, byte [rsp + 0x198]
mov rcx, r14
movzx edx, r9b
call fcn.14000aea0
cmp al, 0x41
je 0x14005936d
movzx edx, r9b
mov rcx, r14
call fcn.140004fa0
test eax, eax
jne 0x14005936d
lea r9, [rsp + 0x198]
lea r8d, [rax + 1]
mov edx, r13d
mov rcx, rsi
call fcn.1400294b0
mov r14d, dword [rsp + 0x38]
jmp 0x14005939f
cmp byte [rsp + 0x1a8], r12b
mov r14d, dword [rsp + 0x38]
je 0x1400593a3
mov eax, dword [rsp + 0x3c]
xor r8d, r8d
mov rcx, rbp
lea r9d, [r14 + rax]
lea edx, [r8 + 0x1a]
call fcn.140025730
mov dword [rsp + 0x40], r12d
add r14d, 1
mov r13, qword [rsp + 0x80]
test r13, r13
je 0x14005942f
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x1400593d3
cmp qword [rax + 0x2c0], r12
je 0x1400593d3
mov rdx, r13
mov rcx, rax
call fcn.140011800
jmp 0x14005942f
cmp dword [0x1400bf010], r12d
je 0x140059426
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x1400593ee
call qword [0x1400bf098]
mov rcx, r13
call qword [0x1400bf050]
sub qword [0x1400c5018], 1
movsxd rcx, eax
sub qword [0x1400c4fd0], rcx
mov rcx, r13
call qword [0x1400bf040]
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14005942f
call qword [0x1400bf0a8]
jmp 0x14005942f
mov rcx, r13
call qword [0x1400bf040]
test r14d, r14d
mov eax, dword [rbp + 0x3c]
mov r13d, dword [rsp + 0x50]
mov dword [r15 + 0x34], eax
je 0x14005947d
mov r11, qword [rsp + 0x48]
movsxd rax, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x58]
movsxd rcx, r11d
mov r8d, r13d
mov dword [rsp + 0x28], r14d
lea rcx, [rax + rcx*2]
lea rax, [0x140000000]
movzx edx, byte [rcx + rax + 0xac084]
mov eax, dword [rsp + 0x3c]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.140028cb0
test rbx, rbx
mov edx, r12d
je 0x1400594e2
movzx ecx, word [rbx + 0x1c]
test cl, 4
jne 0x1400594e2
cmp dword [r15], r12d
je 0x14005949c
mov rax, qword [rbx]
test byte [rax + 4], 1
je 0x1400594e2
mov rax, qword [rbx + 0x30]
test qword [r15 + 0x50], rax
jne 0x1400594e2
test edx, edx
je 0x1400594b8
bt cx, 0xa
jae 0x1400594b8
or cx, 0x200
jmp 0x1400594bc
or cx, 4
mov word [rbx + 0x1c], cx
movsxd rcx, dword [rbx + 8]
test ecx, ecx
js 0x1400594e2
mov rax, qword [rbx + 0x20]
mov rbx, rcx
imul rbx, rbx, 0x38
add rbx, qword [rax + 0x20]
add byte [rbx + 0x1e], 0xff
jne 0x1400594e2
add edx, 1
jmp 0x140059485
test rdi, rdi
mov edx, r12d
je 0x14005954d
nop
nop
movzx ecx, word [rdi + 0x1c]
test cl, 4
jne 0x14005954d
cmp dword [r15], r12d
je 0x140059507
mov rax, qword [rdi]
test byte [rax + 4], 1
je 0x14005954d
mov rax, qword [rdi + 0x30]
test qword [r15 + 0x50], rax
jne 0x14005954d
test edx, edx
je 0x140059523
bt cx, 0xa
jae 0x140059523
or cx, 0x200
jmp 0x140059527
or cx, 4
mov word [rdi + 0x1c], cx
movsxd rcx, dword [rdi + 8]
test ecx, ecx
js 0x14005954d
mov rax, qword [rdi + 0x20]
mov rdi, rcx
imul rdi, rdi, 0x38
add rdi, qword [rax + 0x20]
add byte [rdi + 0x1e], 0xff
jne 0x14005954d
add edx, 1
jmp 0x1400594f0
cmp dword [rsp + 0x54], r12d
jne 0x140059696
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + 0x18]
test byte [rcx + 0x3e], 0x20
jne 0x1400595ae
add dword [rsi + 0x54], 1
mov ebx, dword [rsi + 0x54]
mov r8d, r13d
mov edx, 0x71
mov rcx, rbp
mov r9d, ebx
call fcn.140025730
mov edi, dword [rsp + 0x30]
mov r9d, ebx
or r8d, 0xffffffff
mov rcx, rsi
mov edx, edi
call fcn.140004e80
mov r9d, ebx
mov r8d, edi
mov edx, 0x43
mov rcx, rbp
call fcn.140025730
jmp 0x140059696
cmp dword [rsp + 0x30], r13d
je 0x140059696
call fcn.1400049b0
mov r8d, dword [rsi + 0x44]
mov r14d, dword [rsi + 0x48]
movzx edx, word [rax + 0x56]
mov r13, rax
cmp edx, r8d
jg 0x1400595e2
lea ecx, [rdx + r14]
sub r8d, edx
mov dword [rsi + 0x48], ecx
mov dword [rsi + 0x44], r8d
jmp 0x1400595ee
mov eax, dword [rsi + 0x54]
lea r14d, [rax + 1]
add eax, edx
mov dword [rsi + 0x54], eax
mov ebx, r12d
cmp word [r13 + 0x56], bx
jbe 0x140059671
mov rsi, qword [rsp + 0x70]
mov r15d, dword [rsp + 0x50]
mov rdi, r12
movzx edx, word [rsi + 0x58]
mov ecx, r12d
test edx, edx
jle 0x140059631
mov rax, qword [r13 + 8]
mov r8, qword [rsi + 8]
movzx r9d, word [rdi + rax]
nop
movsxd rax, ecx
cmp r9w, word [r8 + rax*2]
je 0x140059635
add ecx, 1
cmp ecx, edx
jl 0x140059620
or cx, 0xffff
lea eax, [r14 + rbx]
movsx r9d, cx
mov r8d, r15d
mov edx, 0x2f
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.140023de0
movzx eax, word [r13 + 0x56]
add ebx, 1
add rdi, 2
cmp ebx, eax
jl 0x140059605
mov rsi, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xa0]
movzx eax, word [r13 + 0x56]
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov edx, 0x45
mov rcx, rbp
mov dword [rsp + 0x20], r14d
call fcn.140028cb0
mov r10, qword [rsp + 0x90]
bt dword [r10 + 0x28], 0xc
jae 0x1400596ad
mov byte [r15 + 0x2d], 0x9f
jmp 0x1400596bb
cmp dword [rsp + 0x48], r12d
sete al
add al, 7
mov byte [r15 + 0x2d], al
mov eax, dword [rsp + 0x50]
mov dword [r15 + 0x30], eax
movzx eax, byte [r10 + 0x2a]
and al, 1
mov byte [r15 + 0x2e], al
test byte [r10 + 0x28], 0xf
jne 0x14005972a
jmp 0x140059725
test cl, 8
je 0x1400596e3
mov byte [r15 + 0x2d], 0x9f
jmp 0x14005972a
movsxd rcx, dword [rsp + 0x48]
mov r9d, dword [rsp + 0x198]
lea rdx, [0x140000000]
movzx eax, byte [rcx + rdx + 0xac960]
mov byte [r15 + 0x2d], al
mov eax, dword [rsp + 0x30]
mov dword [r15 + 0x30], eax
movzx edx, byte [rcx + rdx + 0xac964]
mov r8d, eax
mov rcx, rbp
call fcn.140025730
add eax, 1
mov dword [r15 + 0x34], eax
mov byte [r15 + 0x2f], 1
mov rcx, qword [rsp + 0x60]
mov r13d, dword [rcx + 0x14]
mov rdi, qword [rcx + 0x20]
test r13d, r13d
jle 0x140059842
movzx ecx, word [rdi + 0x1c]
mov ebx, r12d
test cl, 6
jne 0x14005982c
mov rax, qword [rdi + 0x30]
test qword [r15 + 0x50], rax
je 0x14005976b
mov rax, qword [rsp + 0x190]
mov byte [rax + 0x37], 1
jmp 0x14005982c
cmp dword [r15], ebx
mov r14, qword [rdi]
je 0x14005977e
test byte [r14 + 4], 1
je 0x14005982c
bt cx, 9
jae 0x1400597eb
mov eax, dword [r15 + 0x24]
movsxd rbx, dword [rbp + 0x3c]
mov dword [rsp + 0x198], eax
mov rax, qword [rbp + 0x30]
cmp dword [rax + 0x60], ebx
jg 0x1400597b7
mov edx, 1
mov rcx, rbp
call fcn.1400214c0
test eax, eax
je 0x1400597b7
mov eax, 1
mov ebx, eax
jmp 0x1400597eb
mov rax, qword [rbp + 8]
add dword [rbp + 0x3c], 1
mov edx, dword [rsp + 0x198]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], 0x2e
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
mov r8d, dword [rsp + 0x68]
mov r9d, InitCommonControls
mov rdx, r14
mov rcx, rsi
call fcn.14004ac30
test ebx, ebx
je 0x140059827
mov edx, dword [rbp + 0x3c]
cmp edx, ebx
jbe 0x14005981a
mov eax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbp + 0x3c]
mov rax, qword [rbp + 0x30]
sub ecx, 1
mov dword [rax + 0x64], ecx
or word [rdi + 0x1c], 4
sub r13d, 1
add rdi, 0x38
test r13d, r13d
jg 0x140059740
mov rcx, qword [rsp + 0x60]
mov r14d, dword [rcx + 0x14]
mov r13, qword [rcx + 0x20]
test r14d, r14d
jle 0x140059a95
mov ebp, dword [rsp + 0x30]
nop
nop
nop
test byte [r13 + 0x1c], 6
jne 0x140059a7c
movzx eax, word [r13 + 0x1a]
test al, 0x82
je 0x140059a7c
bt ax, 0xb
jae 0x140059a7c
cmp dword [r13 + 0xc], ebp
jne 0x140059a7c
cmp dword [r15], r12d
jne 0x140059a7c
mov rax, qword [r13]
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x1a8], rax
mov eax, dword [r13 + 0x10]
lea rcx, [rsp + 0xc0]
mov rdi, r12
mov qword [rsp + 0xd0], r12
mov dword [rsp + 0xdc], 0x83
mov dword [rsp + 0xe8], eax
mov dword [rsp + 0xe0], r12d
mov dword [rsp + 0xe4], ebp
mov byte [rsp + 0xd8], dil
mov byte [rsp + 0xd9], 2
mov byte [rsp + 0xda], 2
call fcn.1400439a0
test rax, rax
mov rbx, rax
je 0x140059948
nop
mov rax, qword [rbx + 0x28]
mov rcx, qword [rsp + 0x1a0]
test rcx, rax
jne 0x140059933
test rax, rax
jne 0x14005992c
test byte [rbx + 0x1a], 0x82
jne 0x14005994b
test rdi, rdi
cmove rdi, rbx
lea rcx, [rsp + 0xc0]
call fcn.1400439a0
test rax, rax
mov rbx, rax
jne 0x140059910
mov rbx, rdi
test rbx, rbx
je 0x140059a77
test byte [rbx + 0x1c], 4
jne 0x140059a77
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x140059975
cmp byte [rax + 0x51], r12b
jne 0x140059a77
cmp dword [0x1400bf010], r12d
je 0x1400599be
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140059990
call qword [0x1400bf098]
lea rdx, [rsp + 0x190]
mov ecx, 0x48
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x1400599b4
call qword [0x1400bf0a8]
mov rdi, qword [rsp + 0x190]
jmp 0x1400599d4
mov ecx, 0x48
call qword [0x1400bf038]
mov rdi, rax
mov qword [rsp + 0x190], rax
test rdi, rdi
jne 0x1400599f8
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
test rax, rax
je 0x140059a7c
mov byte [rax + 0x51], 1
jmp 0x140059a7c
mov rcx, qword [rbx]
mov r8d, dword [rsp + 0x68]
mov r9d, InitCommonControls
mov rax, qword [rcx]
mov rdx, rdi
mov qword [rdi], rax
mov rax, qword [rcx + 8]
mov qword [rdi + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdi + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [rdi + 0x18], rax
mov rax, qword [rcx + 0x20]
mov qword [rdi + 0x20], rax
mov rax, qword [rcx + 0x28]
mov qword [rdi + 0x28], rax
mov rax, qword [rcx + 0x30]
mov qword [rdi + 0x30], rax
mov rax, qword [rcx + 0x38]
mov qword [rdi + 0x38], rax
mov rax, qword [rcx + 0x40]
mov rcx, rsi
mov qword [rdi + 0x40], rax
mov rax, qword [rsp + 0x1a8]
mov rax, qword [rax + 0x10]
mov qword [rdi + 0x10], rax
call fcn.14004ac30
mov rcx, qword [rsp + 0x88]
mov rdx, rdi
call fcn.1400130c0
mov rcx, qword [rsp + 0x60]
sub r14d, 1
add r13, 0x38
test r14d, r14d
jg 0x140059860
mov rbp, qword [rsp + 0xa8]
cmp dword [r15], r12d
je 0x140059c99
mov eax, dword [rbp + 0x3c]
mov dword [r15 + 0x1c], eax
mov eax, dword [r15]
mov r13, qword [rbp + 0x30]
mov dword [rsp + 0x190], eax
mov eax, dword [rbp + 0x3c]
cmp dword [r13 + 0x60], eax
mov dword [rsp + 0x198], eax
jg 0x140059bc4
mov eax, dword [r13 + 0x60]
test eax, eax
je 0x140059ad3
add eax, eax
jmp 0x140059ad8
mov eax, 0x2a
mov r14, qword [r13]
cdqe
mov rbx, r12
lea rdi, [rax + rax*2]
mov rax, qword [rbp + 8]
shl rdi, 3
cmp byte [r14 + 0x51], bl
mov qword [rsp + 0x1a0], rax
jne 0x140059b93
test rax, rax
jne 0x140059b6d
test rdi, rdi
je 0x140059b8e
cmp rdi, 0x7fffff00
jae 0x140059b8e
cmp dword [0x1400bf010], ebx
je 0x140059b5b
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140059b30
call qword [0x1400bf098]
lea rdx, [rsp + 0x1a0]
mov ecx, edi
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140059b51
call qword [0x1400bf0a8]
mov rbx, qword [rsp + 0x1a0]
jmp 0x140059b66
mov ecx, edi
call qword [0x1400bf038]
mov rbx, rax
test rbx, rbx
jne 0x140059b98
jmp 0x140059b8e
call fcn.140047020
test eax, eax
jne 0x140059b8e
mov rcx, qword [rsp + 0x1a0]
mov rdx, rdi
call fcn.140015db0
test rax, rax
mov rbx, rax
jne 0x140059b93
mov byte [r14 + 0x51], 1
test rbx, rbx
je 0x140059bfd
mov rcx, rbx
call qword [0x1400bf050]
movsxd rcx, eax
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov eax, dword [rsp + 0x198]
shr rdx, 4
mov dword [r13 + 0x60], edx
mov qword [rbp + 8], rbx
add dword [rbp + 0x3c], 1
mov edx, dword [rsp + 0x190]
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
mov byte [rax + rcx*8], 0x17
mov byte [rax + rcx*8 + 3], r12b
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
lea rcx, [rsi + 0x94]
mov eax, 0xa
nop
nop
mov edx, dword [rcx]
test edx, edx
je 0x140059c3e
cmp byte [rcx - 6], r12b
je 0x140059c33
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140059c2f
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edx
add byte [rsi + 0x1f], 1
mov byte [rcx - 6], r12b
mov rax, qword [rsp + 0x98]
mov dword [rcx], r12d
add rcx, 0x14
sub rax, 1
mov qword [rsp + 0x98], rax
jne 0x140059c10
mov rdi, qword [rsp + 0x60]
cmp dword [rdi + 0x14], r12d
mov rbx, qword [rdi + 0x20]
jle 0x140059c99
nop
test byte [rbx + 0x1c], 6
jne 0x140059c8b
mov rax, qword [rbx + 0x30]
test qword [r15 + 0x50], rax
jne 0x140059c8b
mov r8d, dword [rsp + 0x68]
mov rdx, qword [rbx]
mov r9d, InitCommonControls
mov rcx, rsi
call fcn.14004ac30
or word [rbx + 0x1c], 4
add r12d, 1
add rbx, 0x38
cmp r12d, dword [rdi + 0x14]
jl 0x140059c60
mov rax, qword [r15 + 0x50]
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret