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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
movaps xmmword [rsp + 0x270], xmm7
movaps xmmword [rsp + 0x260], xmm6
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov rcx, rdx
mov rdx, r8
mov r8d, 0x5b
call fcn.00563aae
test al, al
je 0x584a3c
mov rcx, rdi
mov rdx, rsi
mov r8d, 0x5d
call fcn.00475029
test al, al
je 0x585203
lea r8, [rsi - 1]
mov rcx, rdi
mov rdx, rsi
call fcn.0058799d
mov r8, rdx
lea rsi, [rsp + 0xa0]
mov rcx, rsi
mov rdx, rax
call fcn.005879d1
cmp byte [rsi], 0
je 0x58529e
mov al, byte [rsp + 0xa1]
mov byte [rbx + 1], al
mov al, 3
jmp 0x5852ac
mov qword [rsp + 0x180], rbx
add rsi, rdi
lea rbx, [rsp + 0x248]
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.004b8f39
mov rsi, qword [rbx]
mov rdi, qword [rbx + 0x10]
test rsi, rsi
jne 0x584a71
mov rsi, qword [rsp + 0x250]
mov rcx, rdi
xor edx, edx
call fcn.00433a18
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
and qword [rsp + 0x60], 0
xorps xmm6, xmm6
movups xmmword [rsp + 0x1e8], xmm6
movups xmmword [rsp + 0x200], xmm6
and qword [rsp + 0x20d], 0
mov eax, 1
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1f8], rax
test rdi, rdi
je 0x584b4a
lea rbx, [rsi + rdi]
lea r14, [rsp + 0x198]
mov qword [r14], rsi
mov qword [r14 + 8], rbx
xor ecx, ecx
movaps xmm7, xmmword [0x006bb450]
mov r15, rcx
mov rcx, r14
call fcn.00433914
mov ecx, 0
cmp eax, 0x2e
je 0x584ae1
cmp eax, 0x110000
je 0x58520d
test r15, r15
jne 0x584b0b
cmp eax, 0x2d
je 0x584b4a
mov ecx, 5
cmp r15, 4
ja 0x584b3a
movups xmmword [rsp + 0xa0], xmm7
je 0x587671
cmp eax, dword [rsp + r15*4 + 0xa0]
jne 0x584b3a
inc r15
mov rcx, r15
cmp r15, 4
je 0x584b4a
lea edx, [rax - 0x61]
cmp edx, 0x1a
jb 0x584ae1
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x584ae1
lea rax, [rsp + 0x1f8]
and qword [rax - 8], 0
lea rax, [rsp + 0x38]
and dword [rax + 8], 0
and qword [rax], 0
add rdi, rsi
lea r8, [rsp + 0xb0]
movups xmmword [r8 - 0xe], xmm6
movups xmm0, xmmword [r8 - 0x10]
and qword [r8 - 0x10], 0
movzx ecx, word [r8]
and dword [r8], 0
and word [r8 + 4], 0
xor edx, edx
mov byte [r8 + 8], dl
and dword [r8 + 0xc], 0
mov byte [r8 + 0x10], dl
and dword [r8 + 0x14], 0
mov byte [r8 + 0x18], dl
and dword [r8 + 0x1c], 0
mov byte [r8 + 0x20], dl
and dword [r8 + 0x24], 0
mov qword [r8 + 0x28], rsi
movups xmmword [rsp + 0x19b], xmm6
mov qword [r8 + 0x30], rdi
mov qword [r8 + 0x38], rax
and qword [r8 + 0x40], 0
mov byte [r8 + 0x54], dl
and dword [r8 + 0x50], 0
movups xmm1, xmmword [rsp + 0x198]
movups xmmword [r8 + 0x55], xmm1
mov eax, dword [rsp + 0x1a7]
mov dword [r8 + 0x64], eax
mov byte [r8 + 0x68], dl
lea r8, [rsp + 0x120]
and dword [r8], 0
and word [r8 + 4], 0
movaps xmmword [rsp + 0x160], xmm0
mov word [rsp + 0x170], cx
movzx eax, word [rsp + 0x170]
mov word [r8 + 0x16], ax
movaps xmm0, xmmword [rsp + 0x160]
movups xmmword [r8 + 6], xmm0
mov dword [r8 + 0x20], 0x110000
mov byte [r8 + 0x24], dl
lea rcx, [rsp + 0x1e0]
xor edx, edx
call fcn.00433ead
lea r14, [0x006bb460]
lea r15, [rsp + 0x80]
mov di, 0x1c
mov r10, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xa8]
mov r8d, dword [rsp + 0x120]
mov rcx, qword [rsp + 0x128]
mov r9, qword [rsp + 0x138]
movzx edx, word [rsp + 0x124]
movzx r11d, dx
cmp r10, 1
jne 0x584ce1
test r8d, r8d
je 0x584cb0
cmp rax, r9
jb 0x585177
and qword [rsp + 0x138], 0
xor r9d, r9d
jmp 0x584cd3
cmp dx, 5
jae 0x587671
cmp rax, r11
jb 0x58516f
test dx, dx
je 0x584cd1
and word [rsp + 0x124], 0
xor edx, edx
and qword [rsp + 0xa0], 0
xor r10d, r10d
jmp 0x584c8a
cmp r10, 2
je 0x58512f
lea rbx, [rsp + 0xb0]
mov qword [rsp + 0x80], rbx
mov rdx, qword [rbx + 0x60]
test rdx, rdx
jne 0x5850e5
cmp byte [rbx + 0x50], 2
je 0x584f2c
lea rsi, [rbx + 0x28]
lea r13, [rbx + 0x40]
cmp qword [r13], 0
je 0x584d39
mov rcx, r13
call fcn.00433914
cmp eax, 0x110000
jne 0x584dc0
and qword [r13], 0
mov rcx, rsi
call fcn.00433914
mov r12d, eax
lea eax, [r12 - 0x2d]
cmp eax, 2
jb case.default.0x584d8d
cmp r12d, 0x110000
je 0x584f20
lea eax, [r12 - 0x61]
cmp eax, 0x1a
jb case.default.0x584d8d
lea eax, [r12 - 0x30]
cmp eax, 0xa
jb case.default.0x584d8d
mov ecx, r12d
call fcn.0049e79e
movzx ecx, byte [rax]
movsxd rcx, dword [r14 + rcx*4]
add rcx, r14
jmp rcx
cmp byte [rbx + 0x51], 0
jne case.0x584d8d.50
jmp case.0x584d8d.48
cmp byte [rbx + 0x50], 0
je case.0x584d8d.50
mov rcx, qword [rbx + 0x38]
mov byte [rcx + 7], 1
inc rax
mov rcx, rax
call fcn.0049e82e
add rdx, rax
mov qword [rbx + 0x40], rax
mov qword [rbx + 0x48], rdx
jmp case.0x584d8d.49
mov r12d, eax
jmp case.default.0x584d8d
cmp byte [rbx + 0x54], 0
je case.0x584d8d.48
mov rax, qword [rbx + 0x38]
add rax, 0xb
jmp 0x584ded
mov rax, qword [rbx + 0x38]
add rax, 8
jmp 0x584ded
cmp byte [rbx + 0x50], 0
je case.0x584d8d.48
mov rax, qword [rbx + 0x38]
add rax, 6
mov byte [rax], 1
cmp r12d, 0x110000
je 0x584f20
mov rax, qword [rsp + 0x80]
cmp byte [rax + 0x68], 0
je 0x584e6e
cmp r12d, 0x80
jb 0x584ed7
lea esi, [r12 - 0xac00]
cmp esi, 0x2ba4
jb 0x584e87
mov ecx, r12d
call fcn.00583f5e
test rax, rax
jne 0x584e46
mov ecx, r12d
call fcn.00583e94
test rax, rax
je 0x584ed7
mov rsi, rax
mov rbx, rdx
shl rbx, 2
xor r12d, r12d
cmp rbx, r12
je 0x584ee2
mov edx, dword [rsi + r12]
mov rcx, r15
call fcn.0049f836
add r12, 4
jmp 0x584e53
cmp r12d, 0x80
jb 0x584ed7
lea esi, [r12 - 0xac00]
cmp esi, 0x2ba4
jae 0x584eef
mov eax, esi
xor edx, edx
mov cx, 0x24c
div cx
mov ebx, edx
or eax, 0x1100
mov ebp, 0xffff
and eax, ebp
mov rcx, r15
mov edx, eax
call fcn.0049f836
mov eax, ebx
xor edx, edx
div di
lea edx, [rax + 0x1161]
and edx, ebp
mov rcx, r15
call fcn.0049f836
mov eax, esi
xor edx, edx
div di
test dx, dx
je 0x584ee2
add edx, 0x11a7
movzx r12d, dx
mov rcx, r15
mov edx, r12d
call fcn.0049f836
mov rbx, qword [rsp + 0x80]
jmp 0x584cfb
mov ecx, r12d
call fcn.00583e94
test rax, rax
je 0x584ed7
mov rsi, rax
mov rbx, rdx
shl rbx, 2
xor r12d, r12d
cmp rbx, r12
je 0x584ee2
mov edx, dword [rsi + r12]
mov rcx, r15
call fcn.0049f836
add r12, 4
jmp 0x584f09
mov byte [rbx + 0x50], 2
mov rbx, qword [rsp + 0x80]
cmp dword [rbx], 0
je 0x584f37
mov rax, qword [rbx + 0x18]
jmp 0x584f3b
movzx eax, word [rbx + 4]
test rax, rax
je 0x5850ec
mov rcx, rbx
call fcn.0049f3ee
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx]
test ecx, ecx
je 0x584f60
mov rdx, qword [rbx + 0x18]
jmp 0x584f64
movzx edx, word [rbx + 4]
mov qword [rbx + 0x60], rdx
mov r8, qword [rbx + 0x58]
test ecx, ecx
je 0x584f7a
mov r9, qword [rbx + 8]
mov rax, qword [rbx + 0x18]
jmp 0x584f8c
movzx eax, word [rbx + 4]
cmp rax, 5
jae 0x587671
lea r9, [rbx + 8]
cmp rax, r8
jbe 0x587671
lea rax, [rbx + 0x58]
mov ebp, dword [r9 + r8*8 + 4]
inc r8
cmp r8, rdx
jne 0x584fb0
test ecx, ecx
je 0x584fb8
mov rcx, qword [rbx + 0x18]
jmp 0x584fbc
mov qword [rax], r8
jmp 0x585044
movzx ecx, word [rbx + 4]
lea r8, [rbx + 8]
sub rcx, rdx
xor edx, edx
cmp rcx, rdx
je 0x585023
mov r9, qword [rbx + 0x60]
add r9, rdx
cmp dword [rbx], 0
je 0x584fe8
mov r10, qword [rbx + 0x18]
cmp r10, r9
jbe 0x587671
mov r11, qword [r8]
jmp 0x585003
movzx r10d, word [rbx + 4]
cmp r10, 5
jae 0x587671
mov r11, r8
cmp r9, r10
jae 0x587671
cmp r10, rdx
jbe 0x587671
mov r10b, byte [r11 + r9*8]
mov r9d, dword [r11 + r9*8 + 4]
mov byte [r11 + rdx*8], r10b
mov dword [r11 + rdx*8 + 4], r9d
inc rdx
jmp 0x584fc5
cmp dword [rbx], 0
je 0x585034
cmp qword [rbx + 0x18], rcx
jb 0x585041
mov qword [rbx + 0x18], rcx
jmp 0x585041
movzx edx, word [rbx + 4]
cmp rcx, rdx
jae 0x585041
mov word [rbx + 4], cx
movups xmmword [rax], xmm6
mov ecx, ebp
call fcn.00583e3a
mov ebx, eax
mov esi, dword [rsp + 0x140]
cmp esi, 0x110000
jne 0x585070
test bl, bl
jne 0x585193
mov dword [rsp + 0x140], ebp
jmp 0x584ceb
cmp byte [rsp + 0x144], 0
je 0x585095
cmp byte [rsp + 0x145], bl
jae 0x5850ba
mov ecx, esi
mov edx, ebp
call fcn.00583fcf
cmp eax, 0x110000
je 0x5850c2
jmp 0x5850ae
mov ecx, esi
mov edx, ebp
call fcn.00583fcf
cmp eax, 0x110000
jne 0x5850ae
test bl, bl
jne 0x5850c2
jmp 0x5851fa
mov dword [rsp + 0x140], eax
jmp 0x584ceb
test bl, bl
je 0x5851d4
lea rcx, [rsp + 0x120]
mov edx, ebp
call fcn.0049f83e
mov byte [rsp + 0x144], 1
mov byte [rsp + 0x145], bl
jmp 0x584ceb
mov ecx, dword [rbx]
jmp 0x584f68
mov qword [rsp + 0xa0], 2
and qword [rsp + 0xa8], 0
mov esi, dword [rsp + 0x140]
mov r10d, 2
mov eax, 0
cmp esi, 0x110000
je 0x584c6a
mov dword [rsp + 0x140], 0x110000
jmp 0x5851c0
test r8d, r8d
je 0x585144
cmp rax, r9
jb 0x58515b
and qword [rsp + 0x138], 0
jmp 0x5851a5
cmp dx, 5
jae 0x587671
lea rcx, [rsp + 0x128]
cmp rax, r11
jae 0x585197
mov esi, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0xa0], 2
jmp 0x585189
lea rcx, [rsp + 0x128]
mov esi, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], rax
jmp 0x5851c0
mov esi, ebp
jmp 0x5851c0
test dx, dx
je 0x5851a5
and word [rsp + 0x124], 0
mov esi, dword [rsp + 0x140]
mov eax, 0x110000
mov dword [rsp + 0x140], eax
cmp esi, eax
je 0x58543f
lea rcx, [rsp + 0x1e0]
mov edx, esi
call fcn.00587dad
jmp 0x584c5a
mov dword [rsp + 0x140], ebp
mov byte [rsp + 0x144], 0
mov qword [rsp + 0xa0], 1
and qword [rsp + 0xa8], 0
jmp 0x5851c0
mov dword [rsp + 0x140], ebp
jmp 0x5851c0
mov word [rbx], 0x403
jmp 0x58541b
lea rcx, [rsp + 0x50]
mov rdx, rsi
mov r8, rbx
call fcn.00433e6a
xor edi, edi
mov eax, 1
mov qword [rsp + 0x150], rax
xor r8d, r8d
xor ebx, ebx
xor ebp, ebp
xor r15d, r15d
xor esi, esi
xor r13d, r13d
xor r12d, r12d
xor r9d, r9d
mov eax, r9d
shr eax, 8
mov ecx, r9d
shr ecx, 0x10
or ecx, eax
or ecx, r9d
mov eax, edi
or al, r8b
or al, bl
or al, bpl
or al, cl
mov ecx, r15d
or cl, r12b
or cl, r13b
or cl, al
or cl, sil
mov r14, qword [rsp + 0x50]
jne 0x5852b3
cmp r9d, 0xffffff
ja 0x5852b3
mov dil, byte [rsp + 0x58]
movzx eax, byte [rsp + 0x5f]
shl eax, 0x10
movzx ecx, word [rsp + 0x5d]
or ecx, eax
shl rcx, 0x20
mov r13d, dword [rsp + 0x59]
or r13, rcx
jmp 0x5852c7
movups xmm0, xmmword [rsp + 0xa1]
movups xmmword [rbx + 1], xmm0
mov al, 2
mov byte [rbx], al
jmp 0x58541b
mov rdx, qword [rsp + 0x58]
cmp dil, 2
jne 0x5852ce
mov r13, rdx
shr r13, 8
mov edi, edx
mov rsi, qword [rsp + 0x60]
jmp 0x585321
movzx eax, sil
shl rax, 0x30
movzx ecx, r13b
shl rcx, 0x28
or rcx, rax
movzx eax, r12b
shl rax, 0x20
or rax, rcx
movzx ecx, r15b
shl rcx, 0x18
or rcx, rax
movzx eax, bpl
shl rax, 0x10
or rax, rcx
movzx ecx, bl
shl rcx, 8
or rcx, rax
movzx r13d, r8b
or r13, rcx
mov esi, r9d
mov rcx, r14
call fcn.00433bdd
xor r14d, r14d
mov rcx, qword [rsp + 0x1e0]
mov rdx, qword [rsp + 0x1e8]
call fcn.00433bdd
mov rdx, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x150]
call fcn.00433bdd
test r14, r14
je 0x5853d4
test rsi, rsi
je 0x5853e3
mov dword [rsp + 0x30], edi
lea rax, [r14 + rsi]
lea rdi, [rsp + 0xb0]
mov qword [rdi - 0x10], r14
mov qword [rdi - 8], rsi
mov qword [rdi], r14
mov qword [rdi + 8], rax
and qword [rdi + 0x10], 0
movabs rbx, 0x78000001d4008029
mov rcx, rdi
call fcn.005846ca
cmp edx, 0x110000
je 0x587384
cmp edx, 0x20
jb 0x5853bc
lea eax, [rdx - 0x20]
cmp eax, 0x3e
ja 0x5853b2
bt rbx, rax
jb 0x5853bc
cmp edx, 0x7c
je 0x5853bc
cmp edx, 0x7f
jne 0x58538b
mov rax, qword [rsp + 0x180]
mov word [rax], 0x503
shl r13, 8
movzx edx, byte [rsp + 0x30]
jmp 0x5853fb
mov rax, qword [rsp + 0x180]
mov word [rax], 0x103
jmp 0x585406
xor eax, eax
mov rcx, qword [rsp + 0x180]
mov byte [rcx + 1], al
mov byte [rcx], 3
shl r13, 8
movzx edx, dil
or rdx, r13
mov rcx, r14
call fcn.00433bdd
mov rcx, qword [rsp + 0x248]
mov rdx, qword [rsp + 0x250]
call fcn.0055f979
movaps xmm6, xmmword [rsp + 0x260]
movaps xmm7, xmmword [rsp + 0x270]
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs r15, 0x8080808080808080
lea rcx, [rsp + 0xb0]
call fcn.0049efab
lea rcx, [rsp + 0x120]
call fcn.0049efc1
lea rdx, [rsp + 0x160]
mov qword [rdx], 8
xorps xmm6, xmm6
lea r13, [rsp + 0x198]
and qword [r13], 0
mov rax, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1f0]
mov qword [r13 + 8], rcx
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rcx
and qword [r13 + 0x20], 0
movups xmmword [rdx + 8], xmm6
mov qword [r13 + 0x28], rcx
mov qword [r13 + 0x30], 1
movabs rax, 0x2e0000002e
mov qword [r13 + 0x38], rax
mov word [r13 + 0x40], 1
mov bl, 1
xor r12d, r12d
mov rcx, r13
call fcn.00563016
test rax, rax
je 0x586aa6
mov rsi, rax
mov rdi, rdx
test bl, 1
jne 0x5854f3
lea rcx, [rsp + 0x50]
call fcn.0049e88f
mov r9d, 4
mov rcx, rsi
mov rdx, rdi
lea r8, [0x00702bdc]
call fcn.00563284
lea rbx, [rsi + 4]
test al, al
mov eax, 0
cmove rbx, rax
je 0x5855c6
add rdi, 0xfffffffffffffffc
and qword [rsp + 0x170], 0
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], rdi
and qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], 1
movabs rax, 0x2d0000002d
mov qword [rsp + 0xc8], rax
mov r14, rdi
cmp r14, rdi
ja 0x585607
mov cl, 0x2d
mov rdx, rbx
mov r8, r14
call fcn.004765ed
cmp rax, 1
jne 0x585607
mov r14, rdx
cmp rdx, rdi
jae 0x5855bc
mov rsi, r14
add rsi, rbx
mov edx, 1
mov r9d, 1
mov rcx, rsi
lea r8, [rsp + 0xc8]
call fcn.0047b231
test al, al
jne 0x585673
mov qword [rsp + 0xb8], r14
jmp 0x58556f
test r12b, 1
jne 0x5855da
mov rcx, rsi
mov rdx, rdi
call fcn.0049e960
mov r12d, eax
xor ebx, ebx
mov rcx, rsi
mov rdx, rdi
xor r8d, r8d
lea r9, [rsp + 0x38]
call fcn.0049e9b9
mov r8, rsi
add r8, rdi
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00433e6a
jmp 0x5854cd
lea rdx, [0x00799ab8]
xor r14d, r14d
cmp r14, 8
jb 0x585658
lea rcx, [rdx + 7]
and rcx, 0xfffffffffffffff8
mov rax, rcx
sub rax, rdx
cmp rax, r14
ja 0x585658
test qword [rdx], r15
jne 0x5858d1
cmp rcx, rdx
mov ecx, 8
cmove rax, rcx
lea rcx, [r14 - 8]
cmp rax, rcx
jae 0x5856a6
test qword [rdx + rax], r15
jne 0x5858d1
add rax, 8
jmp 0x585643
mov rcx, r14
mov rax, r14
sub rax, 1
jb 0x5856b0
cmp byte [rdx + rcx - 1], 0
mov rcx, rax
jns 0x58565e
jmp 0x5858d1
test r14, r14
je 0x5858e0
cmp r14, rdi
jae 0x58568a
cmp byte [rsi], 0xbf
jle 0x587671
lea rax, [r14 + 1]
cmp rax, rdi
jae 0x5858e8
cmp byte [rbx + rax], 0xbf
jg 0x5858f1
jmp 0x587671
test qword [rdx + rcx], r15
jne 0x5858d1
mov qword [rsp + 0x238], rdx
mov qword [rsp + 0x178], r12
add rdi, rbx
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], rdi
mov dword [rsp + 0x28], pe_nt_image_headers64
mov edi, 0x48
xor r12d, r12d
xor ebx, ebx
mov eax, r14d
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x188], r14
lea rcx, [rsp + 0xa0]
call fcn.0049f988
test al, 1
mov qword [rsp + 0x48], r12
je 0x5858ff
lea r14d, [rdi + 0x1a]
mov r13d, edi
neg r13d
mov r12d, 1
mov r15d, 0x24
mov esi, ebx
lea eax, [rdx - 0x30]
cmp al, 0xa
jae 0x585735
add dl, 0xea
mov eax, edx
jmp 0x58574a
lea eax, [rdx - 0x41]
cmp al, 0x1a
jb 0x58574a
add dl, 0x9f
mov eax, edx
cmp dl, 0x1a
jae 0x5858bf
test r12d, r12d
je 0x587671
movzx ecx, al
mov eax, esi
not eax
xor edx, edx
div r12d
cmp eax, ecx
jb 0x5858bf
mov eax, r12d
imul eax, ecx
add esi, eax
lea eax, [r15 + r13]
cmp r15d, r14d
mov edx, 0x1a
cmovae eax, edx
cmp r15d, edi
mov edx, 1
cmovbe eax, edx
cmp eax, ecx
ja 0x5857c1
mov ebp, 0x24
sub ebp, eax
mov eax, ebp
mul r12d
jo 0x5858bf
lea rcx, [rsp + 0xa0]
call fcn.0049f988
test al, 1
je 0x5858bf
add r15d, 0x24
imul r12d, ebp
jmp 0x585727
mov ecx, esi
sub ecx, ebx
mov r14, qword [rsp + 0x68]
lea edx, [r14 + 1]
test ebx, ebx
sete r8b
call fcn.0049f998
inc r14d
je 0x587671
mov edi, eax
mov eax, esi
xor edx, edx
mov qword [rsp + 0x68], r14
div r14d
add dword [rsp + 0x28], eax
jb 0x5858bf
cmp dword [rsp + 0x28], 0x110000
je 0x5858bf
mov eax, dword [rsp + 0x28]
xor eax, 0xd800
add eax, 0xffef0000
cmp eax, 0xffef0800
jb 0x5858bf
mov ebx, edx
mov rax, qword [rsp + 0x160]
mov esi, edx
mov r12, qword [rsp + 0x48]
mov rcx, r12
shl rcx, 4
xor edx, edx
mov r14, qword [rsp + 0x188]
cmp rcx, rdx
je 0x58585e
mov r8, qword [rax + rdx]
cmp r8, rsi
jb 0x585858
inc r8
mov qword [rax + rdx], r8
add rdx, 0x10
jmp 0x585843
cmp r12, qword [rsp + 0x168]
jne 0x585888
lea rcx, [rsp + 0x160]
mov rdx, r12
call fcn.004d9f18
mov rax, qword [rsp + 0x160]
mov r12, qword [rsp + 0x170]
movabs r15, 0x8080808080808080
lea r13, [rsp + 0x198]
mov rcx, r12
shl rcx, 4
mov qword [rax + rcx], rsi
mov edx, dword [rsp + 0x28]
mov dword [rax + rcx + 8], edx
inc r12
mov qword [rsp + 0x170], r12
inc ebx
jmp 0x5856f5
movabs r15, 0x8080808080808080
lea r13, [rsp + 0x198]
mov byte [rsp + 0x38], 1
mov r12b, 1
xor ebx, ebx
jmp 0x5854cd
mov rdx, rbx
jmp 0x58560e
mov rax, rdi
jne 0x587671
mov rdx, rbx
add rbx, rax
sub rdi, rax
jmp 0x585611
mov rcx, qword [rsp + 0x160]
cmp r12, 0x15
mov qword [rsp + 0x30], rcx
jae 0x585944
cmp r12, 1
mov rbx, r12
mov r12, qword [rsp + 0x178]
jbe 0x585e1d
mov r8d, 1
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
call fcn.0049f199
mov rcx, qword [rsp + 0x30]
jmp 0x585e1d
lea rdx, [r12*8]
movabs rax, 0x7ffffffffffffff0
and rdx, rax
mov ecx, 8
call fcn.00426d59
test rax, rax
mov r12, qword [rsp + 0x178]
je 0x587671
mov rsi, rax
mov ecx, 8
mov edx, 0x100
call fcn.00426d59
test rax, rax
je 0x587671
mov rbp, rax
mov rcx, qword [rsp + 0x30]
lea rax, [rcx + 0x20]
mov qword [rsp + 0x218], rax
lea rax, [rcx + 8]
mov qword [rsp + 0x230], rax
lea rax, [rcx - 8]
mov qword [rsp + 0x228], rax
lea rax, [rcx - 0x10]
mov qword [rsp + 0x70], rax
mov eax, 0x10
mov qword [rsp + 0x220], rax
xor ebx, ebx
xor r15d, r15d
mov qword [rsp + 0x150], rsi
mov r8, qword [rsp + 0x48]
sub r8, r15
jbe 0x585def
mov rax, r15
shl rax, 4
add rcx, rax
cmp r8, 2
jae 0x585a09
mov r12, qword [rsp + 0x48]
mov r13, r12
jmp 0x585ae6
mov rdx, qword [rcx]
mov r9, qword [rcx + 0x10]
cmp r9, rdx
mov r12, qword [rsp + 0x48]
jae 0x585a48
mov r10, qword [rsp + 0x218]
lea r11, [r10 + rax]
mov r10d, 2
mov rsi, r9
cmp r8, r10
je 0x585a79
mov rdi, qword [r11]
cmp rdi, rsi
jae 0x585a76
inc r10
add r11, 0x10
mov rsi, rdi
jmp 0x585a2f
mov r10, qword [rsp + 0x218]
lea r11, [r10 + rax]
mov r10d, 2
mov rsi, r9
cmp r8, r10
je 0x585a79
mov rdi, qword [r11]
cmp rdi, rsi
jb 0x585a76
inc r10
add r11, 0x10
mov rsi, rdi
jmp 0x585a5d
mov r8, r10
lea r13, [r8 + r15]
cmp r9, rdx
jae 0x585ae6
cmp r15, r13
ja 0x587671
cmp r13, r12
ja 0x587671
mov rdx, r8
shr rdx, 1
add rax, qword [rsp + 0x230]
mov r9, r13
shl r9, 4
add r9, qword [rsp + 0x228]
sub rdx, 1
jb 0x585ae6
cmp r8, 2
jb 0x587671
mov r10, qword [rax - 8]
mov r11d, dword [rax]
mov rsi, qword [r9 - 8]
mov edi, dword [r9]
mov qword [rax - 8], rsi
mov dword [rax], edi
mov qword [r9 - 8], r10
mov dword [r9], r11d
add rax, 0x10
add r9, 0xfffffffffffffff0
jmp 0x585ab1
mov rsi, r13
sub rsi, r15
jb 0x587671
cmp r13, r12
ja 0x587671
jae 0x585b2a
cmp r8, 0xa
jae 0x585b2a
lea r13, [r15 + 0xa]
cmp r13, r12
cmovae r13, r12
mov rsi, r13
sub rsi, r15
jb 0x587671
cmp r8, 1
adc r8, 0
mov rdx, rsi
call fcn.0049f199
mov qword [rsp + 0x240], r13
mov rax, qword [rsp + 0x220]
cmp rbx, rax
jne 0x585b9d
mov r13, rbx
mov rdx, rax
shl rdx, 5
mov ecx, 8
mov rbx, rax
call fcn.00426d59
test rax, rax
je 0x587671
mov rdi, rax
lea rax, [rbx + rbx]
mov qword [rsp + 0x28], rax
shl rbx, 4
mov rcx, rdi
mov rdx, rbp
mov r8, rbx
call sub.ntdll.dll_memcpy
mov edx, 8
mov rcx, rbp
call fcn.00414d20
mov rbp, rdi
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x220], rax
mov rbx, r13
mov rax, rbx
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], r15
inc rbx
mov r15, rbp
mov qword [rsp + 0x98], rbp
mov rcx, r15
mov rdx, rbx
mov r8, r12
call fcn.00426be8
cmp rax, 1
jne 0x585dc2
mov r13, rdx
cmp rbx, rdx
mov rcx, qword [rsp + 0x30]
jbe 0x587671
lea r14, [r13 + 1]
mov qword [rsp + 0x28], rbx
cmp rbx, r14
jbe 0x587671
mov rbp, r13
shl rbp, 4
mov rax, qword [r15 + rbp + 8]
shl r14, 4
mov rdx, qword [r15 + r14]
mov rbx, qword [r15 + r14 + 8]
add rbx, rdx
cmp rax, rbx
ja 0x587671
cmp rbx, r12
ja 0x587671
mov qword [rsp + 0x190], rdx
mov rdx, qword [r15 + rbp]
mov r12, rax
shl r12, 4
add r12, rcx
mov rsi, rdx
shl rsi, 4
lea r15, [r12 + rsi]
mov rdi, rbx
shl rdi, 4
mov qword [rsp + 0x68], rax
add rax, rdx
sub rbx, rax
mov qword [rsp + 0x158], rdx
cmp rbx, rdx
jae 0x585ce3
shl rbx, 4
mov rsi, qword [rsp + 0x150]
mov rcx, rsi
mov rdx, r15
mov r8, rbx
call sub.ntdll.dll_memcpy
add rbx, rsi
mov r9, rsi
add rdi, qword [rsp + 0x70]
mov rsi, rbx
cmp r15, r12
jbe 0x585d49
cmp rsi, r9
jbe 0x585d49
mov rax, qword [rsi - 0x10]
mov rcx, qword [r15 - 0x10]
cmp rax, rcx
mov edx, 0
sbb rdx, rdx
cmp rax, rcx
mov r8d, 0
adc r8, 0xffffffffffffffff
shl rdx, 4
add r15, rdx
shl r8, 4
add rsi, r8
cmp rax, rcx
mov rax, rsi
cmovb rax, r15
movups xmm0, xmmword [rax]
movups xmmword [rdi], xmm0
add rdi, 0xfffffffffffffff0
jmp 0x585c8d
add rdi, rcx
mov rbx, qword [rsp + 0x150]
mov rcx, rbx
mov rdx, r12
mov r8, rsi
call sub.ntdll.dll_memcpy
add rsi, rbx
mov rdx, rbx
cmp rdx, rsi
jae 0x585d4f
cmp r15, rdi
jae 0x585d4f
mov r8, qword [r15]
xor eax, eax
xor ecx, ecx
mov r10, r15
cmp r8, qword [rdx]
setae r8b
setb r9b
jb 0x585d26
mov r10, rdx
movups xmm0, xmmword [r10]
movups xmmword [r12], xmm0
add r12, 0x10
mov cl, r9b
shl rcx, 4
add r15, rcx
mov al, r8b
shl rax, 4
add rdx, rax
jmp 0x585d02
mov r12, r15
mov rdx, r9
mov r15, qword [rsp + 0x98]
add rbp, r15
lea rdi, [r15 + r14]
lea rbx, [r15 + r14]
add rbx, 8
sub rsi, rdx
mov rcx, r12
mov r8, rsi
call sub.ntdll.dll_memcpy
mov rax, qword [rsp + 0x190]
add rax, qword [rsp + 0x158]
mov qword [rdi], rax
mov rax, qword [rsp + 0x68]
mov qword [rbx], rax
lea rdx, [rbp + 0x10]
not r13
mov rbx, qword [rsp + 0x28]
add r13, rbx
shl r13, 4
mov rcx, rbp
mov r8, r13
call sub.ntdll.dll_memmove
dec rbx
mov r14, qword [rsp + 0x188]
mov r12, qword [rsp + 0x48]
jmp 0x585bbc
mov rbp, r15
mov r15, qword [rsp + 0x240]
mov r12, qword [rsp + 0x178]
lea r13, [rsp + 0x198]
mov rcx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x150]
jmp 0x5859de
mov edx, 8
mov rcx, rbp
call fcn.00414d20
mov edx, 8
mov rcx, rsi
call fcn.00414d20
mov rcx, qword [rsp + 0x30]
movabs r15, 0x8080808080808080
mov rbx, qword [rsp + 0x48]
lea rdi, [rbx + r14]
mov rax, qword [rsp + 0x238]
add r14, rax
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rbx
and qword [rsp + 0xc0], 0
lea rcx, [rsp + 0x50]
mov rdx, rdi
call fcn.00433ead
and qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], rdi
xor edi, edi
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x48], rax
cmp rdi, rax
jae 0x585ea6
mov rax, qword [rsp + 0xb0]
mov rcx, rdi
shl rcx, 4
mov rdx, qword [rax + rcx]
cmp rdx, qword [rsp + 0xc8]
je 0x585ef0
lea rcx, [rsp + 0xa0]
call fcn.00433914
cmp eax, 0x110000
jne 0x585ed1
mov rax, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xc0]
cmp rdi, rax
jb 0x585e7f
jmp 0x585f1b
inc qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x48], rcx
mov rdi, qword [rsp + 0xc0]
jmp 0x585f0a
inc rdi
mov qword [rsp + 0xc0], rdi
inc rdx
mov qword [rsp + 0xc8], rdx
mov eax, dword [rax + rcx + 8]
lea rcx, [rsp + 0x50]
mov edx, eax
call fcn.00587dad
jmp 0x585e7a
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov r8, rsi
call fcn.0049e8c1
mov r14, rax
mov rdi, rdx
test r12b, 1
jne 0x585f47
mov rcx, r14
mov rdx, rdi
call fcn.0049e960
mov r12d, eax
mov al, byte [rsp + 0x39]
or al, byte [rsp + 0x38]
or al, byte [rsp + 0x3a]
or al, byte [rsp + 0x3b]
or al, byte [rsp + 0x3c]
or al, byte [rsp + 0x3d]
or al, byte [rsp + 0x3e]
or al, byte [rsp + 0x3f]
or al, byte [rsp + 0x40]
or al, byte [rsp + 0x41]
or al, byte [rsp + 0x42]
xor ebx, ebx
or al, byte [rsp + 0x43]
jne 0x5854cd
mov rsi, r14
mov qword [rsp + 0x28], rdi
add rsi, rdi
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0xa8], rsi
xor ecx, ecx
xor eax, eax
mov ebx, ecx
mov ebp, eax
lea rcx, [rsp + 0xa0]
call fcn.00433914
cmp eax, 0x110000
je 0x586479
mov edi, eax
xor eax, eax
cmp edi, 0x80
jb 0x585fa0
mov ecx, edi
call fcn.00583e3a
cmp bpl, al
jbe 0x585fda
test al, al
jne 0x586a9a
lea ecx, [rdi - 0x340]
cmp ecx, 4
ja 0x585fee
cmp ecx, 2
jne 0x586a9a
lea ecx, [rdi - 0x1fbe]
cmp ecx, 0x3f
jbe 0x58641b
lea ecx, [rdi - 0xf43]
cmp ecx, 0x3e
jbe 0x586434
lea ecx, [rdi - 0x1f71]
cmp ecx, 0xc
jbe 0x58644d
mov cl, 2
lea edx, [rdi - 0x30f]
cmp edx, 0x36
jbe 0x586460
lea edx, [rdi - 0xf93]
cmp edx, 0x26
ja 0x58604b
movabs r8, 0x4002108401
bt r8, rdx
jb 0x586a9a
lea edx, [rdi - 0xfa10]
cmp edx, 0x12
ja 0x586066
mov r8d, 0x50005
bt r8d, edx
jb 0x586a9a
lea edx, [rdi - 0x374]
cmp edx, 0x13
ja 0x586081
mov r8d, 0x80401
bt r8d, edx
jb 0x586a9a
lea edx, [rdi - 0xa33]
cmp edx, 0x2b
ja 0x5860a0
movabs r8, 0x80000000009
bt r8, rdx
jb 0x586a9a
lea edx, [rdi - 0xb3e]
cmp edx, 0x19
ja 0x5860bb
mov r8d, 0x3000001
bt r8d, edx
jb 0x585f9e
lea edx, [rdi - 0xdca]
cmp edx, 0x15
ja 0x5860d6
mov r8d, 0x200021
bt r8d, edx
jb 0x585f9e
lea edx, [rdi - 0xfb1d]
cmp edx, 0x21
ja 0x5860f5
movabs r8, 0x200000005
bt r8, rdx
jb 0x586a9a
lea edx, [rdi - 0x114b0]
cmp edx, 0xd
ja 0x586110
mov r8d, 0x2401
bt r8d, edx
jb 0x585f9e
lea edx, [rdi - 0x2329]
cmp edx, 2
jb 0x586a9a
cmp edi, 0x93c
je 0x585f9e
cmp edi, 0x9be
je 0x585f9e
cmp edi, 0x9d7
je 0x585f9e
cmp edi, 0x9df
je 0x586a9a
cmp edi, 0xbbe
je 0x585f9e
cmp edi, 0xbd7
je 0x585f9e
cmp edi, 0xc56
je 0x585f9e
cmp edi, 0xcc2
je 0x585f9e
cmp edi, 0xd3e
je 0x585f9e
cmp edi, 0xd57
je 0x585f9e
cmp edi, 0x102e
je 0x585f9e
cmp edi, 0x1b35
je 0x585f9e
cmp edi, 0x1fbb
je 0x586a9a
cmp edi, 0x2126
je 0x586a9a
cmp edi, 0x2adc
je 0x586a9a
cmp edi, 0x110ba
je 0x585f9e
cmp edi, 0x11127
je 0x585f9e
cmp edi, 0x1133e
je 0x585f9e
cmp edi, 0x11357
je 0x585f9e
cmp edi, 0x115af
je 0x585f9e
cmp edi, 0x11930
je 0x585f9e
lea edx, [rdi - 0x2f800]
cmp edx, 0x21e
jb 0x586a9a
lea edx, [rdi - 0x1d1bb]
cmp edx, 6
jb 0x586a9a
lea edx, [rdi - 0x1d15e]
cmp edx, 7
jb 0x586a9a
lea edx, [rdi - 0xfb46]
cmp edx, 9
jb 0x586a9a
lea edx, [rdi - 0xfb43]
cmp edx, 2
jb 0x586a9a
mov edx, edi
and edx, 0x1ffffe
cmp edx, 0xfb40
je 0x586a9a
lea r8d, [rdi - 0xfb38]
cmp r8d, 5
jb 0x586a9a
lea r8d, [rdi - 0xfb2a]
cmp r8d, 0xd
jb 0x586a9a
lea r8d, [rdi - 0xfa70]
cmp r8d, 0x6a
jb 0x586a9a
lea r8d, [rdi - 0xfa2a]
cmp r8d, 0x44
jb 0x586a9a
lea r8d, [rdi - 0xfa25]
cmp r8d, 2
jb 0x586a9a
lea r8d, [rdi - 0xfa15]
cmp r8d, 0xa
jb 0x586a9a
lea r8d, [rdi - 0xf900]
cmp r8d, 0x10e
jb 0x586a9a
cmp edx, 0x212a
je 0x586a9a
cmp edx, 0x2000
je 0x586a9a
cmp edx, 0x1fee
je 0x586a9a
lea r8d, [rdi - 0xf75]
cmp r8d, 2
jb 0x586a9a
cmp edx, 0xb5c
je 0x586a9a
lea r8d, [rdi - 0xa59]
cmp r8d, 3
jb 0x586a9a
mov r8d, edi
and r8d, 0x1ffff8
cmp r8d, 0x958
je 0x586a9a
cmp edx, 0x9dc
je 0x586a9a
lea r8d, [rdi - 0x11a8]
cmp r8d, 0x1b
jb 0x585f9e
lea r8d, [rdi - 0x1161]
cmp r8d, 0x15
jb 0x585f9e
lea r8d, [rdi - 0xcd5]
cmp r8d, 2
jb 0x585f9e
lea r8d, [rdi - 0x653]
cmp r8d, 3
jb 0x585f9e
cmp edx, 0x330
je 0x585f9e
lea edx, [rdi - 0x32d]
cmp edx, 2
jb 0x585f9e
lea edx, [rdi - 0x323]
cmp edx, 6
jb 0x585f9e
lea edx, [rdi - 0x313]
cmp edx, 2
jb 0x585f9e
lea edx, [rdi - 0x300]
cmp edx, 5
jb 0x585f9e
lea edx, [rdi - 0x306]
cmp edx, 7
jb 0x585f9e
add edi, 0xffffcf67
cmp edi, 2
jae 0x585fa0
jmp 0x585f9e
movabs rdx, 0xa800202020202801
bt rdx, rcx
jae 0x585ffd
jmp 0x586a9a
movabs rdx, 0x4021004002108401
bt rdx, rcx
jae 0x58600c
jmp 0x586a9a
mov edx, 0x1555
bt edx, ecx
jae 0x58601b
jmp 0x586a9a
movabs r8, 0x48020000001005
bt r8, rdx
jae 0x58602c
jmp 0x585f9e
test bl, bl
je 0x586a64
lea rcx, [rsp + 0xc8]
movups xmmword [rcx + 0x20], xmm6
lea rax, [rsp + 0x82]
movups xmmword [rax], xmm6
movzx eax, word [rsp + 0x90]
mov word [rcx + 0x4e], ax
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rcx + 0x3e], xmm0
and qword [rsp + 0xa0], 0
and dword [rsp + 0xb0], 0
and word [rsp + 0xb4], 0
xor eax, eax
mov byte [rsp + 0xb8], al
and dword [rsp + 0xbc], 0
mov byte [rsp + 0xc0], al
and dword [rsp + 0xc4], 0
mov byte [rsp + 0xc8], al
and dword [rsp + 0xcc], 0
mov byte [rsp + 0xd0], al
and dword [rsp + 0xd4], 0
mov qword [rsp + 0xd8], r14
mov qword [rsp + 0xe0], rsi
mov byte [rsp + 0xf8], al
and dword [rsp + 0x100], 0
and word [rsp + 0x104], 0
mov dword [rsp + 0x120], 0x110000
mov byte [rsp + 0x124], al
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x88], rsi
mov ebx, 0x110000
lea rcx, [rsp + 0x80]
call fcn.00433914
mov r14d, eax
mov r10, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xa8]
mov edi, ebx
mov r8d, dword [rsp + 0x100]
mov rcx, qword [rsp + 0x108]
mov r9, qword [rsp + 0x118]
movzx edx, word [rsp + 0x104]
movzx r11d, dx
cmp r10, 1
jne 0x5865f5
test r8d, r8d
je 0x5865c4
cmp rax, r9
jb 0x5869ae
and qword [rsp + 0x118], 0
xor r9d, r9d
jmp 0x5865e7
cmp dx, 5
jae 0x587671
cmp rax, r11
jb 0x5869a6
test dx, dx
je 0x5865e5
and word [rsp + 0x104], 0
xor edx, edx
and qword [rsp + 0xa0], 0
xor r10d, r10d
jmp 0x58659e
cmp r10, 2
je 0x586964
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x78], rcx
mov r8, qword [rcx + 0x40]
test r8, r8
jne 0x586766
cmp qword [rcx + 0x28], 0
je 0x58675b
add rcx, 0x28
call fcn.00433914
mov rcx, qword [rsp + 0x78]
cmp eax, 0x110000
je 0x58675b
mov esi, eax
cmp byte [rcx + 0x48], 0
je 0x5866a5
cmp esi, 0x80
jb 0x586715
mov edi, esi
add edi, 0xffff5400
cmp edi, 0x2ba4
jb 0x5866bd
mov ecx, esi
call fcn.00583f5e
test rax, rax
jne 0x58667d
mov ecx, esi
call fcn.00583e94
test rax, rax
je 0x586715
mov rdi, rax
mov rbx, rdx
shl rbx, 2
xor esi, esi
cmp rbx, rsi
je 0x586721
mov edx, dword [rdi + rsi]
lea rcx, [rsp + 0x78]
call fcn.0049ef23
add rsi, 4
jmp 0x586689
cmp esi, 0x80
jb 0x586715
mov edi, esi
add edi, 0xffff5400
cmp edi, 0x2ba4
jae 0x58672b
mov eax, edi
xor edx, edx
mov cx, 0x24c
div cx
mov esi, edx
or eax, 0x1100
mov ebp, 0xffff
and eax, ebp
lea rbx, [rsp + 0x78]
mov rcx, rbx
mov edx, eax
call fcn.0049ef23
mov eax, esi
xor edx, edx
mov si, 0x1c
div si
lea edx, [rax + 0x1161]
and edx, ebp
mov rcx, rbx
call fcn.0049ef23
mov eax, edi
xor edx, edx
div si
test dx, dx
je 0x586721
add edx, 0x11a7
movzx esi, dx
lea rcx, [rsp + 0x78]
mov edx, esi
call fcn.0049ef23
mov rcx, qword [rsp + 0x78]
jmp 0x58660c
mov ecx, esi
call fcn.00583e94
test rax, rax
je 0x586715
mov rdi, rax
mov rbx, rdx
shl rbx, 2
xor esi, esi
cmp rbx, rsi
je 0x586721
mov edx, dword [rdi + rsi]
lea rcx, [rsp + 0x78]
call fcn.0049ef23
add rsi, 4
jmp 0x586743
cmp dword [rcx], 0
je 0x58676a
mov rax, qword [rcx + 0x18]
jmp 0x58676e
mov edx, dword [rcx]
jmp 0x586796
movzx eax, word [rcx + 4]
test rax, rax
je 0x586915
call fcn.0049eadb
mov rcx, qword [rsp + 0x78]
mov edx, dword [rcx]
test edx, edx
je 0x58678d
mov r8, qword [rcx + 0x18]
jmp 0x586792
movzx r8d, word [rcx + 4]
mov qword [rcx + 0x40], r8
mov r9, qword [rcx + 0x38]
test edx, edx
je 0x5867a8
mov r10, qword [rcx + 8]
mov rax, qword [rcx + 0x18]
jmp 0x5867ba
movzx eax, word [rcx + 4]
cmp rax, 5
jae 0x587671
lea r10, [rcx + 8]
cmp rax, r9
jbe 0x587671
lea rax, [rcx + 0x38]
mov edi, dword [r10 + r9*8 + 4]
inc r9
cmp r9, r8
jne 0x5867de
test edx, edx
je 0x5867e6
mov rdx, qword [rcx + 0x18]
jmp 0x5867ea
mov qword [rax], r9
jmp 0x586874
movzx edx, word [rcx + 4]
lea r9, [rcx + 8]
sub rdx, r8
xor r8d, r8d
cmp rdx, r8
je 0x586852
mov r10, qword [rcx + 0x40]
add r10, r8
cmp dword [rcx], 0
je 0x586817
mov r11, qword [rcx + 0x18]
cmp r11, r10
jbe 0x587671
mov rsi, qword [r9]
jmp 0x586832
movzx r11d, word [rcx + 4]
cmp r11, 5
jae 0x587671
mov rsi, r9
cmp r10, r11
jae 0x587671
cmp r11, r8
jbe 0x587671
mov r11b, byte [rsi + r10*8]
mov r10d, dword [rsi + r10*8 + 4]
mov byte [rsi + r8*8], r11b
mov dword [rsi + r8*8 + 4], r10d
inc r8
jmp 0x5867f4
cmp dword [rcx], 0
je 0x586863
cmp qword [rcx + 0x18], rdx
jb 0x586871
mov qword [rcx + 0x18], rdx
jmp 0x586871
movzx r8d, word [rcx + 4]
cmp rdx, r8
jae 0x586871
mov word [rcx + 4], dx
movups xmmword [rax], xmm6
mov ecx, edi
call fcn.00583e3a
mov ebx, eax
mov esi, dword [rsp + 0x120]
cmp esi, 0x110000
jne 0x5868a0
test bl, bl
jne 0x5869e5
mov dword [rsp + 0x120], edi
jmp 0x5865ff
cmp byte [rsp + 0x124], 0
je 0x5868c5
cmp byte [rsp + 0x125], bl
jae 0x5868ea
mov ecx, esi
mov edx, edi
call fcn.00583fcf
cmp eax, 0x110000
je 0x5868f2
jmp 0x5868de
mov ecx, esi
mov edx, edi
call fcn.00583fcf
cmp eax, 0x110000
jne 0x5868de
test bl, bl
jne 0x5868f2
jmp 0x586a30
mov dword [rsp + 0x120], eax
jmp 0x5865ff
test bl, bl
je 0x586a0a
lea rcx, [rsp + 0x100]
mov edx, edi
call fcn.0049ef2b
mov byte [rsp + 0x124], 1
mov byte [rsp + 0x125], bl
jmp 0x5865ff
mov qword [rsp + 0xa0], 2
and qword [rsp + 0xa8], 0
mov ecx, dword [rsp + 0x120]
mov r10d, 2
mov edi, 0x110000
mov eax, 0
cmp ecx, 0x110000
je 0x58657e
mov dword [rsp + 0x120], 0x110000
mov ebx, 0x110000
mov edi, ecx
jmp 0x5869ea
test r8d, r8d
je 0x586979
cmp rax, r9
jb 0x586990
and qword [rsp + 0x118], 0
jmp 0x5869da
cmp dx, 5
jae 0x587671
lea rcx, [rsp + 0x108]
cmp rax, r11
jae 0x5869cc
mov ebx, edi
mov edi, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0xa0], 2
jmp 0x5869c2
lea rcx, [rsp + 0x108]
mov ebx, edi
mov edi, dword [rcx + rax*4]
inc rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], rax
jmp 0x5869ea
test dx, dx
je 0x5869da
and word [rsp + 0x104], 0
mov dword [rsp + 0x120], 0x110000
mov ebx, 0x110000
cmp r14d, 0x110000
je 0x586a3d
cmp edi, 0x110000
je 0x586a80
cmp edi, r14d
je 0x58655c
jmp 0x586a80
mov dword [rsp + 0x120], edi
mov byte [rsp + 0x124], 0
mov qword [rsp + 0xa0], 1
and qword [rsp + 0xa8], 0
jmp 0x586a37
mov dword [rsp + 0x120], edi
mov ebx, edi
mov edi, esi
jmp 0x5869ea
lea rcx, [rsp + 0xb0]
call fcn.0049efab
lea rcx, [rsp + 0x100]
call fcn.0049efc1
cmp edi, 0x110000
mov r14, qword [rsp + 0x68]
jne 0x586a9a
xor ebx, ebx
mov rcx, r14
mov rdx, qword [rsp + 0x28]
xor r8d, r8d
lea r9, [rsp + 0x38]
call fcn.0049e9b9
jmp 0x5854cd
lea rcx, [rsp + 0xb0]
call fcn.0049efab
lea rcx, [rsp + 0x100]
call fcn.0049efc1
mov byte [rsp + 0x3d], 1
xor ebx, ebx
jmp 0x5854cd
mov qword [rsp + 0x178], r12
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rdx
xor r8d, r8d
call fcn.0049e8c1
lea rsi, [rsp + 0xa0]
and qword [rsi], 0
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rdx
and qword [rsi + 0x20], 0
mov qword [rsi + 0x28], rdx
mov qword [rsi + 0x30], 1
movabs rax, 0x2e0000002e
mov qword [rsi + 0x38], rax
mov word [rsi + 0x40], 1
lea rbx, [rsp + 0x198]
mov r13d, 1
mov r12d, 0x260fb
mov edi, 0x62f8
mov rcx, rsi
call fcn.00563016
test rax, rax
je 0x586cba
test byte [rsp + 0x178], 1
je 0x586b1b
mov r15, rax
mov r14, rdx
add r14, rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], r14
lea rcx, [rsp + 0x80]
call fcn.00433914
cmp eax, 0x110000
je 0x586b1b
mov ecx, eax
call fcn.00583ddc
test al, al
je 0x586c0b
movzx eax, al
cmp eax, 0x11
je 0x586c0b
cmp eax, 9
jne 0x586cb5
lea rcx, [rsp + 0x80]
call fcn.00433914
cmp eax, 0x110000
je 0x586bb8
mov ecx, eax
call fcn.00583ddc
cmp al, 0xe
ja 0x586cb5
movzx eax, al
bt rdi, rax
jb 0x586b87
jmp 0x586cb5
mov qword [rsp + 0x198], r15
mov qword [rsp + 0x1a0], r14
mov rcx, rbx
call fcn.0049e8e2
cmp eax, 0x110000
je 0x586b1b
mov ebp, eax
mov ecx, eax
call fcn.00583ddc
cmp al, 0xd
je 0x586bc8
mov ecx, ebp
call fcn.00583ddc
cmp al, 9
je 0x586b1b
mov ecx, ebp
call fcn.00583ddc
cmp al, 5
je 0x586b1b
jmp 0x586cb5
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x198], xmm0
xor ecx, ecx
xor edi, edi
mov esi, ecx
mov rcx, rbx
call fcn.00433914
cmp eax, 0x110000
je 0x586c58
mov ecx, eax
call fcn.00583ddc
mov cl, 1
cmp al, 5
je 0x586c1f
cmp al, 1
movzx edi, dil
cmove edi, r13d
cmp al, 0x11
ja 0x586cb5
movzx eax, al
bt r12, rax
mov ecx, esi
jb 0x586c1f
jmp 0x586cb5
mov qword [rsp + 0x198], r15
mov qword [rsp + 0x1a0], r14
mov rcx, rbx
call fcn.0049e8e2
cmp eax, 0x110000
je 0x586cb5
mov ebp, eax
mov ecx, eax
call fcn.00583ddc
cmp al, 0xd
je 0x586c68
mov ecx, ebp
call fcn.00583ddc
cmp al, 0x11
ja 0x586cb5
movzx eax, al
mov ecx, 0x20023
bt rcx, rax
jae 0x586cb5
test dil, 1
je 0x586ca8
test sil, sil
jne 0x586cb5
lea rsi, [rsp + 0xa0]
jmp 0x586b16
mov byte [rsp + 0x3a], 1
mov al, byte [rsp + 0x38]
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 0x3f]
shl eax, 0x10
movzx esi, word [rsp + 0x3d]
or esi, eax
shl rsi, 0x20
mov eax, dword [rsp + 0x39]
mov ecx, dword [rsp + 0x40]
mov dword [rsp + 0x70], ecx
mov r8, qword [rsp + 0x168]
test r8, r8
je 0x586d0a
shl r8, 4
mov rcx, qword [rsp + 0x160]
mov edx, 8
mov rbx, rax
call fcn.00402efa
mov rax, rbx
or rax, rsi
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.00433a18
lea r8, [rsp + 0x50]
movups xmm0, xmmword [r8]
lea rbx, [rsp + 0xa0]
mov rcx, qword [r8 + 0x10]
mov qword [r8], rax
mov qword [r8 + 8], rdx
and qword [r8 + 0x10], 0
movaps xmmword [rbx], xmm0
mov qword [rbx + 0x10], rcx
mov rcx, qword [rsp + 0x1f8]
mov rdx, qword [rsp + 0x200]
call fcn.00433bdd
mov rax, qword [rbx + 0x10]
lea rcx, [rsp + 0x1f8]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rbx]
movups xmmword [rcx], xmm0
and qword [rbx], 0
mov rcx, qword [rsp + 0x1f8]
mov rax, qword [rsp + 0x208]
mov qword [rbx + 8], rax
mov qword [rsp + 0x150], rcx
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rax
and qword [rbx + 0x20], 0
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], 1
movabs rax, 0x2e0000002e
mov qword [rbx + 0x38], rax
mov word [rbx + 0x40], 1
mov dil, 1
lea r12, [0x00702bdc]
lea rbp, [0x00702be0]
lea r13, [rsp + 0x198]
movabs r15, 0x8080808080808080
mov rcx, rbx
call fcn.00563016
test rax, rax
je 0x5871e2
mov r14, rdx
mov rsi, rax
test dil, 1
jne 0x586e0b
lea rcx, [rsp + 0x50]
call fcn.0049e88f
mov rdi, rsi
cmp r14, 8
jb 0x586e51
lea rcx, [rsi + 7]
and rcx, 0xfffffffffffffff8
mov rax, rcx
sub rax, rsi
cmp rax, r14
ja 0x586e51
test qword [rdi], r15
jne 0x586e6b
cmp rcx, rsi
mov ecx, 8
cmove rax, rcx
lea rcx, [r14 - 8]
cmp rax, rcx
jae 0x587197
test qword [rdi + rax], r15
jne 0x586e6b
add rax, 8
jmp 0x586e3c
mov rcx, r14
mov rax, r14
sub rax, 1
jb 0x5871a1
cmp byte [rdi + rcx - 1], 0
mov rcx, rax
jns 0x586e57
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x188], rax
lea rcx, [rsp + 0x50]
mov rdx, r12
mov r8, rbp
call fcn.00433e6a
add rsi, r14
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x1a0], rsi
mov dword [rsp + 0x158], 0
xor esi, esi
mov edi, esi
mov rcx, r13
call fcn.00433914
cmp eax, 0x110000
je 0x586eee
mov esi, edi
inc esi
je 0x587154
inc edi
cmp eax, 0x80
jae 0x586eb7
lea rcx, [rsp + 0x50]
mov edx, eax
call fcn.00587dad
inc dword [rsp + 0x158]
jmp 0x586eb5
cmp dword [rsp + 0x158], 0
je 0x586f07
lea rcx, [rsp + 0x50]
mov edx, 0x2d
call fcn.00587dad
xor ebx, ebx
mov ebp, 0x48
mov r15d, pe_nt_image_headers64
mov eax, dword [rsp + 0x158]
mov ecx, eax
lea r12, [rsp + 0x160]
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x80], r15d
cmp ecx, edi
jae 0x5871bb
mov dword [rsp + 0x48], ebx
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x190]
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x1a8], rax
mov rcx, r13
call fcn.00433914
cmp eax, 0x110000
je 0x587671
mov r14d, eax
mov rax, qword [rsp + 0x1a8]
mov esi, dword [rax]
cmp r14d, esi
jb 0x586f6b
movups xmm0, xmmword [rsp + 0x198]
movups xmmword [rsp + 0x160], xmm0
mov rcx, r12
call fcn.00433914
cmp eax, 0x110000
je 0x586fc0
cmp r14d, eax
mov ecx, eax
cmovb ecx, r14d
cmp esi, eax
cmovbe r14d, ecx
jmp 0x586fa0
mov ebx, r14d
sub ebx, r15d
mov rax, qword [rsp + 0x28]
lea ecx, [rax + 1]
mov r8d, dword [rsp + 0x48]
mov eax, r8d
not eax
xor edx, edx
div ecx
cmp ebx, eax
movabs r15, 0x8080808080808080
ja 0x58713e
imul ebx, ecx
add ebx, r8d
mov dword [rsp + 0x80], r14d
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x1a0], rax
mov esi, dword [rsp + 0x80]
mov rcx, r13
call fcn.00433914
cmp eax, 0x110000
je 0x587122
cmp eax, esi
jae 0x58703f
inc ebx
je 0x58713e
cmp eax, esi
jne 0x587020
lea r15d, [rbp + 0x1a]
mov r12d, ebp
neg r12d
mov esi, 0x24
mov r14d, ebx
lea ecx, [r12 + rsi]
cmp esi, r15d
mov eax, 0x1a
cmovae ecx, eax
cmp esi, ebp
mov eax, 1
cmovbe ecx, eax
mov eax, r14d
sub eax, ecx
jb 0x5870ba
mov r8d, ecx
sub r8d, 0x24
je 0x587671
neg r8d
xor edx, edx
div r8d
mov r14d, eax
add edx, ecx
mov eax, 0x61
cmp edx, 0x1a
jb 0x5870a7
mov eax, 0x16
cmp edx, 0x24
jae 0x587671
add eax, edx
lea rcx, [rsp + 0x50]
mov edx, eax
call fcn.00587dad
add esi, 0x24
jmp 0x587055
mov edx, 0x61
cmp r14d, 0x1a
jb 0x5870d4
mov edx, 0x16
cmp r14d, 0x24
jae 0x587671
add edx, r14d
lea rcx, [rsp + 0x50]
call fcn.00587dad
mov rax, qword [rsp + 0x28]
lea r14d, [rax + 1]
cmp eax, dword [rsp + 0x158]
sete r8b
mov ecx, ebx
mov edx, r14d
call fcn.0049f998
mov ebp, eax
xor ebx, ebx
mov eax, r14d
mov qword [rsp + 0x28], rax
movabs r15, 0x8080808080808080
lea r12, [rsp + 0x160]
jmp 0x587019
inc ebx
mov r15d, dword [rsp + 0x80]
inc r15d
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x28]
jmp 0x586f2a
lea rbx, [rsp + 0xa0]
lea r12, [0x00702bdc]
lea rbp, [0x00702be0]
mov rax, qword [rsp + 0x60]
mov cl, 1
mov dword [rsp + 0x30], ecx
xor edi, edi
mov rcx, qword [rsp + 0x188]
cmp rax, rcx
jb 0x586de4
test rcx, rcx
je 0x58718b
cmp rax, rcx
jbe 0x58718b
mov rax, qword [rsp + 0x50]
cmp byte [rax + rcx], 0xbf
jle 0x587671
mov qword [rsp + 0x60], rcx
xor edi, edi
jmp 0x586de4
test qword [rdi + rcx], r15
jne 0x586e6b
add rsi, r14
lea rcx, [rsp + 0x50]
mov rdx, rdi
mov r8, rsi
call fcn.00433e6a
xor edi, edi
jmp 0x586de4
xor edi, edi
movabs r15, 0x8080808080808080
lea rbx, [rsp + 0xa0]
lea r12, [0x00702bdc]
lea rbp, [0x00702be0]
jmp 0x586de4
mov r8, qword [rsp + 0x98]
mov ebx, r8d
shr ebx, 8
mov ebp, r8d
shr ebp, 0x10
mov r15d, r8d
shr r15d, 0x18
mov r12, r8
shr r12, 0x20
mov r13, r8
shr r13, 0x28
mov rsi, r8
shr rsi, 0x30
cmp byte [rsp + 0x212], 0
je 0x587263
mov rcx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov qword [rsp + 0x28], rcx
mov rdx, rdi
mov r8d, 0x2e
call fcn.00475029
mov r14, rdi
test al, al
je 0x58726d
dec r14
je 0x5872da
test rdi, rdi
je 0x587671
mov rax, qword [rsp + 0x28]
cmp byte [rax + r14], 0xbf
jg 0x587272
jmp 0x587671
mov r9d, dword [rsp + 0x70]
jmp 0x58737b
test rdi, rdi
je 0x5872da
lea rdi, [rsp + 0xa0]
and qword [rdi], 0
mov qword [rdi + 8], r14
mov rax, qword [rsp + 0x28]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], r14
and qword [rdi + 0x20], 0
mov qword [rdi + 0x28], r14
mov qword [rdi + 0x30], 1
movabs rax, 0x2e0000002e
mov qword [rdi + 0x38], rax
mov word [rdi + 0x40], 1
mov rcx, rdi
call fcn.00563016
test rax, rax
je 0x5872c6
test rdx, rdx
jne 0x5872b4
test rax, rax
jne 0x5872dd
mov r8, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x70]
jmp 0x5872f8
xor r14d, r14d
mov r8, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x70]
and r9d, 0xff00ffff
or r9d, 0x10000
cmp r14, 0xfd
ja 0x58736d
mov dword [rsp + 0x70], r9d
lea rdi, [rsp + 0xa0]
and qword [rdi], 0
mov qword [rdi + 8], r14
mov rax, qword [rsp + 0x28]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], r14
and qword [rdi + 0x20], 0
mov qword [rdi + 0x28], r14
mov qword [rdi + 0x30], 1
movabs rax, 0x2e0000002e
mov qword [rdi + 0x38], rax
mov word [rdi + 0x40], 1
mov rcx, rdi
call fcn.00563016
test rax, rax
je 0x58735b
cmp rdx, 0x40
jb 0x587348
test rax, rax
mov r8, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x70]
je 0x58737b
and r9d, 0xffff00ff
or r9d, 0x100
mov edi, dword [rsp + 0x30]
jmp 0x585241
lea rdi, [rsp + 0xa0]
mov rcx, rdi
mov rdx, r14
mov r8, rsi
call fcn.005876ff
mov rcx, rdi
call fcn.00587734
test rax, rax
je 0x587671
test rdx, rdx
mov edi, dword [rsp + 0x30]
je 0x587507
xor ecx, ecx
cmp rdx, rcx
je 0x5873e1
mov r8b, byte [rax + rcx]
add r8b, 0xd0
inc rcx
cmp r8b, 0xa
jb 0x5873ba
mov rcx, rax
call fcn.00587855
cmp eax, 2
je 0x587529
lea rdi, [rsp + 0x198]
mov rcx, rdi
mov rdx, r14
mov r8, rsi
call fcn.005876ff
mov rcx, rdi
call fcn.0058422c
test rax, rax
je 0x587550
mov rsi, rax
mov rdi, rdx
call fcn.0058433f
mov r15, rax
mov qword [rax], rsi
mov qword [rax + 8], rdi
lea rax, [rsp + 0x1e0]
mov qword [rax], r15
mov qword [rax + 8], 4
mov qword [rax + 0x10], 1
lea r12, [rsp + 0xa0]
lea rsi, [rsp + 0x198]
mov ecx, 9
mov rdi, r12
rep movsq qword [rdi], qword [rsi]
mov ebx, 1
mov ebp, 0x18
mov rcx, r12
call fcn.0058422c
test rax, rax
je 0x5874a9
mov rsi, rax
mov rdi, rdx
cmp rbx, qword [rsp + 0x1e8]
jne 0x58748f
lea rcx, [rsp + 0x1e0]
call fcn.00584366
mov r15, qword [rsp + 0x1e0]
mov qword [r15 + rbp - 8], rsi
mov qword [r15 + rbp], rdi
inc rbx
mov qword [rsp + 0x1f0], rbx
add rbp, 0x10
jmp 0x58745d
mov rsi, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x1e8]
test rbx, rbx
je 0x587559
lea r15, [rbx - 1]
mov rax, r15
shl rax, 4
mov rcx, qword [rsi + rax]
mov rdx, qword [rsi + rax + 8]
lea r8, [0x00799ab8]
xor r9d, r9d
call fcn.00587cbc
test al, al
cmovne rbx, r15
cmp rbx, 4
jbe 0x587559
mov rcx, rsi
mov rdx, rdi
call fcn.005645ea
mov al, 3
mov edi, dword [rsp + 0x30]
jmp 0x5853e5
lea rcx, [rsp + 0xa0]
call fcn.00587734
test rax, rax
je 0x587529
test rdx, rdx
jne 0x5873b8
xor edx, edx
jmp 0x5873d0
shl r13, 8
movzx eax, dil
or rax, r13
mov rcx, qword [rsp + 0x180]
mov byte [rcx], 0
mov qword [rcx + 8], r14
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rsi
jmp 0x585406
mov esi, 8
xor ebx, ebx
xor edi, edi
lea rax, [rsp + 0x198]
mov qword [rax], 4
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
shl rbx, 4
lea rax, [rsi + rbx]
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0xb8], rax
lea r12, [rsi + 0x10]
mov r15d, 4
xor edi, edi
test rbx, rbx
je 0x58760b
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
call fcn.00587855
cmp eax, 1
jne 0x587675
mov ebp, edx
cmp rdi, qword [rsp + 0x1a0]
jne 0x5875e6
lea rcx, [rsp + 0x198]
mov rdx, rdi
call fcn.0057ad59
mov r15, qword [rsp + 0x198]
mov rdi, qword [rsp + 0x1a8]
add rsi, 0x10
mov dword [r15 + rdi*4], ebp
mov rdi, qword [rsp + 0x1a8]
inc rdi
mov qword [rsp + 0x1a8], rdi
add rbx, 0xfffffffffffffff0
add r12, 0x10
jmp 0x5875a0
lea rcx, [rsp + 0xa0]
mov rax, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
call fcn.00587e98
test rdi, rdi
je 0x587671
lea rcx, [rdi - 1]
mov rax, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a0]
mov esi, dword [rax + rdi*4 - 4]
shl ecx, 3
mov r8d, 0xffffffff
shr r8d, cl
cmp esi, r8d
ja 0x587696
lea r8, [rdi*4 - 4]
xor ecx, ecx
mov edi, dword [rsp + 0x30]
cmp r8, rcx
je 0x5876a9
cmp dword [rax + rcx], 0xff
lea rcx, [rcx + 4]
jbe 0x58765d
jmp 0x58769a
ud2
lea rcx, [rsp + 0xa0]
mov qword [rcx + 0x10], r12
call fcn.00587e98
mov rax, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x1a0]
mov edi, dword [rsp + 0x30]
mov rcx, rax
call fcn.004aee56
mov al, 3
jmp 0x5853e5
mov r9d, 0x18
xor r10d, r10d
cmp r8, r10
je 0x5876d1
mov r11d, dword [rax + r10]
mov ecx, r9d
and cl, 0x18
shl r11d, cl
add esi, r11d
add r10, 4
add r9d, 0xfffffff8
jmp 0x5876b2
bswap esi
mov edi, esi
shr edi, 8
mov rcx, rax
call fcn.004aee56
mov rax, qword [rsp + 0x180]
mov byte [rax], 1
mov byte [rax + 1], sil
shr esi, 0x18
mov byte [rax + 4], sil
mov word [rax + 2], di
jmp 0x5853c9
mov edx, 0x45ffec98
cdq
inc dword [rbp - 0x67]
in al, dx
jmp [rdi]