Function at 0x418410
Capabilities:
Read file via mapping

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov eax, dword [rdx]
mov r14, rcx
mov r15, rdx
and eax, 3
cmp eax, 1
je 0x418710
cmp byte [rdx + 4], 0
jne 0x4186e0
mov rdi, qword [rcx + 0x180]
cmp rdi, 0xffffffffffffffff
je 0x4185f0
mov rsi, qword [r15 + 0x10]
cmp rsi, rdi
jle 0x4185cc
mov r8d, dword [r14 + 0x170]
xor eax, eax
test r8d, r8d
je 0x4185bd
lea ecx, [r8 - 5]
lea eax, [r8 - 1]
mov r9, qword [r14 + 0x178]
shr ecx, 2
add ecx, 1
cmp eax, 9
lea edx, [rcx*4]
jbe 0x418702
pxor xmm2, xmm2
mov rax, r9
xor r10d, r10d
pxor xmm3, xmm3
movdqu xmm1, xmmword [rax + 0x10]
add r10d, 1
add rax, 0x40
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm4, xmmword [rax - 0x10]
shufps xmm0, xmm1, 0x88
movdqu xmm1, xmmword [rax - 0x20]
cmp ecx, r10d
shufps xmm1, xmm4, 0x88
shufps xmm0, xmm1, 0x88
movdqa xmm1, xmm0
punpckldq xmm0, xmm3
punpckhdq xmm1, xmm3
paddq xmm0, xmm1
paddq xmm2, xmm0
ja 0x4184a1
movdqa xmm0, xmm2
cmp edx, r8d
psrldq xmm0, 8
paddq xmm2, xmm0
movq rax, xmm2
je 0x4185bd
mov ecx, edx
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 1]
cmp ecx, r8d
jae 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 2]
cmp ecx, r8d
jae 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 3]
cmp ecx, r8d
jae 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 4]
cmp r8d, ecx
jbe 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 5]
cmp ecx, r8d
jae 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 6]
cmp r8d, ecx
jbe 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 7]
cmp r8d, ecx
jbe 0x4185bd
shl rcx, 4
mov ecx, dword [r9 + rcx]
add rax, rcx
lea ecx, [rdx + 8]
cmp r8d, ecx
jbe 0x4185bd
shl rcx, 4
add edx, 9
mov ecx, dword [r9 + rcx]
add rax, rcx
cmp r8d, edx
jbe 0x4185bd
shl rdx, 4
mov edx, dword [r9 + rdx]
add rax, rdx
sub rsi, rdi
cmp rsi, rax
cmovg rsi, rax
test rsi, rsi
jne 0x418600
mov qword [r14 + 0x88], 0
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rdx + 0x18]
jmp 0x41844f
mov ebx, dword [0x004593e0]
mov rax, rdi
mov r8, rdi
cqo
mov ebp, dword [r14 + 0x150]
mov rcx, qword [r15 + 8]
idiv rbx
lea rax, [rsi + rdx]
sub r8, rdx
mov qword [rsp + 0x38], rdx
mov r9d, r8d
mov edx, 4
shr r8, 0x20
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
test rax, rax
mov qword [rsp + 0x30], rax
je 0x418732
mov eax, dword [r14 + 0x170]
xor r13d, r13d
xor ebx, ebx
test eax, eax
jne 0x418665
jmp 0x4186af
cmp rsi, rbx
jbe 0x4186af
mov eax, r13d
mov r10, rsi
shl rax, 4
add rax, qword [r14 + 0x178]
sub r10, rbx
mov edx, dword [rax]
mov rcx, qword [rax + 8]
mov rax, qword [rsp + 0x38]
cmp r10, rdx
cmovbe rdx, r10
add r13d, 1
mov r12, rdx
lea rdx, [rax + rbx]
add rdx, qword [rsp + 0x30]
mov r8, r12
add rbx, r12
call sub.msvcrt.dll_memcpy
cmp dword [r14 + 0x170], r13d
ja 0x418660
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
je 0x418732
cmp qword [r14 + 0x180], 0xffffffffffffffff
je 0x418754
mov qword [r14 + 0x88], rsi
jmp 0x4185d7
mov dword [rcx + 0x14c], 1
mov ecx, 1
call fcn.00416500
cdqe
mov qword [r14 + 0x88], rax
jmp 0x4185d7
xor edx, edx
xor eax, eax
jmp 0x4184fd
mov dword [rcx + 0x14c], 0x3ec
mov ecx, 0x3ec
call fcn.00416500
cdqe
mov qword [r14 + 0x88], rax
jmp 0x4185d7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r14 + 0x14c], eax
mov ecx, eax
call fcn.00416500
cdqe
mov qword [r14 + 0x88], rax
jmp 0x4185d7
add rdi, rsi
lea rcx, [0x006e2400]
movzx ebx, bpl
mov qword [r15 + 0x18], rdi
lea rdi, [0x00459400]
call sub.KERNEL32.dll_EnterCriticalSection
mov rax, rbx
shl rax, 4
add rax, rdi
mov r9, qword [rax]
test r9, r9
mov rdx, r9
setne r10b
and edx, 0xf
jne 0x4189f5
test r10b, r10b
je 0x4189f5
mov rax, qword [rax + 8]
cmp ebp, dword [rax]
je 0x4189b9
mov edx, 0x10
cmp ebp, dword [rax + 0x28]
je 0x418b14
cmp rdx, 2
je 0x4188c7
cmp ebp, dword [rax + 0x50]
je 0x418b9d
cmp rdx, 3
je 0x4188c7
cmp ebp, dword [rax + 0x78]
je 0x418b93
cmp rdx, 4
je 0x4188c7
cmp ebp, dword [rax + 0xa0]
je 0x418b8c
cmp rdx, 5
je 0x4188c7
cmp ebp, dword [rax + 0xc8]
je 0x418b85
cmp rdx, 6
je 0x4188c7
cmp ebp, dword [rax + 0xf0]
je 0x418b7e
cmp rdx, 7
je 0x4188c7
cmp ebp, dword [rax + 0x118]
je 0x418b77
cmp rdx, 8
je 0x4188c7
cmp ebp, dword [rax + 0x140]
je 0x418b70
cmp rdx, 9
je 0x4188c7
cmp ebp, dword [rax + 0x168]
je 0x418b69
cmp rdx, 0xa
je 0x4188c7
cmp ebp, dword [rax + 0x190]
je 0x418b62
cmp rdx, 0xb
je 0x4188c7
cmp ebp, dword [rax + 0x1b8]
je 0x418b5b
cmp rdx, 0xc
je 0x4188c7
cmp ebp, dword [rax + 0x1e0]
je 0x418b54
cmp rdx, 0xd
je 0x4188c7
cmp ebp, dword [rax + 0x208]
je 0x418b4d
cmp rdx, 0xe
je 0x4188c7
cmp ebp, dword [rax + 0x230]
je 0x418b46
cmp rdx, 0x10
jne 0x4188c7
cmp ebp, dword [rax + 0x258]
je 0x418b3f
mov rdx, qword [rax + 0x280]
test rdx, rdx
jne 0x4189a4
jmp 0x418a38
cmp ebp, dword [rdx + 0x28]
je 0x418a20
cmp ebp, dword [rdx + 0x50]
je 0x418a27
cmp ebp, dword [rdx + 0x78]
je 0x418a2e
cmp ebp, dword [rdx + 0xa0]
je 0x418a68
cmp ebp, dword [rdx + 0xc8]
je 0x418a7c
cmp ebp, dword [rdx + 0xf0]
je 0x418a72
cmp ebp, dword [rdx + 0x118]
je 0x418a90
cmp ebp, dword [rdx + 0x140]
je 0x418a86
cmp ebp, dword [rdx + 0x168]
je 0x418aa4
cmp ebp, dword [rdx + 0x190]
je 0x418a9a
cmp ebp, dword [rdx + 0x1b8]
je 0x418ab8
cmp ebp, dword [rdx + 0x1e0]
je 0x418aae
cmp ebp, dword [rdx + 0x208]
je 0x418acc
cmp ebp, dword [rdx + 0x230]
je 0x418ac2
cmp ebp, dword [rdx + 0x258]
je 0x418ad6
mov r8d, 1
xor ecx, ecx
mov rdx, qword [rdx + 0x280]
test rdx, rdx
je 0x4189c0
test r8b, r8b
je 0x4189c0
cmp ebp, dword [rdx]
jne 0x4188e0
xor ecx, ecx
nop
add rcx, rdx
sete r8b
jmp 0x418993
mov rcx, rax
nop dword [rax]
test rcx, rcx
je 0x418a38
mov rax, qword [r15]
mov qword [rcx + 8], rax
mov rax, qword [r15 + 8]
mov qword [rcx + 0x10], rax
mov rax, qword [r15 + 0x10]
mov qword [rcx + 0x18], rax
mov rax, qword [r15 + 0x18]
mov qword [rcx + 0x20], rax
lea rcx, [0x006e2400]
call sub.KERNEL32.dll_LeaveCriticalSection
jmp 0x4186cc
mov rax, rbx
shl rax, 4
test rdx, rdx
mov rax, qword [rdi + rax + 8]
je 0x4188c7
cmp ebp, dword [rax]
je 0x4189b9
cmp rdx, 1
jne 0x4187ac
jmp 0x4188c7
mov ecx, 0x28
jmp 0x4189b0
mov ecx, 0x50
jmp 0x4189b0
mov ecx, 0x78
jmp 0x4189b0
mov r12d, r9d
and r12d, 0xf
jne 0x418a4a
test r10b, r10b
jne 0x418ae0
mov r12d, r12d
shl rbx, 4
add r9, 1
lea rdx, [r12 + r12*4]
mov qword [rdi + rbx], r9
lea rcx, [rax + rdx*8]
mov dword [rcx], ebp
jmp 0x4189c5
mov ecx, 0xa0
jmp 0x4189b0
mov ecx, 0xf0
jmp 0x4189b0
mov ecx, 0xc8
jmp 0x4189b0
mov ecx, 0x140
jmp 0x4189b0
mov ecx, 0x118
jmp 0x4189b0
mov ecx, 0x190
jmp 0x4189b0
mov ecx, 0x168
jmp 0x4189b0
mov ecx, 0x1e0
jmp 0x4189b0
mov ecx, 0x1b8
jmp 0x4189b0
mov ecx, 0x230
jmp 0x4189b0
mov ecx, 0x208
jmp 0x4189b0
mov ecx, 0x258
jmp 0x4189b0
mov ecx, 0x288
call fcn.004109f0
test rax, rax
je 0x418ba7
mov rdx, rbx
shl rdx, 4
add rdx, rdi
mov rcx, qword [rdx + 8]
mov qword [rax + 0x280], rcx
mov qword [rdx + 8], rax
mov r9, qword [rdx]
jmp 0x418a4a
mov edx, 1
lea rdx, [rdx + rdx*4]
lea rcx, [rax + rdx*8]
mov rdx, qword [rax + 0x280]
test rcx, rcx
jne 0x4189c0
test rdx, rdx
jne 0x4189a4
jmp 0x4189c0
mov edx, 0xf
jmp 0x418b19
mov edx, 0xe
jmp 0x418b19
mov edx, 0xd
jmp 0x418b19
mov edx, 0xc
jmp 0x418b19
mov edx, 0xb
jmp 0x418b19
mov edx, 0xa
jmp 0x418b19
mov edx, 9
jmp 0x418b19
mov edx, 8
jmp 0x418b19
mov edx, 7
jmp 0x418b19
mov edx, 6
jmp 0x418b19
mov edx, 5
jmp 0x418b19
mov edx, 4
jmp 0x418b19
mov edx, 3
jmp 0x418b19
mov edx, 2
jmp 0x418b19
lea rdx, [0x0044e470]
mov ecx, 0xe
call fcn.00416440
nop
nop dword [rax]