Function at 0x540950
Capabilities:
Get file size

Disassembly:
push rbp
sub rsp, 0x60
mov rbp, rsp
mov qword [rbp + 0x70], rcx
mov qword [rbp + 0x78], rdx
mov eax, dword [rbp + 0x4c]
cmp eax, dword [rbp + 0x48]
jle 0x540971
lea rcx, [rbp + 0x4c]
call fcn.0053f220
mov eax, dword [rbp + 0x30]
sub eax, 0x278
mov dword [rbp + 0x34], eax
mov eax, dword [rbp + 0x30]
imul eax, eax, 0x2bc
mov dword [rbp + 0x30], eax
mov byte [rbp + 0x5f], 0
mov dword [rbp + 0x44], 0
mov eax, dword [rbp + 0x38]
sub eax, dword [rbp + 0x30]
cmp eax, dword [rbp + 0x4c]
jge 0x5409ab
mov eax, dword [rbp + 0x34]
add eax, 0x222
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x3c]
add eax, dword [rbp + 0x38]
cmp dword [rbp + 0x44], eax
jne 0x5409c2
mov eax, 0xc9
sub eax, dword [rbp + 0x3c]
mov dword [rbp + 0x40], eax
mov eax, dword [rbp + 0x48]
add eax, dword [rbp + 0x48]
mov ecx, dword [rbp + 0x40]
add ecx, dword [rbp + 0x40]
cmp eax, ecx
jge 0x5409d8
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x48], eax
mov eax, dword [rbp + 0x48]
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x48]
sub dword [rbp + 0x4c], eax
add dword [rbp + 0x44], 1
cmp dword [rbp + 0x44], 3
jne 0x540994
nop
mov eax, 0x50
sub eax, dword [rbp + 0x48]
cmp eax, 0xdf
jge 0x540a09
lea rcx, [rbp + 0x30]
call fcn.0053e160
mov eax, dword [rbp + 0x34]
add eax, 0x1e3
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x1e8
mov dword [rbp + 0x3c], eax
mov rcx, qword [rbp + 0x78]
mov edx, 0x20
call fcn.00539900
mov dword [rbp + 0x58], eax
mov eax, dword [rbp + 0x48]
add dword [rbp + 0x4c], eax
cmp dword [rbp + 0x58], 0
jle 0x540d72
mov dword [rbp + 0x48], 0
cmp dword [rbp + 0x48], 1
jge 0x540a94
add dword [rbp + 0x48], 1
mov eax, dword [rbp + 0x3c]
add eax, dword [rbp + 0x34]
cmp eax, dword [rbp + 0x30]
jle 0x540a6b
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x1da
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x3c]
add eax, dword [rbp + 0x38]
cmp dword [rbp + 0x44], eax
jne 0x540a82
mov eax, dword [rbp + 0x40]
add eax, 0xc1
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
mov dword [rbp + 0x4c], eax
cmp dword [rbp + 0x48], 1
jl 0x540a50
nop
mov dword [rbp + 0x48], 0
mov eax, dword [rbp + 0x3c]
add eax, dword [rbp + 0x34]
cmp eax, dword [rbp + 0x30]
jle 0x540ab3
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x1b3
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x44]
sub eax, dword [rbp + 0x40]
mov ecx, dword [rbp + 0x40]
sub ecx, dword [rbp + 0x3c]
cmp eax, ecx
jle 0x540ac9
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x44]
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x4c]
imul eax, dword [rbp + 0x44]
mov dword [rbp + 0x4c], eax
add dword [rbp + 0x48], 1
cmp dword [rbp + 0x48], 2
jne 0x540a9c
nop
mov dword [rbp + 0x48], 0
cmp dword [rbp + 0x48], 1
jge 0x540b41
add dword [rbp + 0x48], 1
mov eax, dword [rbp + 0x3c]
add eax, dword [rbp + 0x34]
cmp eax, dword [rbp + 0x30]
jle 0x540b12
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x191
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x48]
sub eax, dword [rbp + 0x44]
mov ecx, dword [rbp + 0x40]
sub ecx, dword [rbp + 0x3c]
cmp eax, ecx
jle 0x540b2b
mov eax, dword [rbp + 0x40]
add eax, 0x58
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
imul eax, dword [rbp + 0x40]
mov dword [rbp + 0x4c], eax
cmp dword [rbp + 0x48], 1
jl 0x540af7
nop
mov dword [rbp + 0x48], 0
mov eax, dword [rbp + 0x3c]
add eax, dword [rbp + 0x34]
cmp eax, dword [rbp + 0x30]
jle 0x540b60
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x1cb
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x44]
sub eax, dword [rbp + 0x40]
mov ecx, dword [rbp + 0x3c]
sub ecx, dword [rbp + 0x38]
cmp eax, ecx
jle 0x540b76
mov eax, dword [rbp + 0x40]
mov dword [rbp + 0x44], eax
mov eax, dword [rbp + 0x44]
imul eax, dword [rbp + 0x40]
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x44]
sub dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x4c]
imul eax, eax, 0x2fd
mov dword [rbp + 0x30], eax
add dword [rbp + 0x48], 1
cmp dword [rbp + 0x48], 3
jne 0x540b49
nop
mov eax, dword [rbp + 0x4c]
add eax, dword [rbp + 0x4c]
mov dword [rbp + 0x30], eax
movsxd rcx, dword [rbp + 0x58]
lea rdx, [rbp + 0x50]
call sub.kernel32.dll_GetFileSizeEx
test al, al
je 0x540d2f
mov eax, 0x16c
sub eax, dword [rbp + 0x38]
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x1d0
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x34]
add eax, 0x1f5
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x34]
add eax, 0x239
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x30]
sub eax, 0x27e
mov dword [rbp + 0x34], eax
mov rcx, qword [rbp + 0x70]
mov edx, dword [rbp + 0x50]
call fcn.0053dc90
mov eax, dword [rbp + 0x4c]
add eax, dword [rbp + 0x44]
mov ecx, dword [rbp + 0x44]
add ecx, dword [rbp + 0x40]
cmp eax, ecx
jge 0x540c31
lea rcx, [rbp + 0x48]
lea rdx, [rbp + 0x44]
lea r8, [rbp + 0x40]
lea r9, [rbp + 0x3c]
lea rax, [rbp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.005366c0
mov dword [rbp + 0x44], 0
mov eax, dword [rbp + 0x30]
sub eax, 0x284
mov dword [rbp + 0x34], eax
mov eax, dword [rbp + 0x38]
sub eax, dword [rbp + 0x34]
cmp dword [rbp + 0x40], eax
jne 0x540c5b
mov eax, dword [rbp + 0x3c]
add eax, 0x12b
mov dword [rbp + 0x40], eax
mov eax, dword [rbp + 0x4c]
add eax, dword [rbp + 0x48]
mov ecx, dword [rbp + 0x44]
add ecx, dword [rbp + 0x40]
cmp eax, ecx
jge 0x540c75
mov eax, dword [rbp + 0x48]
imul eax, dword [rbp + 0x40]
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x48]
add dword [rbp + 0x4c], eax
sub dword [rbp + 0x30], 0x2b9
add dword [rbp + 0x44], 1
cmp dword [rbp + 0x44], 3
jne 0x540c38
nop
mov eax, dword [rbp + 0x4c]
imul eax, eax, 0x2fd
mov dword [rbp + 0x30], eax
mov rcx, qword [rbp + 0x70]
call fcn.0053d680
mov ecx, dword [rbp + 0x58]
mov rdx, qword [rbp + 0x70]
lea rdx, [rdx + 8]
mov r8d, eax
call fcn.0053a280
mov eax, eax
cmp rax, 0xffffffffffffffff
je 0x540d2f
mov eax, dword [rbp + 0x4c]
cmp eax, dword [rbp + 0x4c]
jle 0x540cda
lea rcx, [rbp + 0x30]
lea rdx, [rbp + 0x4c]
lea r8, [rbp + 0x48]
lea r9, [rbp + 0x48]
call fcn.0053e720
lea rcx, [rbp + 0x4c]
call fcn.0053f220
mov eax, dword [rbp + 0x34]
imul eax, eax, 0x212
mov dword [rbp + 0x38], eax
mov byte [rbp + 0x5f], 1
mov eax, 0x188
sub eax, dword [rbp + 0x3c]
mov dword [rbp + 0x3c], eax
mov eax, dword [rbp + 0x38]
imul eax, eax, 0x1cd
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x34]
add eax, 0x211
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x34]
add eax, 0x236
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x30]
sub eax, 0x27a
mov dword [rbp + 0x34], eax
mov eax, dword [rbp + 0x4c]
imul eax, eax, 0x323
mov dword [rbp + 0x30], eax
mov eax, 0x5b
sub eax, dword [rbp + 0x44]
cmp eax, 0x11f
jge 0x540d51
call fcn.0053fee0
mov eax, dword [rbp + 0x30]
sub eax, 0x262
mov dword [rbp + 0x34], eax
movsxd rcx, dword [rbp + 0x58]
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [rbp + 0x4c]
imul eax, eax, 0x2eb
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x30]
sub eax, 0x273
mov dword [rbp + 0x34], eax
movzx rax, byte [rbp + 0x5f]
lea rsp, [rbp + 0x60]
pop rbp
ret