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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x178
mov r11, qword [rcx + 0x20]
mov eax, 0x20
sub rax, r11
mov qword [rsp + 0x110], r11
mov rbx, r8
mov rdi, rcx
cmp r8, rax
jae 0x140303361
add rcx, r11
call fcn.140336c00
mov rax, qword [rsp + 0x110]
add rax, rbx
jmp 0x140304936
cmp qword [rsp + 0x1d0], 0
mov eax, dword [rcx + 0x28]
mov r14d, dword [rcx + 0x6c]
mov r13d, dword [rcx + 0x70]
mov r12d, dword [rcx + 0x74]
mov esi, dword [rcx + 0x78]
mov r8d, dword [rdi + 0xbc]
mov r9d, dword [rdi + 0xb0]
mov r10d, dword [rdi + 0xb4]
mov edx, dword [rdi + 0xb8]
mov ebx, dword [rdi + 0xc0]
mov ebp, dword [rdi + 0x80]
mov r15d, dword [rdi + 0x84]
mov qword [rsp + 0x100], rax
mov eax, dword [rcx + 0x2c]
mov qword [rsp + 0xf8], rax
mov eax, dword [rcx + 0x30]
mov qword [rsp + 0xf0], rax
mov eax, dword [rcx + 0x34]
mov qword [rsp + 0xe8], rax
mov eax, dword [rcx + 0x38]
mov qword [rsp + 0xe0], rax
mov eax, dword [rcx + 0x3c]
mov qword [rsp + 0x68], rax
mov eax, dword [rcx + 0x40]
mov qword [rsp + 0xd8], rax
mov eax, dword [rcx + 0x44]
mov qword [rsp + 0x150], rax
mov eax, dword [rcx + 0x48]
mov qword [rsp + 0xd0], rax
mov eax, dword [rcx + 0x4c]
mov qword [rsp + 0x140], rax
mov eax, dword [rcx + 0x50]
mov qword [rsp + 0x90], rax
mov eax, dword [rcx + 0x54]
mov qword [rsp + 0x128], rax
mov eax, dword [rcx + 0x58]
mov qword [rsp + 0x98], rax
mov eax, dword [rcx + 0x5c]
mov qword [rsp + 0xa0], rax
mov eax, dword [rcx + 0x60]
mov qword [rsp + 0x118], rax
mov eax, dword [rcx + 0x64]
mov qword [rsp + 0x130], rax
mov eax, dword [rcx + 0x68]
mov ecx, dword [rcx + 0x7c]
mov qword [rsp + 0x108], rcx
mov ecx, dword [rdi + 0x88]
mov qword [rsp + 0x60], rcx
mov ecx, dword [rdi + 0x8c]
mov qword [rsp + 0x78], rcx
mov ecx, dword [rdi + 0x90]
mov qword [rsp + 0x40], rcx
mov ecx, dword [rdi + 0x94]
mov qword [rsp + 0x48], rcx
mov ecx, dword [rdi + 0x98]
mov qword [rsp + 0xa8], rcx
mov ecx, dword [rdi + 0x9c]
mov qword [rsp + 0xb0], rcx
mov ecx, dword [rdi + 0xa0]
mov qword [rsp + 0x88], rcx
mov ecx, dword [rdi + 0xa4]
mov qword [rsp + 0x70], rcx
mov ecx, dword [rdi + 0xa8]
mov dword [rsp + 0x2c], ecx
mov ecx, dword [rdi + 0xac]
mov dword [rsp + 0x24], r8d
mov r8d, dword [rdi + 0xc4]
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0xb8], rax
mov dword [rsp + 0x1d8], r9d
mov dword [rsp + 0x34], r10d
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x28], r8d
jbe 0x1403047ab
mov rbx, qword [rsp + 0x1d0]
lea rcx, [r11 + rdi]
mov rdx, qword [rsp + 0x1c8]
mov eax, 0x20
sub rax, r11
cmp rax, rbx
cmovbe rbx, rax
mov r8, rbx
call fcn.140336c00
mov r11, qword [rsp + 0x110]
mov rax, qword [rsp + 0x1d0]
add r11, rbx
add qword [rsp + 0x1c8], rbx
sub rax, rbx
mov ebx, dword [rsp + 0x20]
mov qword [rsp + 0x110], r11
mov qword [rsp + 0x1d0], rax
cmp r11, 0x20
jne 0x140304780
mov eax, dword [rdi]
xor ebx, dword [rsp + 0x88]
mov r11d, dword [rsp + 0x28]
xor ebx, ebp
xor r11d, dword [rsp + 0x70]
xor ebx, dword [rsp + 0x118]
xor r11d, r15d
xor ebx, dword [rsp + 0xd8]
xor r11d, dword [rsp + 0x130]
xor r11d, dword [rsp + 0x150]
mov r10d, dword [rsp + 0x24]
mov r8d, r11d
xor r8d, dword [rsp + 0x34]
mov edx, r11d
xor edx, dword [rsp + 0x1d8]
xor r10d, dword [rsp + 0xb0]
xor edx, dword [rsp + 0x40]
xor r10d, dword [rsp + 0x108]
xor edx, r13d
xor edx, dword [rsp + 0x90]
xor edx, dword [rsp + 0xf0]
xor r10d, dword [rsp + 0xa0]
xor r10d, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x38]
xor r9d, dword [rsp + 0xa8]
mov ecx, dword [rsp + 0x30]
xor r9d, esi
xor ecx, dword [rsp + 0x78]
xor r9d, dword [rsp + 0x98]
xor ecx, r14d
xor ecx, dword [rsp + 0x140]
xor ecx, dword [rsp + 0xf8]
xor r9d, dword [rsp + 0xe0]
xor dword [rsp + 0xf0], ecx
xor dword [rsp + 0x68], r9d
xor dword [rsp + 0xd8], r10d
xor dword [rsp + 0x150], ebx
xor dword [rsp + 0x90], ecx
bswap eax
mov dword [rsp + 0x160], eax
mov eax, dword [rdi + 4]
bswap eax
mov dword [rsp + 0x54], eax
mov eax, dword [rdi + 8]
bswap eax
mov dword [rsp + 0x164], eax
mov eax, dword [rdi + 0xc]
bswap eax
mov dword [rsp + 0x168], eax
mov eax, dword [rdi + 0x10]
bswap eax
mov dword [rsp + 0xc8], eax
mov eax, dword [rdi + 0x14]
bswap eax
mov dword [rsp + 0x50], eax
mov eax, dword [rdi + 0x18]
bswap eax
mov dword [rsp + 0x80], eax
mov eax, dword [rdi + 0x1c]
mov edi, r11d
xor edi, dword [rsp + 0x2c]
bswap eax
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x48]
xor r8d, eax
mov eax, edi
xor eax, dword [rsp + 0x60]
xor r8d, r12d
xor eax, dword [rsp + 0xb8]
xor eax, dword [rsp + 0xd0]
xor eax, dword [rsp + 0x100]
xor r8d, dword [rsp + 0x128]
xor r8d, dword [rsp + 0xe8]
xor dword [rsp + 0xf8], eax
xor dword [rsp + 0x140], eax
xor dword [rsp + 0x100], r11d
xor dword [rsp + 0xe8], edx
xor dword [rsp + 0xe0], r8d
xor dword [rsp + 0xd0], r11d
xor dword [rsp + 0x128], edx
xor dword [rsp + 0x98], r8d
xor dword [rsp + 0x40], ecx
xor r13d, ecx
xor dword [rsp + 0x1d8], ecx
xor r14d, eax
xor dword [rsp + 0xa0], r9d
xor esi, r8d
xor dword [rsp + 0x108], r9d
xor r12d, edx
xor dword [rsp + 0x78], eax
xor r15d, ebx
xor dword [rsp + 0x30], eax
xor ebp, r10d
mov rax, qword [rsp + 0x150]
xor dword [rsp + 0x130], ebx
xor dword [rsp + 0xb0], r9d
xor dword [rsp + 0x24], r9d
xor dword [rsp + 0xb8], r11d
xor dword [rsp + 0x48], edx
xor dword [rsp + 0xa8], r8d
xor dword [rsp + 0x34], edx
mov rdx, qword [rsp + 0x130]
xor dword [rsp + 0x38], r8d
mov ecx, edx
mov r8, qword [rsp + 0x140]
mov r9, qword [rsp + 0x128]
xor dword [rsp + 0x60], r11d
xor ecx, r9d
xor dword [rsp + 0x118], r10d
mov r11d, r9d
xor dword [rsp + 0x70], ebx
xor r11d, eax
xor dword [rsp + 0x28], ebx
mov r9d, edx
xor dword [rsp + 0x88], r10d
xor dword [rsp + 0x20], r10d
xor r9d, dword [rsp + 0x90]
mov r10d, dword [rsp + 0x90]
xor r10d, dword [rsp + 0xf8]
xor r11d, dword [rsp + 0xf0]
mov ebx, dword [rsp + 0xd0]
xor ebx, eax
mov qword [rsp + 0xc0], r13
mov r13d, dword [rsp + 0x98]
xor r13d, eax
mov qword [rsp + 0x110], rsi
xor r13d, dword [rsp + 0xe8]
mov esi, r8d
xor r8d, dword [rsp + 0xc0]
xor esi, eax
xor esi, dword [rsp + 0x100]
mov eax, edx
xor eax, dword [rsp + 0xd0]
mov qword [rsp + 0x138], r12
mov r12d, edx
xor edx, dword [rsp + 0xb8]
xor r12d, dword [rsp + 0xd8]
mov qword [rsp + 0x158], r14
mov r14d, dword [rsp + 0xa0]
xor r14d, dword [rsp + 0xe0]
mov qword [rsp + 0x120], r15
mov r15d, dword [rsp + 0x118]
xor r15d, dword [rsp + 0x68]
mov qword [rsp + 0x130], rdx
mov rdx, qword [rsp + 0x158]
xor eax, edx
mov qword [rsp + 0x140], r8
mov r8, qword [rsp + 0x138]
mov dword [rsp + 0x90], eax
xor r9d, r8d
mov rax, qword [rsp + 0x110]
xor ecx, eax
mov qword [rsp + 0x148], rbp
mov dword [rsp + 0x138], ecx
mov rcx, qword [rsp + 0x98]
xor ecx, dword [rsp + 0x108]
xor dword [rsp + 0xa0], ebp
mov qword [rsp + 0x98], rcx
mov rcx, qword [rsp + 0x120]
mov dword [rsp + 0x84], ebx
mov dword [rsp + 0x16c], r10d
mov dword [rsp + 0x128], r11d
xor eax, dword [rsp + 0xb0]
mov ebp, ecx
xor dword [rsp + 0x118], ecx
mov ebx, ecx
xor edx, dword [rsp + 0x40]
xor ebp, r8d
xor ebx, dword [rsp + 0xb8]
mov r8d, ecx
xor ecx, dword [rsp + 0x60]
xor ebx, dword [rsp + 0x78]
xor r8d, dword [rsp + 0xc0]
xor ebp, dword [rsp + 0xa8]
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x88]
xor dword [rsp + 0x108], eax
mov qword [rsp + 0x120], rcx
mov rcx, qword [rsp + 0x70]
xor dword [rsp + 0x148], ecx
mov eax, ecx
mov qword [rsp + 0x158], rdx
mov rdx, qword [rsp + 0x48]
xor eax, edx
mov dword [rsp + 0xc0], ebx
xor eax, dword [rsp + 0x38]
mov ebx, ecx
xor ebx, dword [rsp + 0x60]
xor r8d, edx
xor ebx, dword [rsp + 0x30]
mov edx, ecx
xor edx, dword [rsp + 0x40]
xor ecx, edi
xor edx, dword [rsp + 0x34]
mov dword [rsp + 0xd0], eax
mov rax, qword [rsp + 0xa8]
xor eax, dword [rsp + 0x24]
mov qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x20]
xor dword [rsp + 0xb0], eax
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x24]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x78]
xor ecx, dword [rsp + 0x1d8]
mov qword [rsp + 0x78], rcx
mov ecx, dword [rsp + 0x28]
xor dword [rsp + 0x88], ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x20], eax
mov eax, ecx
xor eax, dword [rsp + 0x34]
mov dword [rsp + 0x24], eax
mov eax, ecx
xor eax, dword [rsp + 0x1d8]
xor eax, dword [rsp + 0xe8]
mov dword [rsp + 0x1d8], ecx
xor dword [rsp + 0x1d8], edi
mov rdi, qword [rsp + 0xf8]
xor dword [rsp + 0x1d8], edi
mov rdi, qword [rsp + 0xf0]
xor dword [rsp + 0x30], edi
mov edi, dword [rsp + 0x24]
xor edi, dword [rsp + 0xe0]
xor ecx, dword [rsp + 0x100]
mov dword [rsp + 0x24], edi
mov edi, dword [rsp + 0x20]
xor edi, dword [rsp + 0x68]
mov dword [rsp + 0x20], edi
mov edi, dword [rsp + 0x28]
xor edi, dword [rsp + 0xd8]
mov dword [rsp + 0x28], edi
mov edi, dword [rsp + 0x2c]
xor edi, dword [rsp + 0x150]
mov dword [rsp + 0x2c], edi
mov edi, r12d
xor edi, ecx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], edi
mov edi, r12d
xor edi, dword [rsp + 0x84]
xor edi, dword [rsp + 0x1d8]
mov dword [rsp + 0xd8], edi
mov ebx, esi
xor ebx, dword [rsp + 0x30]
mov edi, dword [rsp + 0x2c]
mov dword [rsp + 0xe0], ebx
mov ebx, r12d
xor ebx, r10d
mov r10d, r12d
xor r10d, r11d
xor ebx, eax
xor r10d, dword [rsp + 0x24]
mov r11d, dword [rsp + 0x20]
mov dword [rsp + 0x68], r10d
mov r10d, r13d
xor r10d, r11d
mov dword [rsp + 0xe8], ebx
mov ebx, dword [rsp + 0x28]
xor r11d, dword [rsp + 0xb0]
mov dword [rsp + 0xf0], r10d
mov r10d, r14d
xor r10d, ebx
mov dword [rsp + 0x20], r11d
mov r11, qword [rsp + 0x120]
mov dword [rsp + 0xf8], r10d
mov r10d, r15d
xor r10d, dword [rsp + 0x2c]
mov dword [rsp + 0x100], r10d
mov r10d, dword [rsp + 0x2c]
xor r10d, eax
mov eax, dword [rsp + 0x2c]
xor eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
mov eax, edi
xor dword [rsp + 0x34], edx
xor eax, ecx
xor eax, dword [rsp + 0x48]
xor edi, dword [rsp + 0x70]
mov rcx, qword [rsp + 0xa8]
xor dword [rsp + 0x24], ecx
mov rcx, qword [rsp + 0x88]
xor ebx, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xd0]
xor r10d, eax
mov dword [rsp + 0x38], r10d
mov r10d, ecx
xor r10d, dword [rsp + 0x70]
xor r10d, dword [rsp + 0xc0]
mov dword [rsp + 0x28], ebx
mov ebx, ecx
xor ebx, edx
mov dword [rsp + 0xb8], r10d
mov r10, qword [rsp + 0x158]
mov edx, ecx
xor dword [rsp + 0x48], r10d
xor ecx, r11d
mov dword [rsp + 0x2c], edi
xor ebx, ebp
mov rdi, qword [rsp + 0x78]
xor dword [rsp + 0x1d8], edi
xor edx, edi
mov rdi, qword [rsp + 0x108]
xor edx, r8d
xor dword [rsp + 0xa8], edi
mov qword [rsp + 0x88], rcx
mov dword [rsp + 0x78], edx
mov rdx, qword [rsp + 0x110]
xor eax, edx
mov dword [rsp + 0xd0], eax
mov rax, qword [rsp + 0x148]
xor dword [rsp + 0xb0], eax
mov ecx, eax
xor ecx, r8d
mov r8d, eax
xor r8d, r10d
mov r10d, eax
mov dword [rsp + 0x60], r8d
xor r10d, r11d
mov r8, qword [rsp + 0x130]
xor eax, r8d
mov qword [rsp + 0x148], rax
xor edx, dword [rsp + 0xa0]
xor r10d, dword [rsp + 0x90]
xor r15d, dword [rsp + 0x50]
mov rax, qword [rsp + 0x118]
xor dword [rsp + 0x60], r9d
xor edi, eax
xor r14d, dword [rsp + 0xc8]
mov r11d, eax
xor ecx, dword [rsp + 0x138]
xor ebp, dword [rsp + 0x98]
xor dword [rsp + 0x98], r15d
mov r15, qword [rsp + 0x148]
mov qword [rsp + 0x110], rdx
mov edx, dword [rsp + 0x164]
xor dword [rsp + 0xe0], edx
mov dword [rsp + 0x70], r10d
mov r10, qword [rsp + 0x140]
xor dword [rsp + 0xc0], r10d
xor r11d, r10d
mov r10d, eax
mov qword [rsp + 0x108], rdi
mov edi, eax
xor r10d, esi
mov esi, dword [rsp + 0x40]
xor r10d, r8d
mov eax, dword [rsp + 0x54]
xor edi, r9d
xor dword [rsp + 0xd8], eax
mov eax, dword [rsp + 0x168]
xor dword [rsp + 0xe8], eax
mov r8d, dword [rsp + 0xc8]
xor dword [rsp + 0x68], r8d
mov r8d, dword [rsp + 0x50]
xor dword [rsp + 0xf0], r8d
mov r8d, dword [rsp + 0x80]
xor dword [rsp + 0xf8], r8d
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x58]
xor dword [rsp + 0x100], r8d
xor r9d, dword [rsp + 0x118]
xor esi, dword [rsp + 0x160]
xor r9d, dword [rsp + 0x84]
mov dword [rsp + 0x40], r8d
xor dword [rsp + 0x40], eax
mov eax, r8d
xor r13d, dword [rsp + 0x40]
xor eax, edx
xor r8d, dword [rsp + 0x160]
xor edi, r13d
mov r13d, dword [rsp + 0x138]
xor r10d, r8d
mov edx, dword [rsp + 0x16c]
xor r13d, r14d
xor edx, dword [rsp + 0x54]
mov r14d, dword [rsp + 0x80]
xor r12d, r14d
xor dword [rsp + 0x90], edx
xor r15d, r14d
xor dword [rsp + 0xa0], r12d
mov r12d, r14d
mov edx, dword [rsp + 0x128]
xor r12d, eax
xor dword [rsp + 0xc0], r8d
xor edx, eax
xor r11d, edx
mov qword [rsp + 0x148], r15
mov r15d, r12d
mov dword [rsp + 0x80], r12d
mov r12d, dword [rsp + 0x40]
xor r15d, ecx
mov eax, r14d
mov edx, r14d
xor eax, dword [rsp + 0x54]
mov ecx, r12d
xor edx, dword [rsp + 0x58]
xor dword [rsp + 0x60], eax
xor dword [rsp + 0x70], edx
xor ecx, ebp
mov dword [rsp + 0x58], r15d
mov r15d, dword [rsp + 0xc8]
mov dword [rsp + 0x54], ecx
mov ebp, dword [rsp + 0x50]
mov ecx, r15d
xor ecx, dword [rsp + 0x110]
xor dword [rsp + 0x2c], r15d
xor dword [rsp + 0x88], ebp
xor dword [rsp + 0x48], edx
ror dword [rsp + 0x58], 0x1e
ror dword [rsp + 0x54], 0x1e
mov dword [rsp + 0x138], ecx
mov ecx, ebp
xor ecx, dword [rsp + 0x108]
ror dword [rsp + 0x138], 0x1e
mov dword [rsp + 0x84], ecx
mov ecx, ebp
ror dword [rsp + 0x84], 0x1e
xor ecx, eax
mov dword [rsp + 0x50], ecx
mov eax, ebp
xor eax, r14d
mov ecx, ebp
xor dword [rsp + 0xb8], eax
xor ecx, r8d
xor dword [rsp + 0x1d8], eax
xor ebp, r15d
xor dword [rsp + 0x78], ecx
mov eax, r15d
xor dword [rsp + 0x30], ebp
xor eax, edx
xor dword [rsp + 0x34], eax
mov eax, r15d
xor r15d, dword [rsp + 0xb0]
xor eax, ecx
mov r8d, dword [rsp + 0x80]
xor dword [rsp + 0x20], r8d
mov edx, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x50]
xor edx, ebp
xor r8d, dword [rsp + 0xd0]
xor ebp, ebx
mov ecx, dword [rsp + 0x38]
mov ebx, dword [rsp + 0x20]
xor ecx, eax
mov eax, dword [rsp + 0x28]
xor eax, r12d
ror r15d, 0x1d
xor r12d, dword [rsp + 0xa8]
ror eax, 0x1c
mov dword [rsp + 0x28], eax
mov eax, esi
ror r12d, 0x1d
mov dword [rsp + 0xc8], r15d
mov dword [rsp + 0x40], r12d
mov r12d, dword [rsp + 0x90]
ror edx, 0x1c
ror r8d, 0x1d
shl r12, 0x20
mov dword [rsp + 0x24], edx
lea edx, [rdi + rdi]
ror ebp, 0x1d
ror ecx, 0x1c
ror ebx, 0x1c
mov r15d, r9d
shl r15, 0x20
or r15, rax
mov esi, r10d
mov eax, dword [rsp + 0xd8]
shl rsi, 0x20
or rsi, rax
mov r14d, r11d
mov eax, dword [rsp + 0xe0]
or r12, rax
shl r14, 0x20
mov eax, dword [rsp + 0xe8]
or r14, rax
mov dword [rsp + 0x80], r8d
shl rdx, 0x1f
mov r8, 0xffffffff80000000
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x20], ebx
mov eax, edi
mov rcx, qword [rsp + 0x98]
and rax, r8
or rdx, rax
mov eax, dword [rsp + 0x68]
add rdx, rdx
or rdx, rax
lea eax, [r13*2]
shl rax, 0x1f
lea edi, [rcx + rcx]
mov qword [rsp + 0x68], rax
mov eax, r13d
mov r13, qword [rsp + 0x68]
and rax, r8
or r13, rax
shl rdi, 0x1f
mov eax, dword [rsp + 0xf0]
add r13, r13
or r13, rax
mov eax, ecx
mov rcx, qword [rsp + 0xa0]
and rax, r8
or rdi, rax
mov eax, dword [rsp + 0xf8]
add rdi, rdi
or rdi, rax
mov eax, ecx
and rax, r8
lea ebp, [rcx + rcx]
shl rbp, 0x1f
or rbp, rax
mov eax, dword [rsp + 0x100]
add rbp, rbp
or rbp, rax
and qword [rsp + 0x120], 0
xor rbp, rdx
xor r12, r14
mov rax, r15
or rax, rsi
not rsi
xor rax, r14
and r14, r15
xor rsi, r14
xor r14, r12
and r12, rax
not rax
xor r12, rsi
or rsi, r14
xor r15, rsi
xor r14, r12
and r12, rsi
mov r10d, r15d
xor rsi, rax
ror r10d, 0x1e
mov rax, rdi
not rdi
or rax, r13
xor rax, rdx
and rdx, r13
xor rdi, rdx
xor rdx, rbp
and rbp, rax
not rax
xor rbp, rdi
or rdi, rdx
xor r13, rdi
xor rdx, rbp
xor r13, rsi
xor rdx, r15
xor r10d, edx
shr r15, 0x20
and rbp, rdi
ror r15d, 0x1e
xor rdi, rax
mov rax, rdx
shr rax, 0x20
xor r15d, eax
ror edx, 0x12
ror eax, 0x12
xor edx, r10d
xor eax, r15d
mov r11d, edx
mov r9d, eax
mov edx, esi
mov rax, r13
shr rsi, 0x20
shr rax, 0x20
ror esi, 0x1e
xor esi, eax
ror edx, 0x1e
xor edx, r13d
ror eax, 0x12
xor eax, esi
ror r13d, 0x12
mov ecx, eax
xor r13d, edx
mov r8d, r13d
ror esi, 0x16
xor rsi, rcx
ror edx, 0x16
shl rsi, 0x20
lea r13d, [rcx + rcx]
shl r13, 0x1f
mov eax, edx
xor rax, r8
or rsi, rax
mov eax, ecx
and rax, 0xffffffff80000000
lea ecx, [r8 + r8]
or r13, rax
mov eax, r8d
add r13, r13
shr rax, 0x1f
or r13, rax
or r13, rcx
xor rdi, r12
xor rbp, r14
ror r15d, 0x16
mov edx, r12d
ror r10d, 0x16
ror edx, 0x1e
mov rax, rdi
shr rax, 0x20
xor edx, edi
ror edi, 0x12
xor r15, r9
xor edi, edx
shr r12, 0x20
mov r8d, edi
ror edx, 0x16
ror r12d, 0x1e
xor r12d, eax
shl r15, 0x20
ror eax, 0x12
xor eax, r12d
ror r12d, 0x16
mov ecx, eax
mov eax, edx
xor r12, rcx
xor rax, r8
shl r12, 0x20
or r12, rax
mov edx, r14d
shr r14, 0x20
lea edi, [rcx + rcx]
ror r14d, 0x1e
mov eax, ecx
and rax, 0xffffffff80000000
ror edx, 0x1e
xor edx, ebp
shl rdi, 0x1f
or rdi, rax
lea ecx, [r8 + r8]
mov eax, r8d
add rdi, rdi
shr rax, 0x1f
or rdi, rax
mov rax, rbp
shr rax, 0x20
or rdi, rcx
xor r14d, eax
ror ebp, 0x12
ror eax, 0x12
xor ebp, edx
xor eax, r14d
mov r8d, ebp
mov ecx, eax
ror edx, 0x16
mov eax, edx
lea edx, [r9 + r9]
xor rax, r8
ror r14d, 0x16
xor r14, rcx
shl rdx, 0x1f
shl r14, 0x20
lea ebp, [rcx + rcx]
or r14, rax
shl rbp, 0x1f
mov eax, ecx
lea ecx, [r8 + r8]
and rax, 0xffffffff80000000
or rbp, rax
mov eax, r8d
mov r8, qword [rsp + 0x120]
add rbp, rbp
shr rax, 0x1f
or rbp, rax
mov eax, r10d
xor rax, r11
lea r10, [0x140000000]
or r15, rax
or rbp, rcx
xor r15, qword [r8 + r10 + 0x4675b0]
mov eax, r9d
and rax, 0xffffffff80000000
or rdx, rax
add rdx, rdx
mov eax, r11d
lea ecx, [r11 + r11]
shr rax, 0x1f
or rdx, rax
or rdx, rcx
xor rdx, qword [r8 + r10 + 0x4675f0]
add r8, 8
mov qword [rsp + 0x120], r8
cmp r8, 0x40
jl 0x140303fb6
mov ebx, dword [rsp + 0x88]
mov rax, r15
shr rax, 0x20
mov qword [rsp + 0xd0], rax
mov rax, rsi
shr rax, 0x20
mov qword [rsp + 0x140], rax
mov rax, r12
shr rax, 0x20
mov qword [rsp + 0x90], rax
mov rax, r14
shr rax, 0x20
mov qword [rsp + 0x128], rax
mov rax, rdx
shr rax, 0x20
mov qword [rsp + 0x98], rax
mov rax, r13
shr rax, 0x20
mov qword [rsp + 0xa0], rax
mov rax, rdi
shr rax, 0x20
mov qword [rsp + 0x118], rax
mov rax, rbp
shr rax, 0x20
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x148]
mov eax, eax
mov qword [rsp + 0xe8], r14
mov r14d, dword [rsp + 0xb8]
mov qword [rsp + 0x68], r13
mov r13d, dword [rsp + 0x48]
mov qword [rsp + 0xf0], r12
mov r12d, dword [rsp + 0x78]
mov qword [rsp + 0xf8], rsi
mov esi, dword [rsp + 0x50]
mov qword [rsp + 0xd8], rdi
mov edi, dword [rsp + 0x80]
mov qword [rsp + 0x150], rbp
mov ebp, dword [rsp + 0x40]
mov qword [rsp + 0x100], r15
mov r15d, dword [rsp + 0xc8]
shl rbx, 0x20
or rbx, rax
shl r14, 0x20
mov eax, dword [rsp + 0x70]
or r14, rax
shl r13, 0x20
mov eax, dword [rsp + 0xc0]
or r13, rax
shl r12, 0x20
mov eax, dword [rsp + 0x60]
or r12, rax
shl rsi, 0x20
mov eax, dword [rsp + 0x58]
or rsi, rax
shl rdi, 0x20
mov eax, dword [rsp + 0x54]
or rdi, rax
shl rbp, 0x20
mov eax, dword [rsp + 0x138]
or rbp, rax
shl r15, 0x20
mov eax, dword [rsp + 0x84]
or r15, rax
mov qword [rsp + 0xe0], rdx
and qword [rsp + 0x120], 0
mov rax, r14
xor r15, rsi
or rax, rbx
not r14
xor rax, r12
xor r13, r12
and r12, rbx
xor r14, r12
xor r12, r13
and r13, rax
not rax
xor r13, r14
or r14, r12
xor rbx, r14
xor r12, r13
and r13, r14
mov r10d, ebx
xor r14, rax
ror r10d, 0x1e
mov edx, r14d
mov rax, rbp
or rax, rdi
ror edx, 0x1e
xor rax, rsi
not rbp
and rsi, rdi
xor rbp, rsi
xor rsi, r15
and r15, rax
not rax
xor r15, rbp
or rbp, rsi
xor rdi, rbp
xor rsi, r15
xor rdi, r14
xor rsi, rbx
xor edx, edi
shr r14, 0x20
ror r14d, 0x1e
xor r10d, esi
shr rbx, 0x20
and r15, rbp
xor rbp, rax
ror ebx, 0x1e
mov rax, rsi
ror esi, 0x12
shr rax, 0x20
xor esi, r10d
xor ebx, eax
mov r11d, esi
ror eax, 0x12
mov rsi, 0xffffffff80000000
xor eax, ebx
mov r9d, eax
mov rax, rdi
shr rax, 0x20
xor r14d, eax
ror edi, 0x12
ror eax, 0x12
xor edi, edx
xor eax, r14d
mov r8d, edi
mov ecx, eax
ror r14d, 0x16
xor r14, rcx
ror edx, 0x16
shl r14, 0x20
lea edi, [rcx + rcx]
mov eax, edx
xor rax, r8
shl rdi, 0x1f
or r14, rax
mov eax, ecx
and rax, rsi
lea ecx, [r8 + r8]
or rdi, rax
mov eax, r8d
shr rax, 0x1f
add rdi, rdi
or rdi, rax
or rdi, rcx
xor rbp, r13
ror ebx, 0x16
xor r15, r12
ror r10d, 0x16
mov edx, r13d
mov rax, rbp
shr rax, 0x20
xor rbx, r9
ror edx, 0x1e
xor edx, ebp
shr r13, 0x20
ror ebp, 0x12
xor ebp, edx
ror r13d, 0x1e
xor r13d, eax
mov r8d, ebp
ror eax, 0x12
xor eax, r13d
ror edx, 0x16
mov ecx, eax
mov eax, edx
mov edx, r12d
xor rax, r8
shr r12, 0x20
ror r12d, 0x1e
ror r13d, 0x16
lea ebp, [rcx + rcx]
xor r13, rcx
shl rbp, 0x1f
ror edx, 0x1e
xor edx, r15d
shl r13, 0x20
or r13, rax
shl rbx, 0x20
mov eax, ecx
lea ecx, [r8 + r8]
and rax, rsi
or rbp, rax
mov eax, r8d
shr rax, 0x1f
add rbp, rbp
or rbp, rax
mov rax, r15
shr rax, 0x20
or rbp, rcx
xor r12d, eax
ror r15d, 0x12
ror eax, 0x12
xor r15d, edx
xor eax, r12d
mov r8d, r15d
mov ecx, eax
ror r12d, 0x16
xor r12, rcx
ror edx, 0x16
mov eax, edx
mov rdx, qword [rsp + 0x120]
lea r15d, [rcx + rcx]
xor rax, r8
shl r15, 0x1f
shl r12, 0x20
or r12, rax
mov eax, ecx
and rax, rsi
lea ecx, [r8 + r8]
or r15, rax
lea esi, [r9 + r9]
add r15, r15
shl rsi, 0x1f
mov eax, r8d
lea r8, [0x140000000]
shr rax, 0x1f
or r15, rax
mov eax, r10d
xor rax, r11
or r15, rcx
or rbx, rax
mov eax, r9d
xor rbx, qword [rdx + r8 + 0x467670]
and rax, 0xffffffff80000000
or rsi, rax
add rsi, rsi
lea ecx, [r11 + r11]
mov eax, r11d
shr rax, 0x1f
or rsi, rax
or rsi, rcx
xor rsi, qword [rdx + r8 + 0x4676b0]
add rdx, 8
mov qword [rsp + 0x120], rdx
cmp rdx, 0x40
jl 0x14030434b
mov ecx, dword [rsp + 0x30]
mov rax, rbx
mov edx, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x1d8]
mov r10d, dword [rsp + 0x34]
mov r11d, dword [rsp + 0x2c]
shr rax, 0x20
mov qword [rsp + 0x60], rax
mov rax, r14
shr rax, 0x20
mov qword [rsp + 0x78], rax
mov rax, r13
shr rax, 0x20
mov qword [rsp + 0x40], rax
mov rax, r12
shr rax, 0x20
mov qword [rsp + 0x48], rax
mov rax, rsi
shr rax, 0x20
mov qword [rsp + 0xa8], rax
mov rax, rdi
shr rax, 0x20
mov qword [rsp + 0xb0], rax
mov rax, rbp
shr rax, 0x20
mov qword [rsp + 0x88], rax
mov rax, r15
shr rax, 0x20
mov qword [rsp + 0x108], rdi
mov edi, dword [rsp + 0x24]
mov qword [rsp + 0xb8], rbx
mov ebx, dword [rsp + 0x20]
mov qword [rsp + 0xc0], r13
lea r13, [0x140000000]
mov qword [rsp + 0x158], r14
xor r14d, r14d
mov qword [rsp + 0x70], rax
xor r8d, edx
xor r9d, r10d
mov eax, ecx
not ecx
or eax, r11d
xor eax, r10d
and r10d, r11d
xor ecx, r10d
xor r10d, r9d
and r9d, eax
not eax
xor r9d, ecx
or ecx, r10d
xor r11d, ecx
xor r10d, r9d
and r9d, ecx
xor ecx, eax
mov eax, ebx
not ebx
or eax, edi
xor eax, edx
and edx, edi
xor ebx, edx
xor edx, r8d
and r8d, eax
not eax
xor r8d, ebx
or ebx, edx
xor edi, ebx
xor edx, r8d
and r8d, ebx
xor edx, r11d
xor ebx, eax
ror r11d, 0x1e
xor edi, ecx
xor ebx, r9d
xor r8d, r10d
ror ecx, 0x1e
xor r11d, edx
ror r9d, 0x1e
xor ecx, edi
ror edx, 0x12
xor r9d, ebx
ror edi, 0x12
xor edi, ecx
ror ebx, 0x12
xor ebx, r9d
ror r10d, 0x1e
xor r10d, r8d
ror ecx, 0x16
xor edx, r11d
ror r8d, 0x12
xor r8d, r10d
ror r11d, 0x16
xor r11d, dword [r14 + r13 + 0x4676f0]
mov eax, edi
add eax, eax
ror r9d, 0x16
xor ecx, edi
ror r10d, 0x16
xor r9d, ebx
shr edi, 0x1f
or edi, eax
xor r11d, edx
mov eax, ebx
ror edx, 0x1f
xor edx, dword [r14 + r13 + 0x467710]
add eax, eax
xor r10d, r8d
shr ebx, 0x1f
or ebx, eax
add r14, 4
mov eax, r8d
shr r8d, 0x1f
add eax, eax
or r8d, eax
cmp r14, 0x20
jl 0x140304644
mov r14, qword [rsp + 0x158]
mov r13, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x1d0]
mov dword [rsp + 0x2c], r11d
xor r11d, r11d
mov dword [rsp + 0x24], edi
mov rdi, qword [rsp + 0x1c0]
mov qword [rsp + 0x110], r11
mov dword [rsp + 0x34], r10d
mov dword [rsp + 0x1d8], r9d
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x20], ebx
jmp 0x14030479a
mov ecx, dword [rsp + 0x30]
mov edx, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x1d8]
mov r10d, dword [rsp + 0x34]
test rax, rax
jne 0x14030350b
mov rax, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x100]
mov dword [rdi + 0x28], r11d
mov r11, qword [rsp + 0xf8]
mov dword [rdi + 0x2c], r11d
mov r11, qword [rsp + 0xf0]
mov dword [rdi + 0x30], r11d
mov r11, qword [rsp + 0xe8]
mov dword [rdi + 0x34], r11d
mov r11, qword [rsp + 0xe0]
mov dword [rdi + 0x68], eax
mov rax, qword [rsp + 0x108]
mov dword [rdi + 0x38], r11d
mov r11, qword [rsp + 0x68]
mov dword [rdi + 0x7c], eax
mov rax, qword [rsp + 0x60]
mov dword [rdi + 0x3c], r11d
mov r11, qword [rsp + 0xd8]
mov dword [rdi + 0x88], eax
mov rax, qword [rsp + 0x78]
mov dword [rdi + 0x40], r11d
mov r11, qword [rsp + 0x150]
mov dword [rdi + 0x8c], eax
mov rax, qword [rsp + 0x40]
mov dword [rdi + 0x44], r11d
mov r11, qword [rsp + 0xd0]
mov dword [rdi + 0x90], eax
mov rax, qword [rsp + 0x48]
mov dword [rdi + 0x48], r11d
mov r11, qword [rsp + 0x140]
mov dword [rdi + 0x94], eax
mov rax, qword [rsp + 0xa8]
mov dword [rdi + 0x4c], r11d
mov r11, qword [rsp + 0x90]
mov dword [rdi + 0x98], eax
mov rax, qword [rsp + 0xb0]
mov dword [rdi + 0x50], r11d
mov r11, qword [rsp + 0x128]
mov dword [rdi + 0x9c], eax
mov rax, qword [rsp + 0x88]
mov dword [rdi + 0x54], r11d
mov r11, qword [rsp + 0x98]
mov dword [rdi + 0xa0], eax
mov rax, qword [rsp + 0x70]
mov dword [rdi + 0x58], r11d
mov r11, qword [rsp + 0xa0]
mov dword [rdi + 0xa4], eax
mov eax, dword [rsp + 0x2c]
mov dword [rdi + 0x5c], r11d
mov r11, qword [rsp + 0x118]
mov dword [rdi + 0xa8], eax
mov eax, dword [rsp + 0x24]
mov dword [rdi + 0x60], r11d
mov r11, qword [rsp + 0x130]
mov dword [rdi + 0xbc], eax
mov rax, qword [rsp + 0x110]
mov dword [rdi + 0x64], r11d
mov dword [rdi + 0x6c], r14d
mov dword [rdi + 0x70], r13d
mov dword [rdi + 0x74], r12d
mov dword [rdi + 0x78], esi
mov dword [rdi + 0x80], ebp
mov dword [rdi + 0x84], r15d
mov dword [rdi + 0xac], ecx
mov dword [rdi + 0xb0], r9d
mov dword [rdi + 0xb4], r10d
mov dword [rdi + 0xb8], edx
mov dword [rdi + 0xc0], ebx
mov dword [rdi + 0xc4], r8d
mov qword [rdi + 0x20], rax
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
jmp 0x140303308