Function at 0x4e7cc0
Capabilities:
Encode data using xor
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, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
mov r15, rcx
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x80], rcx
mov rcx, qword [rax]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x50], rax
mov r12, qword [rax + 0x10]
lea rbx, [r12 + 0x90]
mov eax, dword [r12 + 0x90]
mov dword [rsp + 0x6c], eax
movzx r13d, byte [r15 + 0x48]
test r13, r13
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], rbx
je 0x4e8cb7
lea r14, [r12 + 0x88]
xor eax, eax
mov qword [rsp + 0x60], rax
xorps xmm6, xmm6
jmp 0x4e7d55
mov dword [rcx + 8], eax
cmp r13, 1
mov r13, qword [rsp + 0x98]
jle 0x4e8cfd
lea rax, [r13 - 1]
mov qword [rsp + 0x98], rax
imul rbp, rax, 0x70
mov rsi, qword [r15 + rbp + 0x3a8]
test rsi, rsi
je 0x4e7e32
lea rdi, [r15 + rbp]
add rdi, 0x388
mov r8d, dword [r15 + rbp + 0x388]
mov rcx, qword [r12 + 0x18]
not r8d
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4e7db0
mov eax, dword [rbx]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4e7db8
mov rdx, r12
call fcn.004d3e00
mov dword [rdi], 0
movsxd rax, dword [r12 + 0x90]
mov dword [rsi + 0x10], eax
mov r8d, dword [rsi + 8]
mov r9d, dword [rsi + 0xc]
cmp dword [r12 + 0x94], eax
jle 0x4e7e10
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x43
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 1
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4e7e25
mov dword [rsp + 0x20], 1
mov rcx, r12
mov edx, 0x43
call fcn.0047df60
mov rax, qword [rsp + 0x60]
add eax, 1
mov qword [rsp + 0x60], rax
mov rdi, qword [r15 + rbp + 0x3d0]
lea rax, [r15 + rbp]
add rax, 0x3b1
mov qword [rsp + 0x78], rax
cmp byte [r15 + rbp + 0x3b1], 0xb8
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x48], rdi
jne 0x4e7eb0
mov r8d, dword [r15 + rbp + 0x388]
test r8d, r8d
je 0x4e80e0
mov rcx, qword [r12 + 0x18]
mov eax, r8d
not eax
and eax, 0x4132f2e1
and r8d, 0xbecd0d1e
or r8d, eax
xor r8d, 0xbecd0d1e
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4e7f10
mov eax, dword [rbx]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4e80e0
xor esi, esi
cmp byte [r15 + 0x4b], 2
jne 0x4e7ee0
movzx eax, byte [r15 + 0x48]
cmp r13d, eax
jne 0x4e7ee0
mov eax, dword [rdi + 0x38]
not eax
or eax, 0xfffffdff
cmp eax, 0xffffffff
je 0x4e7ee0
mov rax, qword [rdi + 0x20]
cmp byte [rax + 0x64], 0
js 0x4e8aea
mov r15, qword [rsp + 0x40]
mov r8d, dword [r15 + rbp + 0x388]
test r8d, r8d
je 0x4e7f25
mov rcx, qword [r12 + 0x18]
not r8d
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4e7f1d
mov eax, dword [rbx]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4e7f25
mov rdx, r12
call fcn.004d3e00
jmp 0x4e80e0
mov rdx, r12
call fcn.004d3e00
mov r8d, dword [r15 + rbp + 0x3b4]
mov r9d, dword [r15 + rbp + 0x3b8]
mov rax, qword [rsp + 0x78]
mov cl, byte [rax]
movzx eax, byte [r15 + rbp + 0x3b2]
movsxd rdx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], edx
jle 0x4e7fa0
lea ebp, [rdx + 1]
mov dword [rbx], ebp
mov rbp, qword [r14]
lea rdx, [rdx + rdx*2]
mov byte [rbp + rdx*8], cl
mov word [rbp + rdx*8 + 2], 0
mov dword [rbp + rdx*8 + 4], r8d
mov dword [rbp + rdx*8 + 8], r9d
mov dword [rbp + rdx*8 + 0xc], eax
mov qword [rbp + rdx*8 + 0x10], 0
mov byte [rbp + rdx*8 + 1], 0
mov rbp, qword [rsp + 0x30]
mov eax, dword [rbx]
test eax, eax
jg 0x4e7fb5
jmp 0x4e7fd3
movzx edx, cl
mov dword [rsp + 0x20], eax
mov rcx, r12
call fcn.0047df60
mov eax, dword [rbx]
test eax, eax
jle 0x4e7fd3
movzx ecx, byte [r15 + rbp + 0x3b3]
mov rdx, qword [r14]
lea ebp, [rax - 1]
lea rbp, [rbp + rbp*2]
mov word [rdx + rbp*8 + 2], cx
mov rbp, qword [rsp + 0x30]
cmp dword [r15 + rbp + 0x394], 0
je 0x4e80aa
mov qword [rsp + 0x58], r13
mov r13d, esi
mov rsi, rdi
lea rdi, [r15 + rbp]
add rdi, 0x3b8
mov r8d, dword [r15 + rbp + 0x398]
mov rcx, qword [r12 + 0x18]
mov edx, r8d
not edx
and edx, 0xca078cac
and r8d, 0x35f87353
or r8d, edx
xor r8d, 0x35f87353
mov edx, dword [rcx + 0x44]
add edx, dword [rcx + 0x48]
js 0x4e8035
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4e803d
mov rdx, r12
call fcn.004d3e00
mov r8d, dword [rdi - 0x24]
mov r9d, dword [rdi]
add r9d, 0xffffffff
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e808a
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x3c
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4e809f
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x3c
call fcn.0047df60
mov rdi, rsi
mov esi, r13d
mov r13, qword [rsp + 0x58]
test esi, esi
je 0x4e80e0
mov eax, dword [r12 + 0x90]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
lea rcx, [0x0213b3e8]
jne 0x4e80dd
lea ecx, [rax - 1]
test esi, esi
cmovns ecx, esi
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r14]
mov dword [rcx + 8], eax
lea rax, [r15 + rbp]
add rax, 0x370
mov qword [rsp + 0x88], rax
mov eax, dword [rdi + 0x38]
mov ecx, eax
xor ecx, 0xfffff7ff
test ecx, eax
je 0x4e84c0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
cmp dword [rax + rcx + 0x3c0], 0
jle 0x4e84c0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
lea rsi, [rax + rcx]
add rsi, 0x3c0
mov r8d, dword [rax + rcx + 0x380]
mov rcx, qword [r12 + 0x18]
mov eax, r8d
not eax
and eax, 0xd47728a3
and r8d, 0x2b88d75c
or r8d, eax
xor r8d, 0x2b88d75c
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4e8180
mov eax, dword [rbx]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
mov edi, dword [rsi]
test edi, edi
lea rsi, [0x0213b3e8]
jg 0x4e8199
jmp 0x4e84c0
mov rdx, r12
call fcn.004d3e00
mov edi, dword [rsi]
test edi, edi
lea rsi, [0x0213b3e8]
jle 0x4e84c0
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
mov rbx, qword [rsp + 0x30]
mov r8, qword [rcx + rbx + 0x3c8]
lea eax, [rdi - 1]
movsxd rbp, eax
lea rax, [rcx + rbx + 0x378]
mov qword [rsp + 0x90], rax
mov rbx, rdx
mov eax, dword [r12 + 0x90]
mov rcx, qword [r12]
mov cl, byte [rcx + 0x67]
lea rbp, [rbp + rbp*4]
lea rbp, [r8 + rbp*4]
add rbp, 0x10
lea r15d, [rdi + 1]
mov qword [rsp + 0x58], r13
jmp 0x4e8257
lea edx, [rax + 1]
mov dword [rbx], edx
mov rdx, qword [r14]
cdqe
lea rax, [rax + rax*2]
mov byte [rdx + rax*8], cl
mov word [rdx + rax*8 + 2], 0
mov dword [rdx + rax*8 + 4], r8d
mov dword [rdx + rax*8 + 8], r9d
mov dword [rdx + rax*8 + 0xc], 0
mov qword [rdx + rax*8 + 0x10], 0
mov byte [rdx + rax*8 + 1], 0
mov eax, dword [r12 + 0x90]
mov rcx, qword [r12]
movzx ecx, byte [rcx + 0x67]
mov rdx, rsi
test cl, cl
je 0x4e8270
mov dword [rdx + 8], eax
add edi, 0xffffffff
add rbp, 0xffffffffffffffec
add r15d, 0xffffffff
cmp r15d, 1
jle 0x4e84c0
mov r9d, dword [rbp - 0xc]
mov rdx, rsi
test cl, cl
je 0x4e8290
mov dword [rdx + 8], eax
cmp byte [rbp], 0xb8
je 0x4e8228
jmp 0x4e82b9
mov edx, dword [rbp - 0xc]
test edx, edx
cmovle edx, eax
add edx, 0xffffffff
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
shl rdx, 3
add rdx, qword [r14]
jmp 0x4e823f
lea ecx, [r9 + 1]
lea edx, [rax - 1]
cmp r9d, 0xffffffff
cmovge edx, ecx
movsxd rcx, edx
lea rdx, [rcx + rcx*2]
shl rdx, 3
add rdx, qword [r14]
mov dword [rdx + 8], eax
cmp byte [rbp], 0xb8
je 0x4e8228
cmp dword [rbp - 4], 0
je 0x4e83f3
mov rcx, qword [rsp + 0x48]
mov ecx, dword [rcx + 0x38]
mov esi, ecx
xor esi, 0xfffbfbff
and esi, ecx
mov rcx, qword [rsp + 0x88]
cmp dword [rcx], 0
je 0x4e8337
xor ecx, ecx
cmp esi, 0x40000
sete cl
mov r8d, dword [rbp - 0x10]
lea r9d, [rcx + rax]
add r9d, 2
cmp dword [r12 + 0x94], eax
jle 0x4e83c5
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
cdqe
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x18
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
cmp esi, 0x40000
jne 0x4e83e6
mov rax, qword [rsp + 0x90]
mov r8d, dword [rax]
mov eax, dword [r12 + 0x90]
lea r9d, [rax + 2]
mov ecx, dword [rbp - 8]
mov r13d, dword [rbp - 4]
cmp dword [r12 + 0x94], eax
jle 0x4e840e
movsxd rdx, eax
lea ebx, [rax + 1]
mov rsi, qword [rsp + 0x38]
mov dword [rsi], ebx
mov rbx, qword [r14]
lea rdx, [rdx + rdx*2]
mov dword [rbx + rdx*8], 0x19
mov dword [rbx + rdx*8 + 4], r8d
mov dword [rbx + rdx*8 + 8], r9d
mov dword [rbx + rdx*8 + 0xc], ecx
mov qword [rbx + rdx*8 + 0x10], 0
lea rsi, [0x0213b3e8]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
je 0x4e8430
mov r9d, dword [rbp - 0xc]
mov rbx, qword [rsp + 0x38]
mov eax, dword [rbx]
mov rcx, rsi
jmp 0x4e8484
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x18
call fcn.0047df60
cmp esi, 0x40000
je 0x4e8343
mov r9d, dword [rbp - 0xc]
mov eax, dword [rbx]
lea rsi, [0x0213b3e8]
movzx ecx, byte [rbp]
mov r8d, dword [rbp - 0x10]
cmp dword [r12 + 0x94], eax
jg 0x4e81f0
jmp 0x4e84a2
mov dword [rsp + 0x20], ecx
mov rcx, r12
mov edx, 0x19
call fcn.0047df60
lea rsi, [0x0213b3e8]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
jne 0x4e83b2
mov rcx, qword [r12 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], r13d
mov rcx, qword [r12]
mov r9d, dword [rbp - 0xc]
mov eax, dword [r12 + 0x90]
cmp byte [rcx + 0x67], 0
je 0x4e8463
mov rcx, rsi
jmp 0x4e847f
lea ecx, [r9 + 1]
lea edx, [rax - 1]
cmp r9d, 0xffffffff
cmovge edx, ecx
movsxd rcx, edx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r14]
mov rbx, qword [rsp + 0x38]
mov r13, qword [rsp + 0x58]
mov dword [rcx + 8], eax
movzx ecx, byte [rbp]
mov r8d, dword [rbp - 0x10]
cmp dword [r12 + 0x94], eax
jg 0x4e81f0
movzx edx, cl
mov dword [rsp + 0x20], 0
mov rcx, r12
call fcn.0047df60
jmp 0x4e8228
mov r15, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x30]
lea rsi, [r15 + rbp]
add rsi, 0x3a8
mov r8d, dword [r15 + rbp + 0x37c]
mov rcx, qword [r12 + 0x18]
mov eax, r8d
not eax
and eax, 0x851c0fc7
and r8d, 0x7ae3f038
or r8d, eax
xor r8d, 0x7ae3f038
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4e8520
mov eax, dword [rbx]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4e8528
mov rdx, r12
call fcn.004d3e00
mov rdi, qword [rsp + 0x48]
mov rax, qword [rsi]
test rax, rax
lea rsi, [0x0213b3e8]
je 0x4e8586
mov r8d, dword [rax + 8]
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e8610
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x43
mov dword [rcx + rax*8 + 4], r8d
movabs rdx, 0x100000000
mov qword [rcx + rax*8 + 8], rdx
mov qword [rcx + rax*8 + 0x10], 0
mov r9d, dword [r15 + rbp + 0x384]
test r9d, r9d
je 0x4e8640
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e86b0
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 8
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
mov eax, dword [r12 + 0x90]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
je 0x4e86de
mov dword [0x0213b3f0], eax
mov rcx, rsi
mov dword [rcx + 8], eax
mov r9d, dword [r15 + rbp + 0x3a0]
test r9d, r9d
jne 0x4e8651
jmp 0x4e8740
mov dword [rsp + 0x20], 1
mov rcx, r12
mov edx, 0x43
xor r9d, r9d
call fcn.0047df60
mov r9d, dword [r15 + rbp + 0x384]
test r9d, r9d
jne 0x4e8597
nop dword [rax]
mov r9d, dword [r15 + rbp + 0x3a0]
test r9d, r9d
je 0x4e8740
mov r8d, dword [r15 + rbp + 0x39c]
shr r8d, 1
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e8760
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x3c
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4e8740
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 8
xor r8d, r8d
call fcn.0047df60
mov eax, dword [r12 + 0x90]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
jne 0x4e85ed
lea rcx, [r15 + rbp]
add rcx, 0x384
mov ecx, dword [rcx]
lea edx, [rax - 1]
test ecx, ecx
mov ebp, ecx
cmovs ebp, edx
mov rbx, qword [r14]
movsxd rbp, ebp
lea rbp, [rbp + rbp*2]
cmp ecx, 2
lea ecx, [rcx - 2]
cmovl ecx, edx
mov dword [rbx + rbp*8 + 8], eax
mov rbp, qword [rsp + 0x30]
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
lea rcx, [rbx + rcx*8]
mov rbx, qword [rsp + 0x38]
mov dword [rcx + 8], eax
mov r9d, dword [r15 + rbp + 0x3a0]
test r9d, r9d
jne 0x4e8651
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x88]
mov r8d, dword [rax]
test r8d, r8d
jne 0x4e8789
jmp 0x4e7d43
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x3c
call fcn.0047df60
mov rax, qword [rsp + 0x88]
mov r8d, dword [rax]
test r8d, r8d
je 0x4e7d43
mov edi, dword [rdi + 0x38]
mov esi, dword [r12 + 0x90]
cmp dword [r12 + 0x94], esi
jle 0x4e87c0
movsxd rax, esi
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x31
mov dword [rcx + rax*8 + 4], r8d
movups xmmword [rcx + rax*8 + 8], xmm6
jmp 0x4e87da
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x31
xor r9d, r9d
call fcn.0047df60
mov esi, eax
mov eax, edi
not eax
or eax, 0xffffffbf
cmp eax, 0xffffffff
jne 0x4e8840
mov r8d, dword [r15 + rbp + 0x374]
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e881f
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x88
mov dword [rcx + rax*8 + 4], r8d
movups xmmword [rcx + rax*8 + 8], xmm6
jmp 0x4e8840
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x88
xor r9d, r9d
call fcn.0047df60
nop word [rax + rax]
mov ecx, edi
xor ecx, 0xfffffdff
mov eax, edi
xor eax, 0xffffdfff
test ecx, edi
je 0x4e8870
test eax, edi
je 0x4e8990
mov rax, qword [rsp + 0x30]
mov rdi, qword [r15 + rax + 0x3c0]
jmp 0x4e8889
test eax, edi
je 0x4e89cc
mov rdi, qword [r15 + rbp + 0x3c0]
test rdi, rdi
je 0x4e89cc
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x4e88c5
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax + 0x20]
add rdx, 0x18
mov eax, 0xffffffff
xor ebp, ebp
nop word [rax + rax]
add rbp, 1
add eax, 1
lea rbx, [rdx + 0x20]
cmp qword [rdx], rcx
mov rdx, rbx
jne 0x4e88b0
jmp 0x4e88ca
mov eax, 0xffff8000
mov rcx, qword [rsp + 0x30]
mov r8d, dword [r15 + rcx + 0x378]
mov r9d, dword [rdi + 0x58]
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jle 0x4e891e
lea edx, [rcx + 1]
mov rbx, qword [rsp + 0x38]
mov dword [rbx], edx
mov rdx, qword [r14]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x65
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], r9d
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4e8934
mov dword [rsp + 0x20], eax
mov rcx, r12
mov edx, 0x65
call fcn.0047df60
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov rbp, qword [rcx + 0x10]
mov rdx, rdi
call fcn.004c65a0
test rax, rax
je 0x4e8990
mov rcx, qword [rbp]
cmp byte [rcx + 0x67], 0
je 0x4e8963
mov edx, 0xfffffff8
mov r8, rax
call fcn.00444fc0
jmp 0x4e8990
mov rcx, qword [rbp + 0x88]
mov edx, dword [rbp + 0x90]
add edx, 0xffffffff
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
mov byte [rcx + rdx*8 + 1], 0xf8
mov qword [rcx + rdx*8 + 0x10], rax
nop word cs:[rax + rax]
nop
mov rbp, qword [rsp + 0x30]
mov r8d, dword [r15 + rbp + 0x378]
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e8a20
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x88
mov dword [rcx + rax*8 + 4], r8d
movups xmmword [rcx + rax*8 + 8], xmm6
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0x43
mov r9d, dword [r15 + rbp + 0x38c]
jne 0x4e8a4a
mov r8d, dword [r15 + rbp + 0x3b4]
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e8a88
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 9
mov dword [rcx + rax*8 + 4], r8d
jmp 0x4e8a70
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 0x88
xor r9d, r9d
call fcn.0047df60
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0x43
mov r9d, dword [r15 + rbp + 0x38c]
je 0x4e89de
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e8a9a
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 8
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4e8ab2
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 9
jmp 0x4e8aad
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 8
xor r8d, r8d
call fcn.0047df60
mov eax, dword [r12 + 0x90]
mov rcx, qword [r12]
cmp byte [rcx + 0x67], 0
lea rcx, [0x0213b3e8]
jne 0x4e7d40
lea ecx, [rax - 1]
test esi, esi
cmovns ecx, esi
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r14]
jmp 0x4e7d40
movzx r15d, word [rdi + 0x1e]
test r15d, r15d
je 0x4e7ee0
mov ecx, r15d
mov rax, qword [rax + 0x10]
cmp word [rax + rcx*2], 0x24
jl 0x4e7ee0
mov rax, qword [rsp + 0x50]
mov rcx, rbp
mov ebp, dword [rax + 0x38]
add ebp, 1
mov rax, qword [rsp + 0x40]
lea rdi, [rax + rcx]
add rdi, 0x378
xor esi, esi
jmp 0x4e8b61
lea edx, [rcx + 1]
mov dword [rbx], edx
mov rdx, qword [r14]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x5e
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], esi
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
add esi, 1
cmp r15d, esi
je 0x4e8b95
mov r8d, dword [rdi]
lea eax, [rsi + rbp]
movsxd rcx, dword [r12 + 0x90]
cmp dword [r12 + 0x94], ecx
jg 0x4e8b30
mov dword [rsp + 0x20], eax
mov rcx, r12
mov edx, 0x5e
mov r9d, esi
call fcn.0047df60
add esi, 1
cmp r15d, esi
jne 0x4e8b61
mov rdx, qword [rsp + 0x50]
mov eax, dword [rdx + 0x38]
mov rcx, qword [rsp + 0x78]
mov cl, byte [rcx]
add eax, r15d
add eax, 1
mov dword [rdx + 0x38], eax
mov r8d, dword [rdi]
xor eax, eax
cmp cl, 0x25
setne al
lea edx, [rax + rax*2]
add edx, 0x14
mov esi, dword [r12 + 0x90]
cmp dword [r12 + 0x94], esi
jle 0x4e8c0a
movsxd rax, esi
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], dl
mov word [rcx + rax*8 + 2], 0
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], ebp
mov qword [rcx + rax*8 + 0x10], 0
mov byte [rcx + rax*8 + 1], 0
jmp 0x4e8c1b
mov dword [rsp + 0x20], ebp
mov rcx, r12
xor r9d, r9d
call fcn.0047df60
mov esi, eax
mov rbp, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x48]
mov rax, qword [r12]
cmp byte [rax + 0x67], 0
jne 0x4e8c43
mov rax, qword [r14]
movsxd rcx, esi
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r15d
mov rax, qword [rsp + 0x40]
mov r9d, dword [rax + rbp + 0x3b8]
movsxd rax, dword [r12 + 0x90]
cmp dword [r12 + 0x94], eax
jle 0x4e8c97
lea ecx, [rax + 1]
mov dword [rbx], ecx
mov rcx, qword [r14]
lea rax, [rax + rax*2]
movabs rdx, 0x100000008
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4e7ee0
mov dword [rsp + 0x20], 0
mov rcx, r12
mov edx, 8
mov r8d, 1
call fcn.0047df60
jmp 0x4e7ee0
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x4e8cfd
mov rax, qword [rdx]
mov qword [r15 + 0x68], rax
mov rax, qword [rdx + 8]
mov rcx, qword [rdx + 0x50]
mov qword [rax + 0x40], rcx
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rax + 0x30], xmm0
movups xmm0, xmmword [rdx + 0x30]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [rax], xmm0
mov rax, qword [r15]
mov rcx, qword [rax]
call fcn.00408130
mov rdx, qword [r15 + 0x68]
test rdx, rdx
jne 0x4e8cc0
mov r11b, byte [r15 + 0x48]
test r11b, r11b
mov r14, qword [rsp + 0x80]
je 0x4e90a8
lea rsi, [r15 + 0x370]
xor r13d, r13d
jmp 0x4e8d57
mov rcx, r15
mov edx, r13d
mov r8, rsi
call fcn.0050bd60
mov r11b, byte [r15 + 0x48]
add r13d, 1
add rsi, 0x70
movzx eax, r11b
cmp r13d, eax
jae 0x4e90a8
cmp qword [rsi + 0x38], 0
jne 0x4e8d30
movzx eax, byte [rsi + 0x40]
imul rdx, rax, 0x68
mov eax, dword [r14 + rdx + 0x48]
not eax
or eax, 0xffffffdf
cmp eax, 0xffffffff
je 0x4e8dae
mov eax, dword [rsi + 4]
mov ecx, dword [rsi + 0x20]
mov r8d, dword [r14 + rdx + 0x40]
mov rdx, qword [rsp + 0x50]
mov rdx, qword [rdx + 0x10]
mov edi, ecx
test ecx, ecx
js 0x4e8de7
mov rbp, qword [rdx]
cmp byte [rbp + 0x67], 0
lea rbp, [0x0213b3e8]
je 0x4e8e00
mov edx, dword [rdx + 0x90]
sub edx, ecx
jg 0x4e8e21
jmp 0x4e8e9f
mov rax, qword [r14 + rdx + 0x28]
mov qword [rsp + 0x30], rax
mov rax, qword [rsi + 0x60]
mov ecx, dword [rax + 0x38]
mov edx, ecx
not edx
or edx, 0xfffffdbf
cmp edx, 0xffffffff
je 0x4e8ea9
add rax, 0x20
mov r9, qword [rax]
test r9, r9
jne 0x4e8ec8
jmp 0x4e8d42
mov edi, dword [rdx + 0x90]
add edi, 0xffffffff
mov rbp, qword [rdx]
cmp byte [rbp + 0x67], 0
lea rbp, [0x0213b3e8]
jne 0x4e8d9f
movsxd rbp, edi
lea rbp, [rbp + rbp*2]
shl rbp, 3
add rbp, qword [rdx + 0x88]
mov edx, dword [rdx + 0x90]
sub edx, ecx
jle 0x4e8e9f
mov rbx, qword [rsp + 0x50]
mov rbx, qword [rbx]
cmp byte [rbx + 0x67], 0
jne 0x4e8e9f
mov bl, 1
test bl, bl
mov rbx, qword [rsp + 0x38]
jne 0x4e8e60
jmp 0x4e8d42
mov byte [rbp], 0x7e
mov dword [rbp + 4], 0
mov rbx, qword [rsp + 0x38]
nop
add ecx, 1
add rbp, 0x18
add edx, 0xffffffff
je 0x4e8d42
cmp dword [rbp + 4], eax
jne 0x4e8e50
movzx ebx, byte [rbp]
cmp bl, 0x87
je 0x4e8e3f
cmp bl, 0x5e
mov rbx, qword [rsp + 0x38]
jne 0x4e8e50
mov byte [rbp], 0x50
mov ebx, dword [rbp + 8]
add ebx, r8d
mov dword [rbp + 4], ebx
mov ebx, dword [rbp + 0xc]
mov dword [rbp + 8], ebx
mov rbx, qword [rsp + 0x38]
mov dword [rbp + 0xc], 0
mov word [rbp + 2], 2
jmp 0x4e8e50
mov rbx, qword [rsp + 0x38]
jmp 0x4e8d42
mov eax, ecx
xor eax, 0xffffdfff
test eax, ecx
je 0x4e8d42
lea rax, [rsi + 0x50]
mov r9, qword [rax]
test r9, r9
je 0x4e8d42
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x67], 0
jne 0x4e8d42
cmp byte [r15 + 0x4a], 0
mov eax, dword [rsp + 0x6c]
je 0x4e8ef4
mov rax, qword [r9 + 0x18]
cmp byte [rax + 0x30], 0
mov eax, dword [rsp + 0x6c]
js 0x4e8ef4
mov eax, dword [r15 + 0x58]
mov ebp, dword [rsi + 0x20]
lea ecx, [rbp + 1]
mov edx, ecx
cmp ebp, 0xfffffffe
jg 0x4e8f06
mov edx, dword [rbx]
add edx, 0xffffffff
mov rbp, qword [r12]
cmp byte [rbp + 0x67], 0
lea rbp, [0x0213b3e8]
jne 0x4e8f2a
movsxd rdx, edx
lea rbp, [rdx + rdx*2]
shl rbp, 3
add rbp, qword [r12 + 0x88]
sub eax, ecx
cdqe
lea rax, [rax + rax*2]
lea r8, [rax*8]
add r8, rbp
mov r10d, dword [rsi + 4]
mov rax, qword [rsp + 0x30]
add rax, 0x10
mov qword [rsp + 0x48], rax
jmp 0x4e8f7d
test cx, cx
js 0x4e8f70
movzx eax, cx
mov dword [rbp + 8], eax
mov eax, dword [rsi + 8]
mov dword [rbp + 4], eax
nop word cs:[rax + rax]
nop dword [rax]
add rbp, 0x18
cmp rbp, r8
jae 0x4e8d42
cmp dword [rbp + 4], r10d
jne 0x4e8f70
mov al, byte [rbp]
cmp al, 0x87
je 0x4e9029
cmp al, 0x12
je 0x4e8f5c
cmp al, 0x5e
jne 0x4e8f70
movsxd rax, dword [rbp + 8]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x30]
test cl, cl
js 0x4e9038
mov edx, ecx
xor edx, 0xffffffdf
test edx, ecx
sete bl
setne dil
test ax, ax
sets cl
setns dl
cmp cl, bl
jne 0x4e9060
or dl, dil
xor dl, 1
jne 0x4e9060
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 8]
add rcx, 0x12
mov r15, 0xffffffffffffffff
xor r14d, r14d
mov rbx, qword [rsp + 0x38]
nop dword [rax]
movzx edx, word [rcx]
shr edx, 5
mov edi, edx
xor edi, 0x7fe
and edi, edx
add eax, edi
add r14, 1
movsx rdx, ax
add r15, 1
add rcx, 0x18
cmp r15, rdx
jl 0x4e9000
jmp 0x4e9065
mov eax, dword [rsi + 8]
mov dword [rbp + 4], eax
mov byte [rbp], 0x8e
jmp 0x4e8f70
mov rdx, qword [rsp + 0x48]
nop dword [rax]
mov rcx, qword [rdx]
mov edx, dword [rcx + 0x64]
mov edi, edx
xor edi, 0xfffffffc
and edi, edx
lea rdx, [rcx + 0x28]
cmp edi, 2
jne 0x4e9040
mov rcx, qword [rcx + 8]
movzx eax, word [rcx + rax*2]
jmp 0x4e9065
mov rbx, qword [rsp + 0x38]
movzx edx, word [r9 + 0x60]
test rdx, rdx
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x80]
je 0x4e8f70
mov rdi, qword [r9 + 8]
xor ecx, ecx
nop word cs:[rax + rax]
cmp word [rdi + rcx*2], ax
je 0x4e8f51
add rcx, 1
cmp rdx, rcx
jne 0x4e9090
jmp 0x4e8f70
mov r8d, dword [r15 + 0x3c]
mov rcx, qword [r12 + 0x18]
mov eax, r8d
not eax
and eax, 0x4ce5d8e
and r8d, 0xfb31a271
or r8d, eax
xor r8d, 0xfb31a271
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4e90e2
mov eax, dword [rbx]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4e90ea
mov rdx, r12
call fcn.004d3e00
mov rdi, qword [rsp + 0x60]
mov eax, dword [r15 + 0x40]
mov rsi, qword [rsp + 0x50]
mov dword [rsi + 0xc8], eax
mov rcx, qword [rsp + 0x70]
mov rdx, r15
call fcn.004f7680
sub byte [rsi + 0x26], dil
movaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret