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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
mov qword [rsp + 0x180], rcx
lea r9, [rsp + 0x130]
lea rcx, [rsp + 0xf0]
nop dword [rax + rax]
movzx eax, byte [rdx]
movzx r8d, byte [rdx + 1]
add rcx, 4
add rdx, 4
shl r8d, 0x10
shl eax, 0x18
or eax, r8d
movzx r8d, byte [rdx - 1]
or eax, r8d
movzx r8d, byte [rdx - 2]
shl r8d, 8
or eax, r8d
mov dword [rcx - 4], eax
cmp r9, rcx
jne 0x51c0f0
lea r8, [rsp + 0xb0]
mov rcx, qword [rsp + 0x180]
xor eax, eax
mov qword [rsp + 0xa8], r8
mov edx, dword [rcx + rax]
mov dword [r8 + rax], edx
add rax, 4
cmp rax, 0x20
jne 0x51c140
mov rax, qword [rsp + 0x180]
mov dword [rsp + 0xe4], 0x299f31d0
mov eax, dword [rax + 0x20]
mov ebx, eax
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x180]
xor ebx, 0x243f6a88
mov eax, dword [rax + 0x24]
mov dword [rsp + 0xd0], ebx
xor eax, 0x85a308d3
mov dword [rsp + 0x18], eax
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0x180]
mov eax, dword [rax + 0x28]
mov r12d, eax
mov rax, qword [rsp + 0x180]
xor r12d, 0x13198a2e
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0xd8], r12d
mov r14d, eax
mov dword [rsp + 8], eax
movabs rax, 0xec4e6c89082efa98
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x180]
xor r14d, 0x3707344
mov dword [rsp + 0xdc], r14d
mov edx, dword [rax + 0x3c]
test edx, edx
jne 0x51c900
mov rsi, qword [rsp + 0x180]
mov edx, dword [rax + 0x30]
mov r13d, dword [rsi + 0x34]
mov eax, edx
xor edx, 0x299f31d0
mov dword [rsp + 0x14], edx
xor eax, 0xa4093822
mov esi, r13d
xor r13d, 0xec4e6c89
xor esi, 0x82efa98
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x24], esi
mov esi, dword [rsp + 0xc0]
mov edx, dword [rsp + 0xb0]
xor edi, edi
mov ecx, 0x85a308d3
mov r10d, 0x243f6a88
mov r9d, 3
mov dword [rsp + 0x7c], 0xbe5466cf
lea r11, [0x0091acb0]
mov dword [rsp + 8], esi
mov esi, dword [rsp + 0xb4]
mov ebp, 2
mov r8d, 4
mov dword [rsp + 0x78], 0x34e90c6c
mov r13d, 6
lea r15, [0x0091ac60]
mov dword [rsp + 0xc], esi
mov esi, dword [rsp + 0xc4]
mov dword [rsp + 0x74], 0x452821e6
mov dword [rsp + 0x10], esi
mov esi, dword [rsp + 0xb8]
mov dword [rsp + 0x70], 0x38d01377
mov dword [rsp + 0x1c], esi
mov esi, dword [rsp + 0xc8]
mov dword [rsp + 0x6c], 0xc0ac29b7
mov dword [rsp + 0x20], esi
mov esi, dword [rsp + 0xbc]
mov dword [rsp + 0x68], 0xc97c50dd
mov dword [rsp + 0x28], esi
mov esi, dword [rsp + 0xcc]
mov dword [rsp + 0x64], 0x3f84d5b5
mov dword [rsp + 0x2c], esi
mov esi, 1
mov dword [rsp + 0x60], 0xb5470917
mov dword [rsp + 0x5c], 0x82efa98
mov dword [rsp + 0x58], 0xec4e6c89
mov dword [rsp + 0x54], 0xa4093822
mov dword [rsp + 0x50], 0x299f31d0
mov dword [rsp + 0x4c], 0x13198a2e
mov dword [rsp + 0x48], 0x3707344
mov dword [rsp + 0x80], 7
mov dword [rsp + 0x84], 0xe
mov dword [rsp + 0x88], 0xf
mov dword [rsp + 0x8c], 0xc
mov dword [rsp + 0x34], r12d
mov r12d, edx
mov edx, r10d
movsxd r10, edi
mov dword [rsp + 0x90], 0xd
movsxd rdi, r9d
movsxd r9, esi
mov esi, 5
mov dword [rsp + 0x94], 8
mov dword [rsp + 0x98], 9
mov dword [rsp + 0x9c], 0xa
mov dword [rsp + 0xa0], 0xb
mov dword [rsp + 0x38], r14d
jmp 0x51c4ed
movzx edi, byte [r11 + 3]
movzx ebp, byte [r11 + 2]
add r11, 0x10
movzx r9d, byte [r11 - 0xf]
movzx r10d, byte [r11 - 0x10]
movsxd r8, edi
mov esi, dword [r15 + r8*4]
movsxd r8, ebp
movsxd rdx, r9d
mov ecx, dword [r15 + rdx*4]
movsxd rdx, r10d
mov dword [rsp + 0x48], esi
mov esi, dword [r15 + r8*4]
mov edx, dword [r15 + rdx*4]
mov dword [rsp + 0x4c], esi
movzx esi, byte [r11 - 0xb]
movsxd r8, esi
mov r8d, dword [r15 + r8*4]
mov dword [rsp + 0x50], r8d
movzx r8d, byte [r11 - 0xc]
movsxd r13, r8d
mov r14d, dword [r15 + r13*4]
movzx r13d, byte [r11 - 9]
mov dword [rsp + 0x54], r14d
mov r14d, dword [r15 + r13*4]
mov dword [rsp + 0x80], r13d
movzx r13d, byte [r11 - 0xa]
mov dword [rsp + 0x58], r14d
movsxd r14, r13d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x5c], r14d
movzx r14d, byte [r11 - 1]
mov dword [rsp + 0x88], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x60], r14d
movzx r14d, byte [r11 - 2]
mov dword [rsp + 0x84], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x64], r14d
movzx r14d, byte [r11 - 3]
mov dword [rsp + 0x90], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x68], r14d
movzx r14d, byte [r11 - 4]
mov dword [rsp + 0x8c], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x6c], r14d
movzx r14d, byte [r11 - 7]
mov dword [rsp + 0x98], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x70], r14d
movzx r14d, byte [r11 - 8]
mov dword [rsp + 0x94], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x74], r14d
movzx r14d, byte [r11 - 5]
mov dword [rsp + 0xa0], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x78], r14d
movzx r14d, byte [r11 - 6]
mov dword [rsp + 0x9c], r14d
mov r14d, dword [r15 + r14*4]
mov dword [rsp + 0x7c], r14d
xor ecx, dword [rsp + r10*4 + 0xf0]
mov r10d, dword [rsp + 8]
xor edx, dword [rsp + r9*4 + 0xf0]
add ecx, r10d
add r12d, ecx
mov ecx, dword [rsp + 0x48]
xor ecx, dword [rsp + rbp*4 + 0xf0]
xor eax, r12d
add r12d, edx
mov edx, dword [rsp + 0x14]
mov ebp, dword [rsp + 0x54]
rol eax, 0x10
lea r14d, [rax + rbx]
xor r10d, r14d
ror r10d, 0xc
lea ebx, [r12 + r10]
mov r12d, dword [rsp + 0x58]
xor eax, ebx
mov dword [rsp + 0x3c], ebx
mov ebx, ecx
mov ecx, dword [rsp + 0x10]
ror eax, 8
add ebx, ecx
add ebx, dword [rsp + 0xc]
add r14d, eax
mov dword [rsp + 0x40], eax
xor edx, ebx
xor r10d, r14d
mov dword [rsp + 0x44], r14d
mov r9d, edx
mov edx, dword [rsp + 0x18]
ror r10d, 7
rol r9d, 0x10
add edx, r9d
xor ecx, edx
mov r14d, edx
mov edx, dword [rsp + 0x4c]
xor edx, dword [rsp + rdi*4 + 0xf0]
mov eax, ecx
add ebx, edx
mov ecx, dword [rsp + 0x20]
mov edx, dword [rsp + 0x50]
ror eax, 0xc
xor edx, dword [rsp + r8*4 + 0xf0]
mov r8d, dword [rsp + 0x24]
lea edi, [rbx + rax]
add edx, ecx
add edx, dword [rsp + 0x1c]
xor r9d, edi
mov dword [rsp + 0xc], edi
ror r9d, 8
add r14d, r9d
xor eax, r14d
ror eax, 7
xor r8d, edx
xor ebp, dword [rsp + rsi*4 + 0xf0]
xor r12d, dword [rsp + r13*4 + 0xf0]
mov ebx, r8d
mov r8d, dword [rsp + 0x34]
add ebp, edx
mov edx, dword [rsp + 0x30]
rol ebx, 0x10
mov esi, dword [rsp + 0x38]
movsxd r13, dword [rsp + 0x80]
add r8d, ebx
xor ecx, r8d
mov edi, r8d
mov r8d, dword [rsp + 0x2c]
ror ecx, 0xc
add ebp, ecx
add r12d, r8d
add r12d, dword [rsp + 0x28]
xor ebx, ebp
xor edx, r12d
ror ebx, 8
rol edx, 0x10
add edi, ebx
add esi, edx
xor ecx, edi
xor r8d, esi
ror ecx, 7
ror r8d, 0xc
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x5c]
xor ecx, dword [rsp + r13*4 + 0xf0]
movsxd r13, dword [rsp + 0x84]
add r12d, ecx
mov ecx, dword [rsp + 0x60]
add r12d, r8d
xor ecx, dword [rsp + r13*4 + 0xf0]
movsxd r13, dword [rsp + 0x88]
xor edx, r12d
add r12d, ecx
mov ecx, dword [rsp + 0x64]
ror edx, 8
add r12d, r10d
add esi, edx
xor r8d, esi
ror r8d, 7
xor ebx, r12d
xor ecx, dword [rsp + r13*4 + 0xf0]
rol ebx, 0x10
add r12d, ecx
add r14d, ebx
xor r10d, r14d
mov r13d, r14d
mov r14d, dword [rsp + 0x44]
ror r10d, 0xc
lea ecx, [r12 + r10]
mov r12d, dword [rsp + 0x70]
xor ebx, ecx
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x68]
ror ebx, 8
add r13d, ebx
mov dword [rsp + 0x24], ebx
movsxd rbx, dword [rsp + 0x90]
xor r10d, r13d
mov dword [rsp + 0x18], r13d
ror r10d, 7
mov dword [rsp + 8], r10d
movsxd r10, dword [rsp + 0x8c]
xor ecx, dword [rsp + r10*4 + 0xf0]
add ebp, ecx
mov ecx, dword [rsp + 0x6c]
xor ecx, dword [rsp + rbx*4 + 0xf0]
add ebp, r8d
xor r9d, ebp
add ebp, ecx
rol r9d, 0x10
lea r10d, [r14 + r9]
xor r8d, r10d
ror r8d, 0xc
lea ecx, [rbp + r8]
xor r9d, ecx
mov dword [rsp + 0x1c], ecx
mov ecx, dword [rsp + 0x74]
ror r9d, 8
lea ebx, [r10 + r9]
mov dword [rsp + 0x14], r9d
xor r8d, ebx
ror r8d, 7
mov dword [rsp + 0x2c], r8d
movsxd r8, dword [rsp + 0x94]
xor r12d, dword [rsp + r8*4 + 0xf0]
add r12d, dword [rsp + 0x3c]
add r12d, eax
movsxd r8, dword [rsp + 0x98]
xor edx, r12d
rol edx, 0x10
add edi, edx
xor eax, edi
ror eax, 0xc
xor ecx, dword [rsp + r8*4 + 0xf0]
add r12d, ecx
add r12d, eax
xor edx, r12d
ror edx, 8
add edi, edx
mov dword [rsp + 0x30], edx
xor eax, edi
mov dword [rsp + 0x34], edi
mov edx, eax
movsxd rax, dword [rsp + 0x9c]
ror edx, 7
mov dword [rsp + 0x10], edx
mov edx, dword [rsp + 0x78]
mov edi, dword [rsp + 0x20]
xor edx, dword [rsp + rax*4 + 0xf0]
mov eax, dword [rsp + 0x40]
add edx, dword [rsp + 0xc]
add edx, edi
movsxd r8, dword [rsp + 0xa0]
xor eax, edx
rol eax, 0x10
add esi, eax
xor edi, esi
mov ecx, edi
mov edi, dword [rsp + 0x7c]
xor edi, dword [rsp + r8*4 + 0xf0]
ror ecx, 0xc
add edx, edi
lea edi, [rdx + rcx]
xor eax, edi
mov dword [rsp + 0xc], edi
ror eax, 8
add esi, eax
xor ecx, esi
mov dword [rsp + 0x38], esi
lea rsi, [0x0091ad80]
ror ecx, 7
mov dword [rsp + 0x20], ecx
cmp rsi, r11
jne 0x51c3b8
mov dword [rsp + 0xe0], eax
mov eax, dword [rsp + 0xc]
mov edx, r12d
mov r14d, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x34]
mov dword [rsp + 0xd0], ebx
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0x10]
mov esi, dword [rsp + 8]
mov dword [rsp + 0xd8], r12d
mov dword [rsp + 0xc4], eax
mov eax, dword [rsp + 0x14]
mov dword [rsp + 0xc0], esi
mov r8, qword [rsp + 0x180]
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0x18]
mov dword [rsp + 0xdc], r14d
mov r9, qword [rsp + 0xa8]
mov dword [rsp + 0xd4], eax
mov eax, dword [rsp + 0x1c]
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0xcc], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0xec], eax
xor eax, eax
jmp 0x51c8a4
mov edx, dword [r9 + rax*4]
mov rcx, rax
add rax, 1
and ecx, 7
xor dword [r8 + rcx*4], edx
cmp rax, 0x10
jne 0x51c8a0
mov edx, dword [rsp + 0xa4]
mov rcx, qword [rsp + 0x180]
mov eax, 1
jmp 0x51c8d7
and edx, 3
mov edx, dword [rcx + rdx*4 + 0x20]
xor dword [rcx + rax*4 - 4], edx
mov edx, eax
add rax, 1
cmp rax, 9
jne 0x51c8d0
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x30], 0xec4e6c89
mov eax, 0xa4093822
mov dword [rsp + 0x14], 0x299f31d0
mov dword [rsp + 0x24], 0x82efa98
jmp 0x51c234