Function at 0x58a2a4
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, 0xc8
mov ebp, edx
mov r14, rcx
mov eax, 0xfffffffe
test r14, r14
je 0x58c117
cmp qword [r14 + 0x30], 0
je 0x58c117
cmp qword [r14 + 0x38], 0
je 0x58c117
mov r8, qword [r14 + 0x28]
test r8, r8
je 0x58c117
cmp qword [r8], r14
jne 0x58c117
mov ecx, dword [r8 + 8]
lea edx, [rcx - 0x3f34]
cmp edx, 0x1f
ja 0x58c117
mov rdx, qword [r14 + 0x10]
test rdx, rdx
je 0x58c117
mov r12, qword [r14]
test r12, r12
je 0x58bd84
mov qword [rsp + 0x70], rdx
lea r10, [r8 + 8]
cmp ecx, 0x3f3f
jne 0x589a9b
mov dword [r10], 0x3f40
mov ecx, 0x3f40
mov eax, dword [r14 + 8]
mov r11d, dword [r14 + 0x18]
mov ebx, dword [r8 + 0x48]
mov r13d, dword [r8 + 0x4c]
lea rdx, [r8 + 0x20]
mov qword [rsp + 0x80], rdx
mov rdx, rbp
mov qword [rsp + 0x88], rdx
lea edx, [rbp - 5]
mov dword [rsp + 0x98], edx
lea rdx, [r8 + 0x70]
mov qword [rsp + 0xb8], rdx
lea rdx, [r8 + 0x74]
mov qword [rsp + 0xc0], rdx
lea rdx, [r8 + 0x550]
mov qword [rsp + 0xb0], rdx
lea r9, [r8 + 0x88]
lea rdx, [r8 + 0x90]
mov qword [rsp + 0xa8], rdx
lea rdx, [r8 + 0x310]
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x9c], eax
mov esi, eax
mov dword [rsp + 0x6c], r11d
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x78], r10
jmp 0x58a759
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
mov ecx, dword [r10]
jmp 0x58a759
test byte [r8 + 0x19], 2
je 0x589ba0
test byte [r8 + 0x10], 4
je 0x589ba0
mov r15, qword [rsp + 0x80]
mov ecx, dword [r15]
mov rdx, r12
mov qword [rsp + 0x58], r12
mov r8d, ebp
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r11d, esi
mov rsi, qword [rsp + 0x30]
mov dword [r15], eax
test bl, bl
jne 0x58be82
mov esi, esi
sub rsi, rbp
mov qword [rsp + 0x30], rsi
add r12, rbp
mov rbx, qword [rsp + 0x60]
mov dword [r10], 0x3f3c
mov eax, dword [r8 + 0x18]
test ah, 2
jne 0x589bd2
mov rdi, rbx
jmp 0x589c8d
cmp r13d, 0xf
ja 0x589c57
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bf10
lea ebp, [rsi - 1]
lea rdx, [r12 + 1]
mov rdi, rbx
movzx ebx, byte [r12]
mov ecx, r13d
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 8]
cmp ecx, 0x10
jae 0x589c65
test ebp, ebp
je 0x58bee8
lea ebp, [rsi - 2]
lea rdx, [r12 + 2]
movzx ebx, byte [r12 + 1]
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 0x10]
cmp r13d, 0xfffffff0
jb 0x589c65
test ebp, ebp
je 0x58bee8
add esi, 0xfffffffd
movzx edx, byte [r12 + 2]
add r12, 3
shl edx, cl
add edx, ebx
add r13d, 0x18
mov ebx, edx
test byte [r8 + 0x10], 4
jne 0x589c74
jmp 0x589c83
mov rsi, qword [rsp + 0x30]
test byte [r8 + 0x10], 4
jne 0x589c74
jmp 0x589c83
mov r12, rdx
mov esi, ebp
mov r13d, ecx
test byte [r8 + 0x10], 4
je 0x589c83
mov rcx, qword [rsp + 0x80]
movzx ecx, word [rcx]
cmp ebx, ecx
jne 0x589ce0
mov qword [rsp + 0x30], rsi
xor edi, edi
xor r13d, r13d
mov rbp, r10
mov ebx, r11d
mov rcx, qword [r8 + 0x28]
test rcx, rcx
je 0x589cac
shr eax, 9
and eax, 1
mov dword [rcx + 0x3c], eax
mov dword [rcx + 0x40], 1
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.00590b70
mov rcx, qword [rsp + 0x80]
mov dword [rcx], eax
mov dword [r14 + 0x4c], eax
mov r10, rbp
mov dword [r10], 0x3f3f
mov r11d, ebx
mov rsi, qword [rsp + 0x30]
mov rbx, rdi
jmp 0x589b42
lea rax, [0x0083b71f]
jmp 0x58a707
mov rax, qword [r15 + 0x88]
mov qword [r15 + 0x68], rax
mov dword [r15 + 0x74], 6
mov eax, dword [r15 + 0x7c]
mov r8d, dword [r15 + 0x80]
lea rdx, [r15 + rax*2 + 0x90]
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x20], rax
mov ecx, 2
mov r9, rbp
call fcn.0058d690
test eax, eax
je 0x589d62
mov dword [rsp + 0x3c], eax
lea rax, [0x0083b7fb]
mov qword [r14 + 0x20], rax
mov r10, qword [rsp + 0x78]
mov dword [r10], 0x3f51
mov r11d, ebx
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
jmp 0x589b42
mov dword [rsp + 0x3c], 0
cmp dword [rsp + 0x88], 6
mov r10, qword [rsp + 0x78]
mov dword [r10], 0x3f47
mov r11d, ebx
mov rbx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
jne case.0x58a786.16199
jmp 0x58c1be
call fcn.005906a0
mov r8, qword [rsp + 0x40]
mov dword [r8 + 0x20], eax
mov dword [r14 + 0x4c], eax
mov eax, dword [r8 + 0x10]
mov r11d, ebx
mov rbx, rdi
mov r9, qword [rsp + 0x50]
mov r10, rbp
test al, 4
je 0x589dd0
cmp dword [r8 + 0x18], 0
mov eax, ebx
bswap eax
cmovne eax, ebx
cmp eax, dword [r8 + 0x20]
jne 0x589ddc
xor ebx, ebx
xor r13d, r13d
mov dword [rsp + 0x6c], r11d
jmp 0x589e00
lea rax, [0x0083b861]
mov qword [r14 + 0x20], rax
mov dword [r10], 0x3f51
mov dword [rsp + 0x6c], r11d
mov rsi, qword [rsp + 0x30]
mov ecx, dword [r10]
jmp 0x58a759
mov dword [r10], 0x3f4f
cmp dword [r8 + 0x10], 0
je 0x58bed5
cmp dword [r8 + 0x18], 0
je 0x58bed5
cmp r13d, 0x1f
ja 0x589eed
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0x20
jae 0x589efd
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x10]
cmp ecx, 0x1f
ja 0x589efd
test edx, edx
je 0x58be54
lea edx, [rsi - 3]
lea rax, [r12 + 3]
movzx ebp, byte [r12 + 2]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x18]
cmp ecx, 0x1f
ja 0x589efd
test edx, edx
je 0x58be54
lea edx, [rsi - 4]
lea rax, [r12 + 4]
movzx ebp, byte [r12 + 3]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x20]
cmp r13d, 0xffffffe0
jb 0x589efd
test edx, edx
je 0x58be54
add esi, 0xfffffffb
movzx eax, byte [r12 + 4]
add r12, 5
shl eax, cl
add eax, ebx
add r13d, 0x28
mov ebx, eax
cmp ebx, dword [r8 + 0x24]
jne 0x589f0f
jmp 0x58becb
mov rsi, qword [rsp + 0x30]
cmp ebx, dword [r8 + 0x24]
jne 0x589f0f
jmp 0x58becb
mov r12, rax
mov esi, edx
mov r13d, ecx
cmp ebx, dword [r8 + 0x24]
je 0x58becb
lea rax, [0x0083b876]
jmp 0x58a707
mov dword [r10], 0x3f48
cmp r11d, 0x102
mov rsi, qword [rsp + 0x30]
jb 0x589fa6
cmp esi, 6
jb 0x589fa6
mov rdi, r10
mov rax, qword [rsp + 0x70]
mov qword [r14 + 0x10], rax
mov dword [r14 + 0x18], r11d
mov qword [r14], r12
mov dword [r14 + 8], esi
mov dword [r8 + 0x48], ebx
mov dword [r8 + 0x4c], r13d
mov rcx, r14
mov edx, dword [rsp + 0x6c]
call fcn.0058cba0
mov r8, qword [rsp + 0x40]
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x70], rax
mov r11d, dword [r14 + 0x18]
mov r12, qword [r14]
mov esi, dword [r14 + 8]
mov ebx, dword [r8 + 0x48]
mov r13d, dword [r8 + 0x4c]
cmp dword [r8 + 8], 0x3f3f
jne 0x589f96
mov dword [r8 + 0x1be4], 0xffffffff
mov r9, qword [rsp + 0x50]
mov r10, rdi
mov ecx, dword [r10]
jmp 0x58a759
mov rax, rbx
mov dword [rsp + 0x48], r11d
mov dword [r8 + 0x1be4], 0
mov r11, qword [r8 + 0x60]
mov cl, byte [r8 + 0x70]
mov ebp, 1
shl ebp, cl
dec ebp
mov ecx, ebp
and ecx, eax
jmp 0x589fef
dec esi
movzx eax, byte [r12]
inc r12
mov ecx, r13d
shl eax, cl
mov rdx, rbx
add edx, eax
add r13d, 8
mov ecx, ebp
mov rbx, rdx
and ecx, edx
mov dl, byte [r11 + rcx*4 + 1]
movzx eax, dl
cmp r13d, eax
jae 0x58a005
test esi, esi
jne 0x589fd0
jmp 0x58bddc
mov qword [rsp + 0x30], rsi
movzx r9d, word [r11 + rcx*4 + 2]
movzx r8d, byte [r11 + rcx*4]
test r8d, r8d
je 0x58a0d4
mov ecx, r8d
and ecx, 0xf0
jne 0x58a0d4
mov rdi, r10
movzx r9d, r9w
add r8d, eax
mov r10d, 1
mov ecx, r8d
shl r10d, cl
dec r10d
mov rcx, rbx
mov ebp, ecx
and ebp, r10d
mov ecx, eax
shr ebp, cl
add ebp, r9d
movzx edx, byte [r11 + rbp*4 + 1]
mov ecx, edx
add ecx, eax
cmp ecx, r13d
jbe 0x58a0b0
mov rsi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
test esi, esi
je 0x58be69
dec esi
movzx edx, byte [r12]
inc r12
mov ecx, r13d
shl edx, cl
mov rcx, rbx
add ecx, edx
add r13d, 8
mov rbx, rcx
mov ebp, ecx
and ebp, r10d
mov ecx, eax
shr ebp, cl
add ebp, r9d
movzx edx, byte [r11 + rbp*4 + 1]
lea ecx, [rax + rdx]
cmp ecx, r13d
ja 0x58a06e
mov qword [rsp + 0x30], rsi
mov r10, rdi
movzx r9d, word [r11 + rbp*4 + 2]
mov r8b, byte [r11 + rbp*4]
mov ecx, eax
mov rbp, rbx
shr ebp, cl
sub r13d, eax
mov rbx, qword [rsp + 0x40]
mov dword [rbx + 0x1be4], eax
jmp 0x58a0de
xor eax, eax
mov rbp, rbx
mov rbx, qword [rsp + 0x40]
movzx ecx, dl
shr ebp, cl
sub r13d, ecx
add eax, ecx
mov dword [rbx + 0x1be4], eax
movzx eax, r9w
mov dword [rbx + 0x50], eax
test r8b, r8b
mov r11d, dword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
je 0x58a139
test r8b, 0x20
mov rbx, rbp
jne 0x58a155
test r8b, 0x40
jne 0x58a17a
movzx eax, r8b
and eax, 0xf
mov r8, qword [rsp + 0x40]
mov dword [r8 + 0x58], eax
mov dword [r8 + 8], 0x3f49
test eax, eax
jne 0x58ac1f
mov edx, dword [r8 + 0x50]
jmp 0x58a19e
mov dword [r10], 0x3f4d
mov rsi, qword [rsp + 0x30]
mov rbx, rbp
mov r8, qword [rsp + 0x40]
mov ecx, dword [r10]
jmp 0x58a759
mov r8, qword [rsp + 0x40]
mov dword [r8 + 0x1be4], 0xffffffff
mov dword [r8 + 8], 0x3f3f
mov rsi, qword [rsp + 0x30]
mov ecx, dword [r10]
jmp 0x58a759
lea rax, [0x0083b811]
mov qword [r14 + 0x20], rax
mov dword [r10], 0x3f51
mov rsi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
mov ecx, dword [r10]
jmp 0x58a759
mov dword [r8 + 0x1be8], edx
mov dword [r8 + 8], 0x3f4a
mov esi, r11d
mov r10, qword [r8 + 0x68]
mov cl, byte [r8 + 0x74]
mov edx, 1
shl edx, cl
dec edx
mov ecx, edx
mov r11, rbx
and ecx, ebx
mov bpl, byte [r10 + rcx*4 + 1]
movzx eax, bpl
cmp r13d, eax
jae 0x58a212
mov rbx, qword [rsp + 0x30]
test ebx, ebx
je 0x58bda5
dec ebx
movzx eax, byte [r12]
inc r12
mov ecx, r13d
shl eax, cl
mov rdi, r11
add edi, eax
add r13d, 8
mov ecx, edx
mov r11, rdi
and ecx, edi
mov bpl, byte [r10 + rcx*4 + 1]
movzx eax, bpl
cmp r13d, eax
jb 0x58a1db
jmp 0x58a217
mov rbx, qword [rsp + 0x30]
mov dword [rsp + 0x48], esi
mov qword [rsp + 0x30], rbx
mov rsi, r12
movzx r8d, word [r10 + rcx*4 + 2]
mov dl, byte [r10 + rcx*4]
test dl, 0xf0
je 0x58a245
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi + 0x1be4]
mov rbx, r11
jmp 0x58a2e2
movzx r8d, r8w
movzx ecx, dl
add ecx, eax
mov r9d, 1
shl r9d, cl
dec r9d
mov rbx, r11
mov edx, ebx
and edx, r9d
mov ecx, eax
shr edx, cl
add edx, r8d
movzx ebp, byte [r10 + rdx*4 + 1]
mov ecx, ebp
add ecx, eax
cmp ecx, r13d
jbe 0x58a2c0
mov rbx, qword [rsp + 0x30]
test ebx, ebx
je 0x58be2e
dec ebx
movzx edx, byte [rsi]
inc rsi
mov ecx, r13d
shl edx, cl
mov rcx, r11
add ecx, edx
add r13d, 8
mov r11, rcx
mov edx, ecx
and edx, r9d
mov ecx, eax
shr edx, cl
add edx, r8d
movzx ebp, byte [r10 + rdx*4 + 1]
lea ecx, [rax + rbp]
cmp ecx, r13d
ja 0x58a27d
mov qword [rsp + 0x30], rbx
mov rbx, r11
movzx r8d, word [r10 + rdx*4 + 2]
mov dl, byte [r10 + rdx*4]
mov ecx, eax
shr ebx, cl
sub r13d, eax
mov rdi, qword [rsp + 0x40]
add eax, dword [rdi + 0x1be4]
mov dword [rdi + 0x1be4], eax
mov r9, qword [rsp + 0x50]
movzx ecx, bpl
shr ebx, cl
sub r13d, ecx
add eax, ecx
mov dword [rdi + 0x1be4], eax
test dl, 0x40
mov r10, qword [rsp + 0x78]
jne 0x58a32a
movzx eax, dl
movzx ecx, r8w
mov dword [rdi + 0x54], ecx
and eax, 0xf
mov dword [rdi + 0x58], eax
mov dword [rdi + 8], 0x3f4b
mov r11d, dword [rsp + 0x48]
mov r8, rdi
mov r12, rsi
test eax, eax
jne 0x58a354
jmp 0x58a3a9
lea rax, [0x0083b82d]
mov qword [r14 + 0x20], rax
mov dword [r10], 0x3f51
mov r12, rsi
mov rsi, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x48]
mov r8, rdi
mov ecx, dword [r10]
jmp 0x58a759
cmp r13d, eax
jae 0x58a382
mov rbp, qword [rsp + 0x30]
test ebp, ebp
je 0x58bd94
dec ebp
movzx edx, byte [r12]
inc r12
mov ecx, r13d
shl edx, cl
add ebx, edx
add r13d, 8
cmp r13d, eax
jb 0x58a35e
jmp 0x58a387
mov rbp, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov edx, 1
mov ecx, eax
shl edx, cl
dec edx
and edx, ebx
add dword [r8 + 0x54], edx
shr ebx, cl
sub r13d, eax
add dword [r8 + 0x1be4], eax
mov dword [r10], 0x3f4c
test r11d, r11d
je 0x58be5c
mov eax, dword [rsp + 0x6c]
sub eax, r11d
mov ecx, dword [r8 + 0x54]
cmp ecx, eax
jbe 0x58a3eb
sub ecx, eax
cmp ecx, dword [r8 + 0x38]
mov rsi, qword [rsp + 0x30]
jbe 0x58a40a
cmp dword [r8 + 0x1be0], 0
je 0x58a40a
lea rax, [0x0083b843]
jmp 0x58a707
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], r12
mov rbp, qword [rsp + 0x70]
sub rbp, rcx
mov ecx, dword [r8 + 0x50]
mov eax, ecx
mov rsi, qword [rsp + 0x30]
jmp 0x58a439
mov edx, dword [r8 + 0x3c]
mov eax, ecx
sub eax, edx
jbe 0x58a41c
mov edx, dword [r8 + 0x34]
sub edx, eax
jmp 0x58a420
sub edx, ecx
mov eax, ecx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], r12
mov ebp, edx
add rbp, qword [r8 + 0x40]
mov ecx, dword [r8 + 0x50]
cmp eax, ecx
cmova eax, ecx
mov r15, r9
cmp eax, r11d
mov edx, r11d
mov r9d, eax
cmova r9d, edx
sub ecx, r9d
mov dword [r8 + 0x50], ecx
lea r8d, [r9 - 1]
lea rbx, [r8 + 1]
cmp rbx, 0x20
jae 0x58a471
mov r11d, edx
mov rdx, qword [rsp + 0x70]
mov eax, r9d
mov rcx, rbp
jmp 0x58a507
mov rdi, r10
cmp eax, edx
mov r11d, edx
cmova eax, edx
dec eax
lea rcx, [rbp + rax + 1]
mov rsi, qword [rsp + 0x70]
cmp rsi, rcx
jae 0x58a4aa
lea rax, [rsi + rax + 1]
cmp rbp, rax
jae 0x58a4aa
mov rdx, rsi
mov eax, r9d
mov rcx, rbp
mov r10, rdi
mov rsi, qword [rsp + 0x30]
jmp 0x58a507
mov dword [rsp + 0x48], r11d
mov r10d, r9d
and r10d, 0x1f
sub rbx, r10
lea rdx, [rsi + rbx]
mov eax, r9d
sub eax, ebx
lea rcx, [rbp + rbx]
add rbp, 0x10
lea rsi, [rsi + 0x10]
movdqu xmm0, xmmword [rbp - 0x10]
movdqu xmm1, xmmword [rbp]
movdqu xmmword [rsi - 0x10], xmm0
movdqu xmmword [rsi], xmm1
add rbp, 0x20
add rsi, 0x20
add rbx, 0xffffffffffffffe0
jne 0x58a4cf
test r10d, r10d
mov r10, rdi
mov r11d, dword [rsp + 0x48]
mov rsi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x50]
je 0x58a574
mov rdi, r10
lea ebp, [rax - 1]
mov ebx, eax
and ebx, 7
je 0x58a529
neg ebx
movzx r10d, byte [rcx]
inc rcx
mov byte [rdx], r10b
inc rdx
dec eax
inc ebx
jne 0x58a516
cmp ebp, 7
mov r10, rdi
jb 0x58a574
movzx ebx, byte [rcx]
mov byte [rdx], bl
movzx ebx, byte [rcx + 1]
mov byte [rdx + 1], bl
movzx ebx, byte [rcx + 2]
mov byte [rdx + 2], bl
movzx ebx, byte [rcx + 3]
mov byte [rdx + 3], bl
movzx ebx, byte [rcx + 4]
mov byte [rdx + 4], bl
movzx ebx, byte [rcx + 5]
mov byte [rdx + 5], bl
movzx ebx, byte [rcx + 6]
mov byte [rdx + 6], bl
movzx ebx, byte [rcx + 7]
mov byte [rdx + 7], bl
add rcx, 8
add rdx, 8
add eax, 0xfffffff8
jne 0x58a531
sub r11d, r9d
mov rax, qword [rsp + 0x70]
lea rax, [rax + r8 + 1]
mov qword [rsp + 0x70], rax
mov r8, qword [rsp + 0x40]
cmp dword [r8 + 0x50], 0
jne 0x58a599
mov dword [r10], 0x3f48
mov r12, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov r9, r15
mov ecx, dword [r10]
jmp 0x58a759
mov eax, ebx
and eax, 0xf
cmp eax, 8
jne 0x58a700
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x58], r12
mov r15d, r11d
mov rax, rbx
mov rbx, r10
mov rdi, rax
shr eax, 4
mov ecx, eax
and ecx, 0xf
lea edx, [rcx + 8]
mov ebp, dword [r8 + 0x30]
test ebp, ebp
jne 0x58a5eb
mov dword [r8 + 0x30], edx
mov ebp, edx
cmp edx, 0xf
ja 0x58a632
cmp edx, ebp
ja 0x58a632
mov eax, pe_nt_image_headers64
shl eax, cl
mov dword [r8 + 0x1c], eax
xor r13d, r13d
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.005906a0
mov r8, qword [rsp + 0x40]
mov dword [r8 + 0x20], eax
mov dword [r14 + 0x4c], eax
shr edi, 0xc
and edi, 2
xor edi, 0x3f3f
mov dword [r8 + 8], edi
mov r10, rbx
xor ebx, ebx
jmp 0x58a64e
add r13d, 0xfffffffc
lea rcx, [0x0083b6f2]
mov qword [r14 + 0x20], rcx
mov r10, rbx
mov dword [r10], 0x3f51
mov rbx, rax
mov r11d, r15d
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov ecx, dword [r10]
jmp 0x58a759
mov rsi, qword [rsp + 0x30]
mov dword [r8 + 0x18], ebx
cmp bl, 8
jne 0x58a700
test bh, 0xe0
je 0x58a688
lea rax, [0x0083b706]
jmp 0x58a707
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x58a69b
mov ecx, ebx
shr ecx, 8
and ecx, 1
mov dword [rax], ecx
test bh, 2
je 0x58a6e7
test byte [r8 + 0x10], 4
je 0x58a6e7
mov byte [rsp + 0x4c], bl
mov byte [rsp + 0x4d], bh
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx]
lea rdx, [rsp + 0x4c]
mov r8d, 2
mov rbp, rsi
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r11d, esi
mov rsi, rbp
mov dword [rbx], eax
mov dword [r10], 0x3f36
xor r13d, r13d
xor ebx, ebx
test esi, esi
jne 0x58a8d4
jmp 0x58bf10
lea rax, [0x0083b6d7]
mov qword [r14 + 0x20], rax
mov dword [r10], 0x3f51
mov ecx, dword [r10]
jmp 0x58a759
mov esi, ebp
mov r13d, ecx
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
jmp 0x58b3e3
mov qword [rsp + 0x60], r11
lea rax, [0x0083b7a0]
mov qword [r14 + 0x20], rax
mov r10, qword [rsp + 0x78]
mov dword [r10], 0x3f51
mov r11d, dword [rsp + 0x48]
mov rbx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x50]
mov ecx, dword [r10]
add ecx, 0xffffc0cc
cmp ecx, 0x1e
ja case.default.0x58a786
mov qword [rsp + 0x30], rsi
mov eax, 0xfffffffd
mov r15d, 1
lea rdx, [0x0058c1fc]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov eax, dword [r8 + 0x10]
test eax, eax
je 0x58b1f9
cmp r13d, 0xf
mov rsi, qword [rsp + 0x30]
ja 0x58b446
mov rdi, rbx
test esi, esi
je 0x58bef7
lea ebp, [rsi - 1]
lea rdx, [r12 + 1]
movzx ebx, byte [r12]
mov ecx, r13d
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 8]
cmp ecx, 0x10
jae 0x58b43e
mov rdi, rbx
test ebp, ebp
je 0x58c164
lea ebp, [rsi - 2]
lea rdx, [r12 + 2]
movzx ebx, byte [r12 + 1]
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 0x10]
cmp r13d, 0xfffffff0
jb 0x58b43e
test ebp, ebp
je 0x58bee8
add esi, 0xfffffffd
movzx edx, byte [r12 + 2]
add r12, 3
shl edx, cl
add edx, ebx
add r13d, 0x18
mov ebx, edx
test al, 2
jne 0x58b44a
jmp 0x58b4c2
cmp r13d, 0xf
ja 0x58a668
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0x10
jae 0x58b21a
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x10]
cmp r13d, 0xfffffff0
jb 0x58b21a
test edx, edx
je 0x58be54
add esi, 0xfffffffd
movzx eax, byte [r12 + 2]
add r12, 3
shl eax, cl
add eax, ebx
add r13d, 0x18
mov ebx, eax
mov dword [r8 + 0x18], ebx
cmp bl, 8
jne 0x58a700
jmp 0x58a67a
cmp r13d, 0x1f
mov rsi, qword [rsp + 0x30]
ja 0x58adab
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0x20
jae 0x58ada6
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x10]
cmp ecx, 0x1f
ja 0x58ada6
test edx, edx
je 0x58be54
lea edx, [rsi - 3]
lea rax, [r12 + 3]
movzx ebp, byte [r12 + 2]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x18]
cmp ecx, 0x1f
ja 0x58ada6
test edx, edx
je 0x58be54
lea edx, [rsi - 4]
lea rax, [r12 + 4]
movzx ebp, byte [r12 + 3]
shl ebp, cl
add ebx, ebp
cmp r13d, 0xffffffe0
jb 0x58ada6
add r13d, 0x20
test edx, edx
je 0x58bf0d
add esi, 0xfffffffb
movzx eax, byte [r12 + 4]
add r12, 5
mov ecx, r13d
shl eax, cl
add eax, ebx
mov ebx, eax
mov rax, qword [r8 + 0x28]
test rax, rax
jne 0x58adb4
jmp 0x58adb7
cmp r13d, 0xf
mov rsi, qword [rsp + 0x30]
jbe 0x58ae21
jmp 0x58ae8f
cmp r13d, 0x1f
ja 0x58afdc
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0x20
jae 0x58afd2
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x10]
cmp ecx, 0x1f
ja 0x58afd2
test edx, edx
je 0x58be54
lea edx, [rsi - 3]
lea rax, [r12 + 3]
movzx ebp, byte [r12 + 2]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x18]
cmp ecx, 0x1f
ja 0x58afd2
test edx, edx
je 0x58be54
lea edx, [rsi - 4]
lea rax, [r12 + 4]
movzx ebp, byte [r12 + 3]
shl ebp, cl
add ebx, ebp
cmp r13d, 0xffffffe0
jb 0x58afd2
add r13d, 0x20
test edx, edx
je 0x58bf0d
add esi, 0xfffffffb
mov qword [rsp + 0x30], rsi
movzx eax, byte [r12 + 4]
add r12, 5
mov ecx, r13d
shl eax, cl
add eax, ebx
mov ebx, eax
jmp 0x58afdc
mov ecx, r13d
and ecx, 7
shr ebx, cl
sub r13d, ecx
cmp r13d, 0x1f
ja 0x58afbe
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0x20
jae 0x58b112
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x10]
cmp ecx, 0x1f
ja 0x58b112
test edx, edx
je 0x58be54
lea edx, [rsi - 3]
lea rax, [r12 + 3]
movzx ebp, byte [r12 + 2]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x18]
cmp ecx, 0x1f
ja 0x58b112
test edx, edx
je 0x58be54
lea edx, [rsi - 4]
lea rax, [r12 + 4]
movzx ebp, byte [r12 + 3]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x20]
cmp r13d, 0xffffffe0
jb 0x58b112
test edx, edx
je 0x58be54
add esi, 0xfffffffb
movzx eax, byte [r12 + 4]
add r12, 5
shl eax, cl
add eax, ebx
add r13d, 0x28
mov ebx, eax
jmp 0x58b11a
cmp r13d, 0xd
ja 0x58afc8
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0xe
jae 0x58b234
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 0x10]
cmp ecx, 0xd
ja 0x58b234
test edx, edx
je 0x58be54
add esi, 0xfffffffd
movzx eax, byte [r12 + 2]
add r12, 3
shl eax, cl
add eax, ebx
add r13d, 0x18
mov ebx, eax
jmp 0x58b23c
mov eax, dword [r8 + 0x78]
mov ecx, dword [r8 + 0x84]
cmp ecx, eax
mov rsi, qword [rsp + 0x30]
jb 0x58b29d
jmp 0x58b303
mov dword [rsp + 0x48], r11d
mov ebp, dword [r8 + 0x84]
jmp 0x58b635
mov eax, dword [r8 + 0x58]
test eax, eax
je 0x58a133
cmp r13d, eax
jae 0x58b3ab
mov rbp, qword [rsp + 0x30]
test ebp, ebp
je 0x58bd94
dec ebp
movzx edx, byte [r12]
inc r12
mov ecx, r13d
shl edx, cl
add ebx, edx
add r13d, 8
cmp r13d, eax
jb 0x58ac2d
jmp 0x58b3b0
mov rsi, r12
mov eax, dword [r8 + 0x58]
mov r12, rsi
test eax, eax
jne 0x58a354
jmp 0x58a3a9
test r11d, r11d
je 0x58be5c
mov al, byte [r8 + 0x50]
mov rcx, qword [rsp + 0x70]
mov byte [rcx], al
inc rcx
mov qword [rsp + 0x70], rcx
dec r11d
mov dword [r8 + 8], 0x3f48
mov rsi, qword [rsp + 0x30]
mov ecx, dword [r10]
jmp 0x58a759
mov eax, dword [r8 + 0x10]
test eax, eax
je 0x589e00
cmp r13d, 0x1f
mov rsi, qword [rsp + 0x30]
ja 0x58b3e3
mov rdi, rbx
test esi, esi
je 0x58bef7
lea ebp, [rsi - 1]
lea rdx, [r12 + 1]
movzx ebx, byte [r12]
mov ecx, r13d
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 8]
cmp ecx, 0x20
jae 0x58b3db
mov rdi, rbx
test ebp, ebp
je 0x58c164
lea ebp, [rsi - 2]
lea rdx, [r12 + 2]
movzx ebx, byte [r12 + 1]
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 0x10]
cmp ecx, 0x1f
ja 0x58b3db
mov rdi, rbx
test ebp, ebp
je 0x58c164
lea ebp, [rsi - 3]
lea rdx, [r12 + 3]
mov qword [rsp + 0x58], r12
movzx ebx, byte [r12 + 2]
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 0x18]
cmp ecx, 0x1f
ja 0x58b3db
mov rdi, rbx
test ebp, ebp
je 0x58c1c6
lea ebp, [rsi - 4]
mov rsi, qword [rsp + 0x58]
lea r12, [rsi + 4]
movzx ebx, byte [rsi + 3]
shl ebx, cl
add edi, ebx
mov rbx, rdi
lea ecx, [r13 + 0x20]
cmp r13d, 0xffffffe0
jb 0x58a717
test ebp, ebp
je 0x58c1e4
mov rsi, qword [rsp + 0x30]
add esi, 0xfffffffb
mov r12, qword [rsp + 0x58]
movzx edx, byte [r12 + 4]
add r12, 5
shl edx, cl
add edx, ebx
add r13d, 0x28
mov ebx, edx
jmp 0x58a71c
mov r12, rax
mov esi, edx
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x58adb7
mov dword [rax + 4], ebx
test byte [r8 + 0x19], 2
je 0x58ae15
test byte [r8 + 0x10], 4
je 0x58ae15
mov byte [rsp + 0x4c], bl
mov byte [rsp + 0x4d], bh
mov eax, ebx
shr eax, 0x10
mov byte [rsp + 0x4e], al
shr ebx, 0x18
mov byte [rsp + 0x4f], bl
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx]
lea rdx, [rsp + 0x4c]
mov r8d, 4
mov rbp, rsi
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r11d, esi
mov rsi, rbp
mov dword [rbx], eax
mov dword [r10], 0x3f37
xor r13d, r13d
xor ebx, ebx
test esi, esi
je 0x58bf10
lea edx, [rsi - 1]
lea rax, [r12 + 1]
movzx ebp, byte [r12]
mov ecx, r13d
shl ebp, cl
add ebx, ebp
lea ecx, [r13 + 8]
cmp ecx, 0x10
jae 0x58ae8a
test edx, edx
je 0x58be54
lea edx, [rsi - 2]
lea rax, [r12 + 2]
movzx ebp, byte [r12 + 1]
shl ebp, cl
add ebx, ebp
cmp r13d, 0xfffffff0
jb 0x58ae8a
add r13d, 0x10
test edx, edx
je 0x58bf0d
add esi, 0xfffffffd
movzx eax, byte [r12 + 2]
add r12, 3
mov ecx, r13d
shl eax, cl
add eax, ebx
mov ebx, eax
jmp 0x58ae8f
mov r12, rax
mov esi, edx
mov qword [rsp + 0x30], rsi
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x58aeab
movzx ecx, bl
mov dword [rax + 8], ecx
mov ecx, ebx
shr ecx, 8
mov dword [rax + 0xc], ecx
test byte [r8 + 0x19], 2
je 0x58aef3
test byte [r8 + 0x10], 4
je 0x58aef3
mov byte [rsp + 0x4c], bl
mov byte [rsp + 0x4d], bh
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx]
lea rdx, [rsp + 0x4c]
mov r8d, 2
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r11d, esi
mov dword [rbx], eax
mov dword [r10], 0x3f38
xor ebx, ebx
xor r13d, r13d
mov eax, dword [r8 + 0x18]
test ah, 4
jne 0x58af22
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x58bb20
mov qword [rax + 0x10], 0
jmp 0x58bb20
cmp r13d, 0xf
mov rsi, qword [rsp + 0x30]
ja 0x58afb7
test esi, esi
je 0x58bf10
mov rbp, r10
lea edi, [rsi - 1]
lea r8, [r12 + 1]
mov r10, r12
movzx edx, byte [r12]
mov ecx, r13d
shl edx, cl
add edx, ebx
lea ecx, [r13 + 8]
cmp ecx, 0x10
jae 0x58b20d
mov rbx, r9
mov r9, rbp
test edi, edi
je 0x58c17d
lea edi, [rsi - 2]
mov rsi, r10
lea r12, [rsi + 2]
movzx esi, byte [rsi + 1]
shl esi, cl
add edx, esi
cmp r13d, 0xfffffff0
jb 0x58bab1
add r13d, 0x10
test edi, edi
je 0x58c1a4
mov rsi, qword [rsp + 0x30]
add esi, 0xfffffffd
mov r12, r10
movzx ebp, byte [r12 + 2]
add r12, 3
mov ecx, r13d
shl ebp, cl
add edx, ebp
jmp 0x58bab3
mov edx, ebx
jmp 0x58babe
mov rsi, qword [rsp + 0x30]
jmp 0x58b11a
mov rsi, qword [rsp + 0x30]
jmp 0x58b23c
mov r12, rax
mov eax, edx
mov qword [rsp + 0x30], rax
bswap ebx
mov rax, qword [rsp + 0x80]
mov dword [rax], ebx
mov dword [r14 + 0x4c], ebx
mov dword [r10], 0x3f3e
xor ebx, ebx
xor r13d, r13d
cmp dword [r8 + 0x14], 0
je 0x58bea0
xor ecx, ecx
xor edx, edx
xor r8d, r8d
mov esi, r11d
mov rbp, r10
call fcn.005906a0
mov r8, qword [rsp + 0x40]
mov r10, rbp
mov r9, qword [rsp + 0x50]
mov r11d, esi
mov rcx, qword [rsp + 0x80]
mov dword [rcx], eax
mov dword [r14 + 0x4c], eax
mov dword [r10], 0x3f3f
cmp dword [rsp + 0x98], 2
jb 0x58be24
cmp dword [r8 + 0xc], 0
je 0x58b06e
mov ecx, r13d
and ecx, 7
shr ebx, cl
sub r13d, ecx
mov dword [r10], 0x3f4e
mov rsi, qword [rsp + 0x30]
mov ecx, dword [r10]
jmp 0x58a759
cmp r13d, 2
mov rsi, qword [rsp + 0x30]
ja 0x58b09b
test esi, esi
je 0x58bd94
lea eax, [r13 + 8]
movzx edx, byte [r12]
mov ecx, r13d
shl edx, cl
add edx, ebx
inc r12
dec esi
mov ebx, edx
mov r13d, eax
mov eax, ebx
and eax, 1
mov dword [r8 + 0xc], eax
mov eax, ebx
shr al, 1
and al, 3
cmp al, 3
je 0x58b382
cmp al, 2
je 0x58b394
mov ecx, 0x3f41
cmp al, 1
jne 0x58b399
cmp dword [rsp + 0x88], 6
movabs rax, 0x500000009
mov qword [r8 + 0x70], rax
lea rax, [0x0083b640]
movq xmm0, rax
lea rax, [0x0083ae40]
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqu xmmword [r8 + 0x60], xmm1
mov dword [r8 + 8], 0x3f47
jne 0x58b39c
jmp 0x58c18e
mov r12, rax
mov esi, edx
mov r13d, ecx
movzx eax, bx
mov ecx, ebx
shr ecx, 0x10
xor ecx, 0xffff
cmp eax, ecx
jne 0x58b1ed
mov qword [rsp + 0x30], rsi
xor ebx, ebx
cmp dword [rsp + 0x88], 6
mov dword [r8 + 0x50], eax
mov dword [r8 + 8], 0x3f42
mov r13d, 0
je 0x58bf03
mov dword [r10], 0x3f43
mov rdi, rbx
mov ebx, dword [r8 + 0x50]
test ebx, ebx
je 0x58b1d6
mov r15, qword [rsp + 0x30]
cmp ebx, r15d
cmova ebx, r15d
cmp ebx, r11d
cmova ebx, r11d
test ebx, ebx
je 0x58bede
mov ebp, ebx
mov rsi, qword [rsp + 0x70]
mov rcx, rsi
mov rdx, r12
mov qword [rsp + 0x58], r12
mov r8, rbp
mov dword [rsp + 0x48], r11d
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x40]
mov r9, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r11d, dword [rsp + 0x48]
sub r15d, ebx
add r12, rbp
sub r11d, ebx
add rsi, rbp
mov qword [rsp + 0x70], rsi
mov r10, qword [rsp + 0x78]
sub dword [r8 + 0x50], ebx
mov rsi, r15
jmp 0x58b1e2
mov dword [r10], 0x3f3f
mov rsi, qword [rsp + 0x30]
mov rbx, rdi
mov ecx, dword [r10]
jmp 0x58a759
lea rax, [0x0083b746]
jmp 0x58a707
mov dword [r10], 0x3f40
mov rsi, qword [rsp + 0x30]
mov ecx, dword [r10]
jmp 0x58a759
mov r12, r8
mov esi, edi
mov r10, rbp
jmp 0x58bab9
mov r12, rax
mov esi, edx
mov r13d, ecx
mov dword [r8 + 0x18], ebx
cmp bl, 8
jne 0x58a700
jmp 0x58a67a
mov r12, rax
mov esi, edx
mov r13d, ecx
mov edx, ebx
and edx, 0x1f
add edx, 0x101
mov dword [r8 + 0x7c], edx
mov ecx, ebx
shr ecx, 5
and ecx, 0x1f
lea eax, [rcx + 1]
mov dword [r8 + 0x80], eax
mov eax, ebx
shr eax, 0xa
and eax, 0xf
add eax, 4
mov dword [r8 + 0x78], eax
shr ebx, 0xe
add r13d, 0xfffffff2
cmp edx, 0x11e
ja 0x58b376
cmp ecx, 0x1e
jae 0x58b376
mov dword [r8 + 0x84], 0
mov dword [r8 + 8], 0x3f45
xor ecx, ecx
mov edx, ecx
cmp r13d, 2
ja 0x58b2cb
test esi, esi
je 0x58bd94
lea ebp, [r13 + 8]
mov rdi, rbx
movzx ebx, byte [r12]
mov ecx, r13d
shl ebx, cl
add edi, ebx
mov rbx, rdi
inc r12
dec esi
mov r13d, ebp
mov ebp, ebx
and ebp, 7
lea ecx, [rdx + 1]
mov dword [r8 + 0x84], ecx
mov edx, edx
mov rdi, rbx
lea rbx, [0x0083ae10]
movzx edx, word [rbx + rdx*2]
mov rbx, rdi
mov word [r8 + rdx*2 + 0x90], bp
shr ebx, 3
add r13d, 0xfffffffd
cmp ecx, eax
mov edx, ecx
jb 0x58b29f
mov qword [rsp + 0x58], r12
mov r15, r10
mov qword [rsp + 0x30], rsi
mov r12d, r11d
cmp ecx, 0x12
mov rdi, qword [rsp + 0xa0]
ja 0x58b589
mov r8, rbx
mov eax, ecx
mov edx, 0x12
sub rdx, rax
mov ebp, 3
sub ebp, ecx
and ebp, 3
je 0x58b51e
mov ecx, ebp
lea rbp, [0x0083ae10]
lea rbp, [rbp + rax*2]
neg rcx
mov rsi, qword [rsp + 0x40]
inc rax
movzx ebx, word [rbp]
mov word [rsi + rbx*2 + 0x90], 0
add rbp, 2
inc rcx
jne 0x58b357
jmp 0x58b523
lea rax, [0x0083b763]
jmp 0x58a707
lea rax, [0x0083b733]
mov qword [r14 + 0x20], rax
mov ecx, 0x3f51
jmp 0x58b399
mov ecx, 0x3f44
mov dword [r10], ecx
shr ebx, 3
add r13d, 0xfffffffd
mov ecx, dword [r10]
jmp 0x58a759
mov rbp, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbp
mov edx, 1
mov ecx, eax
shl edx, cl
dec edx
and edx, ebx
add edx, dword [r8 + 0x50]
mov dword [r8 + 0x50], edx
shr ebx, cl
sub r13d, eax
add dword [r8 + 0x1be4], eax
jmp 0x58a19e
mov r12, rdx
mov esi, ebp
mov r13d, ecx
mov edx, dword [rsp + 0x6c]
mov ecx, edx
sub ecx, r11d
add dword [r14 + 0x1c], ecx
add dword [r8 + 0x24], ecx
sub edx, r11d
mov qword [rsp + 0x30], rsi
je 0x589dba
mov ecx, eax
and ecx, 4
je 0x589dba
mov rbp, r10
mov rdi, rbx
mov ebx, r11d
mov rcx, r8
mov r8d, edx
mov eax, r8d
mov rdx, qword [rsp + 0x70]
sub rdx, rax
cmp dword [rcx + 0x18], 0
mov ecx, dword [rcx + 0x20]
je 0x589d96
call fcn.00590b70
jmp 0x589d9b
mov r12, rdx
mov esi, ebp
mov r13d, ecx
test al, 2
je 0x58b4c2
cmp ebx, 0x8b1f
jne 0x58b4c2
mov rdi, r10
mov r15, rsi
mov ebp, r11d
cmp dword [r8 + 0x30], 0
jne 0x58b46a
mov dword [r8 + 0x30], 0xf
xor ecx, ecx
xor edx, edx
xor r8d, r8d
call fcn.00590b70
mov rbx, qword [rsp + 0x80]
mov dword [rbx], eax
mov word [rsp + 0x4c], 0x8b1f
lea rdx, [rsp + 0x4c]
mov r8d, 2
mov ecx, eax
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov dword [rbx], eax
xor ebx, ebx
mov r10, rdi
mov dword [r10], 0x3f35
xor r13d, r13d
mov r11d, ebp
mov rsi, r15
mov r9, qword [rsp + 0x50]
mov ecx, dword [r10]
jmp 0x58a759
mov dword [r8 + 0x18], 0
mov rcx, qword [r8 + 0x28]
test rcx, rcx
je 0x58b4da
mov dword [rcx + 0x40], 0xffffffff
test al, 1
je 0x58b512
mov eax, ebx
shl eax, 8
movzx eax, ax
mov ecx, ebx
shr ecx, 8
add ecx, eax
imul rax, rcx, 0x8421085
shr rax, 0x20
mov edx, ecx
sub edx, eax
shr edx, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub eax, edx
cmp ecx, eax
je 0x58a5ae
lea rax, [0x0083b6c0]
jmp 0x58a707
mov rsi, qword [rsp + 0x40]
cmp rdx, 3
jb 0x58b579
add rax, 3
lea rcx, [0x0083ae10]
movzx edx, word [rcx + rax*2 - 6]
mov word [rsi + rdx*2 + 0x90], 0
movzx edx, word [rcx + rax*2 - 4]
mov word [rsi + rdx*2 + 0x90], 0
movzx edx, word [rcx + rax*2 - 2]
mov word [rsi + rdx*2 + 0x90], 0
movzx ecx, word [rcx + rax*2]
mov word [rsi + rcx*2 + 0x90], 0
add rax, 4
cmp rax, 0x16
jne 0x58b52d
mov dword [rsi + 0x84], 0x13
mov rbx, r8
mov r8, rsi
mov rax, qword [rsp + 0xb0]
mov qword [r8 + 0x88], rax
mov qword [r8 + 0x60], rax
mov dword [r8 + 0x70], 7
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x20], rax
xor ebp, ebp
xor ecx, ecx
mov rdi, r8
mov r8d, 0x13
mov rdx, qword [rsp + 0xa8]
call fcn.0058d690
test eax, eax
je 0x58b60a
mov dword [rsp + 0x3c], eax
lea rax, [0x0083b787]
mov qword [r14 + 0x20], rax
mov r10, r15
mov dword [r10], 0x3f51
mov r11d, r12d
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov r8, rdi
mov ecx, dword [r10]
jmp 0x58a759
mov dword [rdi + 0x84], 0
mov dword [rdi + 8], 0x3f46
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x48], r12d
mov r12, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
mov r8, rdi
mov eax, dword [r8 + 0x7c]
mov r15d, dword [r8 + 0x80]
mov dword [rsp + 0x94], eax
add r15d, eax
cmp ebp, r15d
mov rsi, qword [rsp + 0x30]
jae 0x58b9dd
mov r10, qword [r8 + 0x60]
mov cl, byte [r8 + 0x70]
mov edi, 1
shl edi, cl
dec edi
jmp 0x58b680
dec esi
movzx eax, byte [r12]
inc r12
mov ecx, r13d
shl eax, cl
add ebx, eax
add r13d, 8
mov ecx, edi
and ecx, ebx
movzx eax, byte [r10 + rcx*4 + 1]
cmp r13d, eax
jae 0x58b698
test esi, esi
jne 0x58b66b
jmp 0x58bdc1
mov r11, rbx
movzx ebx, word [r10 + rcx*4 + 2]
cmp ebx, 0xf
ja 0x58b6ce
mov ecx, eax
shr r11d, cl
mov qword [rsp + 0x60], r11
sub r13d, eax
lea r11d, [rbp + 1]
mov dword [r8 + 0x84], r11d
mov eax, ebp
mov word [r8 + rax*2 + 0x90], bx
jmp 0x58b9c7
movzx ecx, bx
cmp ecx, 0x11
je 0x58b754
cmp ecx, 0x10
jne 0x58b7a3
lea ebx, [rax + 2]
cmp r13d, ebx
jae 0x58b710
test esi, esi
je 0x58be06
dec esi
mov rdx, rsi
movzx esi, byte [r12]
inc r12
mov ecx, r13d
shl esi, cl
add r11d, esi
mov rsi, rdx
add r13d, 8
cmp r13d, ebx
jb 0x58b6e7
mov ecx, eax
shr r11d, cl
sub r13d, eax
test ebp, ebp
je 0x58a72b
lea eax, [rbp - 1]
mov ax, word [r8 + rax*2 + 0x90]
mov ecx, r11d
and ecx, 3
add ecx, 3
shr r11d, 2
mov qword [rsp + 0x60], r11
add r13d, 0xfffffffe
lea r11d, [rcx + rbp]
cmp r11d, r15d
jbe 0x58b804
jmp 0x58a730
lea ebx, [rax + 3]
cmp r13d, ebx
jae 0x58b785
test esi, esi
je 0x58be06
dec esi
mov rdx, rsi
movzx esi, byte [r12]
inc r12
mov ecx, r13d
shl esi, cl
add r11d, esi
mov rsi, rdx
add r13d, 8
cmp r13d, ebx
jb 0x58b75c
mov ecx, eax
shr r11d, cl
mov ecx, r11d
and ecx, 7
add ecx, 3
shr r11d, 3
mov qword [rsp + 0x60], r11
mov ebx, 0xfffffffd
jmp 0x58b7f0
lea ebx, [rax + 7]
cmp r13d, ebx
jae 0x58b7d4
test esi, esi
je 0x58be06
dec esi
mov rdx, rsi
movzx esi, byte [r12]
inc r12
mov ecx, r13d
shl esi, cl
add r11d, esi
mov rsi, rdx
add r13d, 8
cmp r13d, ebx
jb 0x58b7ab
mov ecx, eax
shr r11d, cl
mov ecx, r11d
and ecx, 0x7f
add ecx, 0xb
shr r11d, 7
mov qword [rsp + 0x60], r11
mov ebx, 0xfffffff9
sub ebx, eax
add r13d, ebx
xor eax, eax
lea r11d, [rcx + rbp]
cmp r11d, r15d
ja 0x58a730
cmp ecx, 0x10
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x30], rsi
jb 0x58b911
lea ebx, [rcx - 1]
add ebx, ebp
jb 0x58b911
mov dword [rsp + 0x90], r15d
mov r9d, ecx
and r9d, 0xf0
movd xmm0, eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0x50
lea ebx, [r9 - 0x10]
mov esi, ebx
shr esi, 4
lea r15d, [rsi + 1]
and r15d, 3
xor r8d, r8d
cmp ebx, 0x30
mov rdx, qword [rsp + 0x40]
jb 0x58b8ce
lea ebx, [r15 - 1]
sub ebx, esi
xor r8d, r8d
lea esi, [rbp + r8]
movdqu xmmword [rdx + rsi*2 + 0x90], xmm0
movdqu xmmword [rdx + rsi*2 + 0xa0], xmm0
lea esi, [rbp + r8 + 0x10]
movdqu xmmword [rdx + rsi*2 + 0x90], xmm0
movdqu xmmword [rdx + rsi*2 + 0xa0], xmm0
lea esi, [rbp + r8 + 0x20]
movdqu xmmword [rdx + rsi*2 + 0x90], xmm0
movdqu xmmword [rdx + rsi*2 + 0xa0], xmm0
lea esi, [rbp + r8 + 0x30]
movdqu xmmword [rdx + rsi*2 + 0x90], xmm0
movdqu xmmword [rdx + rsi*2 + 0xa0], xmm0
add r8d, 0x40
add ebx, 4
jne 0x58b869
test r15d, r15d
je 0x58b8f7
add r8d, ebp
neg r15d
mov esi, r8d
movdqu xmmword [rdx + rsi*2 + 0x90], xmm0
movdqu xmmword [rdx + rsi*2 + 0xa0], xmm0
add r8d, 0x10
inc r15d
jne 0x58b8d9
cmp ecx, r9d
mov r8, rdx
mov r15d, dword [rsp + 0x90]
je 0x58b9b6
add ebp, r9d
sub ecx, r9d
lea r8d, [rcx - 1]
mov ebx, ecx
and ebx, 7
je 0x58b937
neg ebx
mov rdx, qword [rsp + 0x40]
dec ecx
mov esi, ebp
inc ebp
mov word [rdx + rsi*2 + 0x90], ax
inc ebx
jne 0x58b923
jmp 0x58b93c
mov rdx, qword [rsp + 0x40]
cmp r8d, 7
mov r8, rdx
jb 0x58b9b6
xor ebx, ebx
lea esi, [rbp + rbx]
lea edx, [rbp + rbx + 1]
mov word [r8 + rsi*2 + 0x90], ax
lea esi, [rbp + rbx + 2]
mov word [r8 + rdx*2 + 0x90], ax
lea edx, [rbp + rbx + 3]
mov word [r8 + rsi*2 + 0x90], ax
lea esi, [rbp + rbx + 4]
mov word [r8 + rdx*2 + 0x90], ax
lea edx, [rbp + rbx + 5]
mov word [r8 + rsi*2 + 0x90], ax
lea esi, [rbp + rbx + 6]
mov word [r8 + rdx*2 + 0x90], ax
lea edx, [rbp + rbx + 7]
mov word [r8 + rsi*2 + 0x90], ax
mov word [r8 + rdx*2 + 0x90], ax
add ebx, 8
cmp ecx, ebx
jne 0x58b947
mov dword [r8 + 0x84], r11d
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x30]
cmp r11d, r15d
mov ebp, r11d
mov rbx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x50]
jb 0x58b680
cmp word [r8 + 0x290], 0
je 0x58ba8d
mov r15, r8
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x30], rsi
mov ebx, dword [rsp + 0x48]
mov rax, qword [rsp + 0xb0]
mov qword [r15 + 0x88], rax
mov qword [r15 + 0x60], rax
mov dword [r15 + 0x70], 9
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov ecx, 1
mov rdx, qword [rsp + 0xa8]
mov r8d, dword [rsp + 0x94]
mov rbp, r9
call fcn.0058d690
test eax, eax
je 0x589cec
mov dword [rsp + 0x3c], eax
lea rax, [0x0083b7df]
mov qword [r14 + 0x20], rax
mov r10, qword [rsp + 0x78]
mov dword [r10], 0x3f51
mov r11d, ebx
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
mov r9, rbp
mov r8, r15
mov ecx, dword [r10]
jmp 0x58a759
lea rax, [0x0083b7ba]
mov qword [r14 + 0x20], rax
mov r10, qword [rsp + 0x78]
mov dword [r10], 0x3f51
mov r11d, dword [rsp + 0x48]
mov ecx, dword [r10]
jmp 0x58a759
mov esi, edi
mov r10, r9
mov r9, rbx
mov r8, qword [rsp + 0x40]
mov dword [r8 + 0x50], edx
mov rcx, qword [r8 + 0x28]
test rcx, rcx
je 0x58bace
mov dword [rcx + 0x18], edx
xor ebx, ebx
test ah, 2
mov qword [rsp + 0x30], rsi
je 0x58bb1d
test byte [r8 + 0x10], 4
je 0x58bb1d
mov byte [rsp + 0x4c], dl
mov byte [rsp + 0x4d], dh
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx]
lea rdx, [rsp + 0x4c]
mov r8d, 2
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r11d, esi
mov dword [rbx], eax
xor ebx, ebx
xor r13d, r13d
mov dword [r10], 0x3f39
mov edx, dword [r8 + 0x18]
test dh, 4
je 0x58bc0a
mov eax, dword [r8 + 0x50]
mov rsi, qword [rsp + 0x30]
cmp eax, esi
mov ebp, eax
cmova ebp, esi
test ebp, ebp
je 0x58bc02
mov r15, rbx
mov rbx, qword [r8 + 0x28]
test rbx, rbx
je 0x58bba1
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x58bba1
mov edx, dword [rbx + 0x18]
mov ebx, dword [rbx + 0x1c]
sub edx, eax
add rcx, rdx
mov r8d, ebx
sub r8d, edx
add edx, ebp
cmp edx, ebx
cmovbe r8d, ebp
mov rdx, r12
mov ebx, r11d
mov rdi, r10
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x30]
mov r11d, ebx
mov edx, dword [r8 + 0x18]
test dh, 2
je 0x58bbe9
test byte [r8 + 0x10], 4
je 0x58bbe9
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx]
mov rdx, r12
mov qword [rsp + 0x58], r12
mov r8d, ebp
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r11d, esi
mov rsi, qword [rsp + 0x30]
mov dword [rbx], eax
sub esi, ebp
mov qword [rsp + 0x30], rsi
mov eax, ebp
add r12, rax
mov eax, dword [r8 + 0x50]
sub eax, ebp
mov dword [r8 + 0x50], eax
mov rbx, r15
test eax, eax
jne 0x58be24
mov dword [r8 + 0x50], 0
mov dword [r8 + 8], 0x3f3a
test byte [r8 + 0x19], 8
jne 0x58bc3b
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x58bcf2
mov qword [rax + 0x20], 0
jmp 0x58bcf2
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bd94
mov qword [rsp + 0x60], rbx
xor r15d, r15d
movzx ebx, byte [r12 + r15]
mov rcx, qword [r8 + 0x28]
test rcx, rcx
je 0x58bc80
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x58bc80
mov edx, dword [r8 + 0x50]
cmp edx, dword [rcx + 0x28]
jae 0x58bc80
lea ecx, [rdx + 1]
mov dword [r8 + 0x50], ecx
mov byte [rax + rdx], bl
nop word [rax + rax]
inc r15
test bl, bl
je 0x58bc8c
cmp esi, r15d
ja 0x58bc50
test byte [r8 + 0x19], 2
je 0x58bcd8
test byte [r8 + 0x10], 4
je 0x58bcd8
mov rbp, qword [rsp + 0x80]
mov ecx, dword [rbp]
mov rdx, r12
mov qword [rsp + 0x58], r12
mov r8d, r15d
mov esi, r11d
mov rdi, r10
call fcn.00590b70
mov r8, qword [rsp + 0x40]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r11d, esi
mov rsi, qword [rsp + 0x30]
mov dword [rbp], eax
test bl, bl
jne 0x58be89
mov esi, esi
sub rsi, r15
mov qword [rsp + 0x30], rsi
add r12, r15
mov rbx, qword [rsp + 0x60]
mov dword [r8 + 0x50], 0
mov dword [r8 + 8], 0x3f3b
test byte [r8 + 0x19], 0x10
jne 0x58bd23
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x589bba
mov qword [rax + 0x30], 0
jmp 0x589bba
mov rsi, qword [rsp + 0x30]
test esi, esi
je 0x58bd94
mov qword [rsp + 0x60], rbx
xor ebp, ebp
nop word cs:[rax + rax]
movzx ebx, byte [r12 + rbp]
mov rcx, qword [r8 + 0x28]
test rcx, rcx
je 0x58bd70
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x58bd70
mov edx, dword [r8 + 0x50]
cmp edx, dword [rcx + 0x38]
jae 0x58bd70
lea ecx, [rdx + 1]
mov dword [r8 + 0x50], ecx
mov byte [rax + rdx], bl
nop word [rax + rax]
inc rbp
test bl, bl
je 0x589b54
cmp esi, ebp
ja 0x58bd40
jmp 0x589b54
cmp dword [r14 + 8], 0
jne 0x58c117
jmp 0x589a7e
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
jmp case.0x58a786.16208
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
mov rbx, r11
mov r10, qword [rsp + 0x78]
mov r11d, esi
jmp case.0x58a786.16208
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
mov r10, qword [rsp + 0x78]
mov r11d, dword [rsp + 0x48]
jmp case.0x58a786.16208
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x48]
jmp case.0x58a786.16208
mov eax, 0xfffffffe
jmp 0x58c117
mov eax, 0xfffffffc
jmp 0x58c117
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
mov r10, qword [rsp + 0x78]
mov rbx, r11
mov r11d, dword [rsp + 0x48]
jmp case.0x58a786.16208
mov r15d, dword [rsp + 0x3c]
jmp case.0x58a786.16208
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
mov r12, rsi
mov rbx, r11
mov r10, qword [rsp + 0x78]
mov r11d, dword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
jmp case.0x58a786.16208
mov r12, rax
jmp 0x58beeb
xor r11d, r11d
mov r15d, dword [rsp + 0x3c]
jmp case.0x58a786.16208
xor eax, eax
mov qword [rsp + 0x30], rax
mov r15d, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x48]
mov r10, rdi
jmp case.0x58a786.16208
add r12, rbp
sub esi, ebp
jmp 0x58be8f
add r12, r15
sub esi, r15d
mov qword [rsp + 0x30], rsi
mov r15d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x60]
jmp case.0x58a786.16208
mov rax, qword [rsp + 0x70]
mov qword [r14 + 0x10], rax
mov dword [r14 + 0x18], r11d
mov qword [r14], r12
mov rax, qword [rsp + 0x30]
mov dword [r14 + 8], eax
mov dword [r8 + 0x48], ebx
mov dword [r8 + 0x4c], r13d
mov eax, 2
jmp 0x58c117
mov qword [rsp + 0x30], rsi
xor ebx, ebx
xor r13d, r13d
mov dword [r10], 0x3f50
jmp case.0x58a786.16208
mov r15d, dword [rsp + 0x3c]
mov rbx, rdi
jmp case.0x58a786.16208
mov r12, rdx
xor eax, eax
mov qword [rsp + 0x30], rax
mov r13d, ecx
jmp 0x58bf17
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x58c171
xor r13d, r13d
mov r15d, dword [rsp + 0x3c]
jmp case.0x58a786.16208
mov r12, rax
xor eax, eax
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x3c]
mov r15d, eax
mov rax, qword [rsp + 0x70]
mov qword [r14 + 0x10], rax
mov dword [r14 + 0x18], r11d
mov qword [r14], r12
mov rax, qword [rsp + 0x30]
mov dword [r14 + 8], eax
mov dword [r8 + 0x48], ebx
mov dword [r8 + 0x4c], r13d
cmp dword [r8 + 0x34], 0
mov r13d, dword [rsp + 0x9c]
je 0x58bffe
mov rbx, qword [r14 + 0x28]
mov rax, qword [rbx + 0x40]
test rax, rax
jne 0x58bf93
mov rax, qword [r14 + 0x40]
mov cl, byte [rbx + 0x30]
mov edx, 1
shl edx, cl
mov r8d, 1
mov rcx, rax
mov esi, r11d
mov rdi, r10
call qword [r14 + 0x30]
mov rcx, rdi
mov r11d, esi
mov qword [rbx + 0x40], rax
test rax, rax
je 0x58c157
mov ebp, dword [rsp + 0x6c]
sub ebp, r11d
mov esi, dword [rbx + 0x34]
test esi, esi
jne 0x58bfb6
mov cl, byte [rbx + 0x30]
mov esi, 1
shl esi, cl
mov dword [rbx + 0x34], esi
mov qword [rbx + 0x38], 0
cmp esi, ebp
jbe 0x58c029
mov ecx, dword [rbx + 0x3c]
sub esi, ecx
cmp esi, ebp
cmova esi, ebp
add rax, rcx
mov ecx, ebp
mov rdi, qword [rsp + 0x70]
mov rdx, rdi
sub rdx, rcx
mov rcx, rax
mov r8, rsi
call sub.msvcrt.dll_memcpy
sub ebp, esi
je 0x58c12b
mov rcx, qword [rbx + 0x40]
mov r8d, ebp
sub rdi, r8
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov dword [rbx + 0x3c], ebp
jmp 0x58c043
cmp dword [rsp + 0x6c], r11d
je 0x58c04e
mov eax, dword [r10]
cmp eax, 0x3f50
ja 0x58c04e
cmp dword [rsp + 0x88], 4
jne 0x58bf52
cmp eax, 0x3f4d
ja 0x58c04e
jmp 0x58bf52
mov r8d, esi
mov rdx, qword [rsp + 0x70]
sub rdx, r8
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov dword [rbx + 0x3c], 0
mov eax, dword [rbx + 0x34]
mov dword [rbx + 0x38], eax
mov r8, qword [rsp + 0x40]
sub r13d, dword [r14 + 8]
add dword [r14 + 0xc], r13d
mov eax, dword [r14 + 0x18]
mov ebx, dword [rsp + 0x6c]
mov ecx, ebx
sub ecx, eax
add dword [r14 + 0x1c], ecx
add dword [r8 + 0x24], ecx
sub ebx, eax
mov rsi, qword [rsp + 0x88]
je 0x58c0b5
mov eax, dword [r8 + 0x10]
and eax, 4
je 0x58c0b5
mov rdx, qword [r14 + 0x10]
mov eax, ebx
sub rdx, rax
cmp dword [r8 + 0x18], 0
mov ecx, dword [r8 + 0x20]
mov r8d, ebx
je 0x58c09d
call fcn.00590b70
jmp 0x58c0a2
call fcn.005906a0
mov rcx, qword [rsp + 0x80]
mov dword [rcx], eax
mov dword [r14 + 0x4c], eax
mov r8, qword [rsp + 0x40]
xor eax, eax
cmp dword [r8 + 0xc], 0
setne al
shl eax, 6
add eax, dword [r8 + 0x4c]
mov ecx, dword [r8 + 8]
xor edx, edx
cmp ecx, 0x3f3f
sete dl
shl edx, 7
add edx, eax
xor eax, eax
cmp ecx, 0x3f42
sete al
shl eax, 8
cmp ecx, 0x3f47
mov ecx, pe_nt_image_headers64
cmovne ecx, eax
add ecx, edx
mov dword [r14 + 0x48], ecx
or ebx, r13d
mov ecx, 0xfffffffb
mov eax, r15d
cmove eax, ecx
cmp esi, 4
cmove eax, ecx
test r15d, r15d
cmovne eax, r15d
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, dword [rbx + 0x3c]
add ecx, esi
mov edx, dword [rbx + 0x34]
mov eax, dword [rbx + 0x38]
xor ebp, ebp
cmp ecx, edx
cmovne ebp, ecx
mov dword [rbx + 0x3c], ebp
cmp eax, edx
mov r8, qword [rsp + 0x40]
jae 0x58c04e
add eax, esi
mov dword [rbx + 0x38], eax
jmp 0x58c04e
mov dword [rcx], 0x3f52
mov eax, 0xfffffffc
jmp 0x58c117
mov r12, rdx
xor eax, eax
mov qword [rsp + 0x30], rax
mov r13d, ecx
mov eax, dword [rsp + 0x3c]
mov rbx, rdi
jmp case.0x58a786.16209
mov r12, r8
xor eax, eax
mov qword [rsp + 0x30], rax
mov ebx, edx
mov r13d, ecx
jmp 0x58c1ad
mov qword [rsp + 0x30], rsi
shr ebx, 3
add r13d, 0xfffffffd
mov r15d, dword [rsp + 0x3c]
jmp case.0x58a786.16208
xor eax, eax
mov qword [rsp + 0x30], rax
mov ebx, edx
mov eax, dword [rsp + 0x3c]
mov r10, r9
mov r8, qword [rsp + 0x40]
jmp case.0x58a786.16209
xor r15d, r15d
jmp case.0x58a786.16208
mov r12, rdx
xor eax, eax
mov qword [rsp + 0x30], rax
mov r13d, ecx
mov eax, dword [rsp + 0x3c]
mov rbx, rdi
mov r8, qword [rsp + 0x40]
jmp case.0x58a786.16209
xor eax, eax
mov qword [rsp + 0x30], rax
mov r13d, ecx
mov eax, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x40]
jmp case.0x58a786.16209