Function at 0x5045f0
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, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov r14, r8
mov r13, rdx
mov esi, dword [rsp + 0x118]
mov r15, qword [rdx]
mov al, byte [r15]
cmp al, 0x35
je 0x50462e
mov r10, qword [rcx + 0x10]
cmp al, 0x32
je 0x504641
cmp al, 0x2d
jne 0x50468c
mov rdx, qword [r15 + 0x18]
mov r8d, esi
call fcn.004c68a0
mov esi, eax
jmp 0x505470
movsxd rax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x504735
lea ecx, [rax + 1]
mov dword [r10 + 0x90], ecx
mov rcx, qword [r10 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], esi
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x505470
mov ebx, dword [rsp + 0x110]
mov r11, qword [r14 + 0x60]
mov eax, dword [r11 + 0x38]
mov edx, eax
xor edx, 0xfffffbff
test edx, eax
mov qword [rsp + 0x68], rcx
je 0x504755
test r9d, r9d
jle 0x5046dd
mov rax, qword [r11 + 0x48]
mov ecx, r9d
xor edx, edx
jmp 0x5046c9
add rdx, 1
cmp rcx, rdx
je 0x5046dd
mov rbp, qword [rax + rdx*8]
test rbp, rbp
je 0x5046c0
cmp qword [rbp], r15
jne 0x5046c0
jmp 0x505494
mov dword [rsp + 0x40], ebx
movzx ecx, word [r11 + 0x3c]
xor r12d, r12d
mov dword [rsp + 0x44], r9d
cmp ecx, r9d
jle 0x504824
mov rdx, qword [r11 + 0x48]
movsxd rax, dword [rsp + 0x44]
movabs rbp, 0x2d726e753776186e
lea rdi, [rcx + rbp]
sub rdi, rax
sub rdi, rbp
mov rbx, rax
not rbx
add rbx, rcx
mov r8, rdi
xor r8, 0xfffffffffffffffc
and r8, rdi
cmp rbx, 3
jae 0x504781
xor r12d, r12d
jmp 0x5047db
mov dword [rsp + 0x20], 0
mov rcx, r10
mov edx, 0x4b
xor r8d, r8d
mov r9d, esi
call fcn.0047df60
jmp 0x505470
mov rax, qword [r11 + 0x20]
test rax, rax
je 0x5046b0
mov rax, qword [rax + 0x38]
movsxd rcx, r9d
cmp byte [rax + rcx], 0
je 0x5046b0
xor eax, eax
test ebx, ebx
sete al
mov ebx, eax
jmp 0x5046b0
mov rbx, rdi
xor rbx, 3
and rbx, rdi
xor r12d, r12d
nop
mov rcx, qword [rdx + rax*8]
mov rdi, qword [rdx + rax*8 + 8]
xor esi, esi
cmp qword [rcx], r15
sete sil
xor ecx, ecx
cmp qword [rdi], r15
sete cl
mov rdi, qword [rdx + rax*8 + 0x10]
xor ebp, ebp
cmp qword [rdi], r15
sete bpl
add esi, r12d
add esi, ecx
add esi, ebp
mov rcx, qword [rdx + rax*8 + 0x18]
xor r12d, r12d
cmp qword [rcx], r15
sete r12b
add r12d, esi
add rax, 4
add rbx, 0xfffffffffffffffc
jne 0x504790
test r8, r8
je 0x504824
movabs r9, 0x18173ea622c0cecd
lea rdx, [rdx + rax*8]
xor edi, edi
mov rbx, r9
not rbx
mov rcx, r8
nop dword [rax]
mov rbp, qword [rdx + rdi*8]
xor esi, esi
cmp qword [rbp], r15
sete sil
add r12d, esi
add rax, 1
add rcx, r9
add rcx, rbx
add rdi, 1
cmp r8, rdi
jne 0x504800
mov dword [rsp + 0x34], 0
mov ebp, dword [r15 + 4]
mov ecx, ebp
not ecx
or ecx, 0xffffefff
cmp ecx, 0xffffffff
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x88], r13
je 0x50485e
mov rcx, qword [r15 + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
jne 0x50489a
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
xor eax, eax
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x68]
mov rdx, r15
mov r8d, 4
xor r9d, r9d
call fcn.004d0800
mov rcx, qword [rsp + 0x50]
mov esi, eax
jmp 0x504e69
mov ecx, dword [r15 + 0x2c]
test ecx, ecx
sete dl
mov eax, ebp
xor eax, 0xfdffffff
and eax, ebp
sete bl
xor bl, dl
or eax, ecx
sete al
mov rbp, qword [rsp + 0x68]
mov rcx, qword [rbp]
test bl, bl
jne 0x5048dd
test al, al
jne 0x5048dd
mov edi, r12d
shl rdi, 2
test rcx, rcx
je 0x504914
mov rdx, rdi
call fcn.00429840
jmp 0x50491c
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x38]
mov rdx, r15
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov rcx, qword [rsp + 0x38]
mov rdi, rax
cmp byte [rcx + 0x67], 0
je 0x504960
xor eax, eax
mov qword [rsp + 0x48], rax
mov esi, 5
jmp 0x504e57
mov rcx, rdi
call fcn.00404550
mov rsi, rax
test rax, rax
je 0x504931
mov rcx, rsi
xor edx, edx
mov r8, rdi
call fcn.005f4c10
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x20], rsi
mov rcx, rbp
mov rdx, r15
mov r8d, 4
xor r9d, r9d
call fcn.004d0800
mov esi, eax
jmp 0x504e64
mov qword [rsp + 0x78], r14
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x80], rdi
mov rcx, qword [rdi + 0x20]
mov rdx, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x48], rax
mov rbp, qword [rsp + 0x58]
movzx eax, word [rbp + 0x3c]
mov ecx, dword [rsp + 0x44]
cmp eax, ecx
jle 0x504aca
movsxd rbx, ecx
xor r14d, r14d
xorps xmm6, xmm6
xor r13d, r13d
mov qword [rsp + 0x60], rdx
jmp 0x5049de
mov rcx, qword [rbp]
mov rdx, r8
call fcn.0050cd80
mov r13, rax
mov rbp, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov qword [rsi], 0
movzx eax, word [rbp + 0x3c]
add rbx, 1
movzx ecx, ax
cmp rbx, rcx
jge 0x504ad0
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx + rbx*8]
cmp qword [rcx], r15
jne 0x5049ce
mov ecx, dword [rcx + 0x24]
add ecx, 0xffffffff
movsxd rdi, ecx
shl rdi, 5
mov r8, qword [rdx + rdi + 8]
test r8, r8
je 0x5049ce
lea rsi, [rdx + rdi]
add rsi, 8
test r14, r14
je 0x504a42
movsxd rax, dword [r14]
cmp dword [r14 + 4], eax
jle 0x504a55
lea ecx, [rax + 1]
mov dword [r14], ecx
shl rax, 5
movups xmmword [r14 + rax + 0x10], xmm6
mov qword [r14 + rax + 0x20], 0
mov qword [r14 + rax + 8], r8
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x68]
jmp 0x504a6e
mov rbp, qword [rsp + 0x68]
mov rcx, qword [rbp]
mov rdx, r8
call fcn.0050cd80
jmp 0x504a66
mov rbp, qword [rsp + 0x68]
mov rcx, qword [rbp]
mov rdx, r14
call fcn.0050ce50
mov r14, rax
mov rax, qword [rsp + 0x48]
mov qword [rsi], 0
lea rsi, [rax + rdi]
add rsi, 8
mov r8, qword [rax + rdi + 8]
test r13, r13
je 0x5049aa
movsxd rax, dword [r13]
cmp dword [r13 + 4], eax
jle 0x504ab9
lea ecx, [rax + 1]
mov dword [r13], ecx
shl rax, 5
movups xmmword [r13 + rax + 0x10], xmm6
mov qword [r13 + rax + 0x20], 0
mov qword [r13 + rax + 8], r8
jmp 0x5049b9
mov rcx, qword [rbp]
mov rdx, r13
call fcn.0050ce50
jmp 0x5049b6
xor r13d, r13d
xor r14d, r14d
test rdx, rdx
je 0x504adf
mov rcx, qword [rsp + 0x38]
call fcn.0047fbe0
mov rdx, qword [rsp + 0x48]
test rdx, rdx
mov rdi, qword [rsp + 0x80]
je 0x504afb
mov rcx, qword [rsp + 0x38]
call fcn.0047fbe0
mov rax, qword [rdi + 0x10]
mov qword [rax + 0x20], r13
mov rax, qword [rdi + 0x20]
mov qword [rax + 0x20], r14
test r13, r13
mov r14, qword [rsp + 0x78]
je 0x504b3f
cmp dword [r13], 1
jne 0x504b3f
mov rsi, qword [r13 + 8]
mov qword [r13 + 8], 0
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x504b3b
mov rcx, qword [rsp + 0x38]
call fcn.00468370
mov qword [rdi + 0x10], rsi
mov rax, qword [rdi + 0x20]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x504db1
mov edx, dword [rcx]
test edx, edx
jle 0x504db1
movabs rax, 0x2a6228c57e8db7cf
mov rbp, rax
not rbp
add rbp, rdx
add rbp, rax
mov eax, edx
and eax, 7
cmp rbp, 7
jae 0x504b83
xor r13d, r13d
jmp 0x504d64
movabs r9, 0xe75a3c2784a8a157
movabs rbp, 0xa13ae1db010e2470
movabs r11, 0x5b1cd544eca1f7c9
movabs rbx, 0x49880b575852e3ac
mov edi, edx
xor edi, 7
and edi, edx
xor r13d, r13d
mov r14, rbx
not r14
movabs rdx, 0x7fffffffffffffe
and rdx, rbx
mov qword [rsp + 0x48], rdx
mov r8, rbp
not r8
movabs rdx, 0x7fffffffffffffd
and rdx, rbp
mov qword [rsp + 0x60], rdx
movabs rdx, 0x7fffffffffffffa
and rdx, r11
mov qword [rsp + 0x70], rdx
movabs r10, 0x7fffffffffffff8
and r10, r9
mov rsi, r13
shl rsi, 5
mov word [rcx + rsi + 0x20], 0
mov rbx, r13
not rbx
mov rsi, rbx
movabs rdx, 0x49880b575852e3ac
and rsi, rdx
mov rbp, r13
and rbp, r14
or rbp, rsi
mov esi, r14d
and esi, 1
add rsi, qword [rsp + 0x48]
xor rsi, rbp
mov ebp, edx
or ebp, r14d
and ebp, r13d
and ebp, 1
or rbp, rsi
shl rbp, 5
mov word [rcx + rbp + 0x20], 0
mov rsi, rbx
movabs rdx, 0xa13ae1db010e2470
and rsi, rdx
mov rbp, r13
and rbp, r8
or rbp, rsi
mov esi, r8d
and esi, 2
add rsi, qword [rsp + 0x60]
xor rsi, rbp
mov ebp, edx
or ebp, r8d
and ebp, r13d
and ebp, 2
or rbp, rsi
shl rbp, 5
mov word [rcx + rbp + 0x20], 0
mov esi, r13d
and esi, 3
mov rbp, r13
xor rbp, 3
or rbp, rsi
shl rbp, 5
mov word [rcx + rbp + 0x20], 0
mov esi, r13d
and esi, 4
mov rbp, r13
xor rbp, 4
or rbp, rsi
shl rbp, 5
mov word [rcx + rbp + 0x20], 0
mov rsi, r11
not rsi
mov rbp, rbx
and rbp, r11
mov rdx, r13
and rdx, rsi
or rdx, rbp
mov ebp, esi
and ebp, 5
add rbp, qword [rsp + 0x70]
xor rbp, rdx
or esi, r11d
and esi, r13d
and esi, 5
or rsi, rbp
shl rsi, 5
mov word [rcx + rsi + 0x20], 0
mov edx, r13d
and edx, 6
mov rsi, r13
xor rsi, 6
or rsi, rdx
shl rsi, 5
mov word [rcx + rsi + 0x20], 0
mov rdx, r9
not rdx
and rbx, r9
mov rsi, r13
and rsi, rdx
or rsi, rbx
mov ebp, edx
and ebp, 7
or rbp, r10
xor rbp, rsi
or edx, r9d
and edx, r13d
and edx, 7
or rdx, rbp
shl rdx, 5
mov word [rcx + rdx + 0x20], 0
add r13, 8
add rdi, 0xfffffffffffffff8
jne 0x504c04
test rax, rax
mov r14, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
je 0x504db1
movabs rdx, 0x78f0220398539b62
mov rbx, r13
shl rbx, 5
add rcx, rbx
add rcx, 0x20
mov rdi, qword [rsp + 0x80]
mov rbp, rdx
not rbp
mov word [rcx], 0
add r13, 1
add rax, rdx
add rcx, 0x20
add rax, rbp
jne 0x504d9c
mov rcx, qword [rsp + 0x38]
cmp byte [rcx + 0x67], 0
je 0x504dd5
xor eax, eax
mov qword [rsp + 0x48], rax
mov r13, qword [rsp + 0x88]
mov esi, 5
jmp 0x504e57
mov rsi, qword [rsp + 0x68]
mov rcx, qword [rsi]
mov edi, r12d
shl rdi, 2
test rcx, rcx
mov r13, qword [rsp + 0x88]
je 0x504dfb
mov rdx, rdi
call fcn.00429840
jmp 0x504e03
mov rcx, rdi
call fcn.00404550
mov rbx, rax
test rax, rax
je 0x504e18
mov rcx, rbx
xor edx, edx
mov r8, rdi
call fcn.005f4c10
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x20], rbx
mov rcx, rsi
mov rdi, qword [rsp + 0x80]
mov rdx, rdi
mov r8d, 4
xor r9d, r9d
call fcn.004d0800
mov esi, eax
mov eax, dword [rsp + 0x34]
mov dword [r15 + 0x2c], eax
mov rcx, qword [rsp + 0x38]
test rdi, rdi
je 0x504e64
mov rdx, rdi
call fcn.00468370
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0x40]
xor ebx, ebx
test eax, eax
sete bl
cmp esi, 4
cmovne ebx, eax
xor eax, eax
test ebx, ebx
sete al
lea edx, [rax*4 + 0x1f]
mov r8d, dword [rsp + 0x34]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
mov dword [rsp + 0x40], esi
jle 0x504ed2
lea ebp, [rax + 1]
mov dword [rcx + 0x90], ebp
mov rcx, qword [rcx + 0x88]
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 byte [rcx + rax*8 + 1], 0
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x504ee2
mov dword [rsp + 0x20], 0
xor r9d, r9d
call fcn.0047df60
mov rdi, qword [rsp + 0x58]
mov ecx, dword [rdi + 0x38]
mov ebp, ecx
not ebp
mov edx, ebp
and edx, 0x983302d5
mov eax, ecx
and eax, 0x67ccfd2a
or eax, edx
xor eax, 0x98330ad5
mov edx, ecx
and edx, 0x800
or edx, eax
mov dword [rdi + 0x38], edx
cmp dword [r14 + 0x50], 0
jne 0x504f2a
mov rdx, qword [rsp + 0x68]
mov eax, dword [rdx + 0x44]
add eax, 0xffffffff
mov dword [rdx + 0x44], eax
mov dword [r14 + 0x10], eax
cmp dword [rsp + 0x44], 0
jle 0x504f62
mov eax, ecx
and eax, 0x100000
jne 0x504f62
mov al, 1
test al, al
je 0x504f62
mov eax, ebp
not eax
and ebp, 0x2701a027
and ecx, 0xd8fe5fd8
or ecx, ebp
xor ecx, 0x2705a827
and eax, 0x40800
or eax, ecx
mov dword [rdi + 0x38], eax
movsxd rcx, dword [r14 + 0x50]
mov qword [rsp + 0x38], rcx
add r12d, ecx
mov dword [r14 + 0x50], r12d
movsxd rsi, r12d
mov rdi, qword [r14 + 0x58]
mov rax, qword [r13 + 8]
mov rbp, qword [rax]
shl rsi, 2
lea rdx, [rsi + rsi*4]
add rdx, 0x10
mov rax, qword [rbp]
mov rcx, qword [rax]
call fcn.00429840
test rax, rax
je 0x505052
mov r13, rax
mov qword [rsp + 0x78], r14
lea rax, [rsi + rsi*4]
mov rcx, qword [rbp + 0x70]
mov qword [r13], rcx
mov qword [r13 + 8], rax
mov qword [rbp + 0x70], r13
add r13, 0x10
test rdi, rdi
je 0x504fd5
mov r8, qword [rdi - 8]
mov rcx, r13
mov rdx, rdi
call fcn.005f4c20
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x58], r13
mov rdi, qword [rsp + 0x58]
movzx eax, word [rdi + 0x3c]
cmp eax, dword [rsp + 0x44]
mov esi, dword [rsp + 0x118]
mov rbp, qword [rsp + 0x50]
jle 0x5053dc
mov rcx, qword [rsp + 0x38]
lea r12, [rcx + rcx*4]
lea rcx, [r12*4]
add rcx, r13
mov qword [rsp + 0x60], rcx
cmp ebx, 1
mov bl, 0x25
adc bl, 0
movsxd r14, dword [rsp + 0x44]
mov rcx, qword [rdi + 0x48]
mov rcx, qword [rcx + r14*8]
cmp qword [rcx], r15
je 0x50507b
mov dword [rsp + 0x38], 0
mov rbx, qword [rsp + 0x60]
add r14, 1
movzx ecx, ax
cmp r14, rcx
jl 0x505232
jmp 0x5053dc
mov qword [r14 + 0x58], 0
mov dword [r14 + 0x50], 0
mov esi, dword [rsp + 0x118]
mov r13, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x68]
jmp 0x505463
cmp dword [rsp + 0x40], 1
jne 0x5050d4
mov r8d, dword [rsp + 0x34]
mov eax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
mov dword [rsp + 0x70], r8d
jle 0x5050eb
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rbp + 0x90], edx
mov rdx, qword [rbp + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x87
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], esi
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x505108
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x505112
mov r9d, dword [rax]
mov dword [rsp + 0x38], 1
jmp 0x50511d
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x87
mov r9d, esi
call fcn.0047df60
mov rbp, qword [rsp + 0x50]
mov dword [rsp + 0x38], 0
jmp 0x505182
mov dword [rsp + 0x38], 0
xor r9d, r9d
mov r8d, dword [rsp + 0x34]
mov eax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
mov dword [rsp + 0x70], r8d
jle 0x50516c
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rbp + 0x90], edx
mov rdx, qword [rbp + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x5e
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], r9d
mov dword [rdx + rcx*8 + 0xc], esi
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x505182
mov dword [rsp + 0x20], esi
mov rcx, rbp
mov edx, 0x5e
call fcn.0047df60
mov rbp, qword [rsp + 0x50]
mov dword [r13 + r12*4 + 4], eax
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x5051bf
lea ecx, [rax + 1]
mov dword [rbp + 0x90], ecx
mov rcx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x32
mov dword [rcx + rax*8 + 4], esi
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x5051df
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x32
mov r8d, esi
xor r9d, r9d
call fcn.0047df60
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x70]
mov rax, qword [rsp + 0x60]
mov dword [rax], ecx
mov byte [r13 + r12*4 + 0x10], bl
mov ecx, dword [rsp + 0x44]
test ecx, ecx
jle 0x50520c
mov eax, esi
sub eax, ecx
mov dword [r13 + r12*4 + 8], eax
mov dword [r13 + r12*4 + 0xc], ecx
jmp 0x505215
mov dword [r13 + r12*4 + 0xc], 0
mov rbx, qword [rsp + 0x60]
add rbx, 0x14
movzx eax, word [rdi + 0x3c]
add r14, 1
movzx ecx, ax
cmp r14, rcx
jge 0x5053dc
mov r13d, dword [rsp + 0x34]
lea r12d, [rsi + 1]
xorps xmm6, xmm6
jmp 0x50528a
lea ecx, [rax + 1]
mov dword [rbp + 0x90], ecx
mov rcx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x32
mov dword [rcx + rax*8 + 4], r12d
movups xmmword [rcx + rax*8 + 8], xmm6
mov rdi, qword [rsp + 0x58]
mov byte [rbx + 0x10], 0xb8
add rbx, 0x14
movzx eax, word [rdi + 0x3c]
add r14, 1
movzx ecx, ax
add r12d, 1
cmp r14, rcx
jge 0x5053dc
mov rcx, qword [rdi + 0x48]
mov rcx, qword [rcx + r14*8]
cmp qword [rcx], r15
jne 0x505276
cmp dword [rsp + 0x40], 1
jne 0x5052e2
mov eax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x50535e
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rbp + 0x90], edx
mov rdx, qword [rbp + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x87
mov dword [rdx + rcx*8 + 4], r13d
mov dword [rdx + rcx*8 + 8], r12d
mov dword [rdx + rcx*8 + 0xc], 0
jmp 0x50533d
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x505376
mov edx, dword [rsp + 0x38]
movsxd rax, edx
add edx, 1
mov dword [rsp + 0x38], edx
mov r9d, dword [rcx + rax*4]
mov eax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x505387
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rbp + 0x90], edx
mov rdx, qword [rbp + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x5e
mov dword [rdx + rcx*8 + 4], r13d
mov dword [rdx + rcx*8 + 8], r9d
mov dword [rdx + rcx*8 + 0xc], r12d
mov qword [rdx + rcx*8 + 0x10], 0
mov dword [rbx + 4], eax
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jg 0x505240
jmp 0x5053b7
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x87
mov r8d, r13d
mov r9d, r12d
jmp 0x505397
xor r9d, r9d
mov eax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jg 0x505310
mov dword [rsp + 0x20], r12d
mov rcx, rbp
mov edx, 0x5e
mov r8d, r13d
call fcn.0047df60
mov rbp, qword [rsp + 0x50]
mov dword [rbx + 4], eax
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jg 0x505240
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x32
mov r8d, r12d
xor r9d, r9d
call fcn.0047df60
mov rbp, qword [rsp + 0x50]
jmp 0x505265
mov edx, dword [rsp + 0x44]
test edx, edx
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x68]
jle 0x505463
mov eax, dword [rdi + 0x38]
not eax
or eax, 0xffeffbff
cmp eax, 0xffffffff
jne 0x505463
mov r8d, dword [r14 + 8]
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x50544f
lea ecx, [rax + 1]
mov dword [rbp + 0x90], ecx
mov rcx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x7d
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x505463
mov dword [rsp + 0x20], edx
mov rcx, rbp
mov edx, 0x7d
xor r9d, r9d
call fcn.0047df60
mov rcx, qword [rbx]
mov rdx, qword [rsp + 0x48]
call fcn.00408130
mov rax, qword [r14 + 0x60]
mov eax, dword [rax + 0x38]
mov ecx, eax
xor ecx, 0xffdfffff
test ecx, eax
je 0x505494
mov eax, dword [r13 + 0x14]
mov ecx, eax
xor ecx, 0xf7ff
test cx, ax
jne 0x50549f
mov rcx, r14
mov rdx, r13
call fcn.005057b0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret