Function at 0x45fca0
Capabilities:
Read file via mapping

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x476c6b
push eax
mov dword fs:[0], esp
sub esp, 0x2b0
xor eax, eax
lea edx, [esp + 0x84]
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 5
mov esi, str.DisplayDiagnoseData
lea edi, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x14
lea edi, [esp + 0x44]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x30]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x94]
push ecx
push 0xffff
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test eax, eax
jne 0x45fd2a
xor al, al
jmp 0x46003c
push 0
push 0
push 0
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edx, eax
test edx, edx
mov dword [ebp], edx
jne 0x45fd49
xor al, al
jmp 0x46003c
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x1f8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
lea ebx, [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00460110
push 0xffffffffffffffff
mov ecx, ebp
call fcn.00460150
push 0
mov ecx, ebp
call fcn.00460150
lea eax, [esp + 0x1c]
push eax
call fcn.00461470
add esp, 4
mov dword [esp + 0x2c8], 0
call fcn.00461460
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
lea eax, [esp + 0x38]
push str._.2f
push eax
call fcn.00467c1a
mov cl, byte [esp + 0x2c]
mov ebx, esp
xor esi, esi
mov dword [esp + 0x24], esp
mov byte [ebx], cl
mov dword [ebx + 4], esi
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0x34]
mov eax, dword [0x47814c]
mov edi, ecx
cmp eax, edi
mov dword [esp + 0x20], edi
jae 0x45fe14
mov dword [esp + 0x20], eax
mov edi, eax
lea edx, [esp + 0x2c]
cmp ebx, edx
jne 0x45fe33
push eax
push edi
mov ecx, ebx
call fcn.00413720
push esi
push esi
mov ecx, ebx
call fcn.00413720
jmp 0x45febb
cmp edi, esi
jbe 0x45fe7f
cmp edi, ecx
jne 0x45fe7f
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x45fe48
mov eax, 0x478288
cmp byte [eax - 1], 0xfe
jae 0x45fe7f
mov dword [ebx + 4], esi
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x45fe64
mov eax, 0x478288
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x34]
mov dword [ebx + 8], ecx
mov edx, dword [esp + 0x38]
mov dword [ebx + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x45febb
push 1
push edi
mov ecx, ebx
call fcn.00413860
test al, al
je 0x45febb
mov eax, dword [esp + 0x30]
cmp eax, esi
mov esi, 0x478288
je 0x45fe9c
mov esi, eax
mov ecx, edi
mov edi, dword [ebx + 4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, ebx
call fcn.00413840
mov ecx, ebp
call fcn.004601b0
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
push ecx
push edx
mov ecx, ebp
call fcn.00460170
mov ecx, ebp
call fcn.00460070
mov ecx, ebp
call fcn.00460100
mov esi, eax
or ecx, 0xffffffff
add esi, 4
xor eax, eax
mov edi, esi
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ecx + esi + 1]
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [ecx + ebx + 1]
or ecx, 0xffffffff
mov edi, edx
mov dword [esp + 0x14], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebp, [ecx + edx + 1]
or ecx, 0xffffffff
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov al, byte [ecx + ebp + 1]
lea ecx, [ecx + ebp + 2]
mov byte [esp + 0x30], al
mov dword [esp + 0x18], ecx
call fcn.0045ce30
push ebx
call fcn.0045d030
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xf8]
mov eax, ecx
mov esi, edi
mov edi, edx
xor edx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xf8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
dec ecx
js 0x45ff98
mov al, 0x5c
cmp byte [esp + ecx + 0xf8], al
jne 0x45ff90
inc edx
cmp edx, 4
je 0x45ff98
dec ecx
jns 0x45ff86
mov byte [esp + ecx + 0xf9], 0
lea ecx, [esp + 0xf8]
push ecx
call fcn.0045cc30
mov edx, dword [esp + 0x14]
push edx
call fcn.0045d230
add esp, 8
mov eax, 0x48692c
mov dl, byte [ebp]
mov bl, byte [eax]
mov cl, dl
cmp dl, bl
jne 0x45ffe8
test cl, cl
je 0x45ffe4
mov dl, byte [ebp + 1]
mov bl, byte [eax + 1]
mov cl, dl
cmp dl, bl
jne 0x45ffe8
add ebp, 2
add eax, 2
test cl, cl
jne 0x45ffbf
xor eax, eax
jmp 0x45ffed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45fff5
push 1
jmp 0x45fff7
push 0
call fcn.0045d2f0
mov eax, dword [esp + 0x30]
add esp, 4
push eax
call fcn.0045d450
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0045d460
mov ecx, dword [esp + 0x28]
add esp, 8
test ecx, ecx
je 0x46003a
mov al, byte [ecx - 1]
test al, al
je 0x460030
cmp al, 0xff
je 0x460030
dec al
mov byte [ecx - 1], al
jmp 0x46003a
dec ecx
push ecx
call fcn.00467320
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x2c0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2bc
ret