Function at 0x453bdc
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push edi
push 2
xor ebp, ebp
mov edi, ecx
push ebp
push ebx
call fcn.00456da7
add esp, 0xc
test eax, eax
je 0x453c04
mov eax, 0x80004005
jmp 0x453ea0
push esi
push ebx
call fcn.00456cac
mov esi, eax
pop ecx
test esi, esi
jle 0x453cec
lea eax, [esi + 2]
push eax
call fcn.004548e0
mov ecx, dword [edi + 0x1c]
push ecx
mov dword [edi + 0x1c], eax
call fcn.00455770
pop ecx
pop ecx
cmp dword [edi + 0x1c], ebp
je 0x453e7b
push ebp
push ebp
push ebx
call fcn.00456da7
add esp, 0xc
test eax, eax
jne 0x453c58
push ebx
push esi
push 1
push dword [edi + 0x1c]
call fcn.00456870
add esp, 0x10
cmp eax, esi
je 0x453c62
mov eax, 0x80470003
jmp 0x453e9f
mov eax, dword [edi + 0x1c]
xor ebx, ebx
mov byte [eax + esi + 1], bl
mov eax, dword [edi + 0x1c]
mov byte [esi + eax], bl
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x18], ecx
cmp esi, 3
jl 0x453c95
cmp byte [ecx], 0xef
jne 0x453c95
cmp byte [ecx + 1], 0xbb
jne 0x453c95
cmp byte [ecx + 2], 0xbf
jne 0x453c95
lea eax, [ecx + 3]
mov dword [esp + 0x18], eax
cmp esi, 2
jl 0x453d11
cmp byte [ecx], 0xff
jne 0x453d11
cmp byte [ecx + 1], 0xfe
jne 0x453d11
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
lea ebp, [ecx + 2]
push ebp
push ebx
push 0xfde9
call dword [0x42a020]
mov ebx, eax
test ebx, ebx
je 0x453cec
push ebx
call fcn.004548e0
pop ecx
push 0
push 0
push ebx
mov esi, eax
xor ebx, ebx
push esi
push 0xffffffffffffffff
push ebp
push ebx
push 0xfde9
call dword [0x42a020]
test eax, eax
jne 0x453cf6
push esi
call fcn.00455770
pop ecx
mov eax, 0x80004005
jmp 0x453e9f
mov eax, dword [edi + 0x1c]
push eax
mov dword [edi + 0x1c], esi
call fcn.00455770
mov eax, dword [edi + 0x1c]
push ebx
mov dword [esp + 0x20], eax
call fcn.00455770
pop ecx
pop ecx
mov esi, ebx
jmp 0x453d7e
mov cl, byte [eax]
cmp cl, 0x23
je 0x453e89
cmp cl, 0x3b
je 0x453e89
mov edx, eax
mov ecx, 0x4312e8
call fcn.00454818
mov ebx, eax
mov dword [esp + 0x10], ebx
mov al, byte [ebx]
test al, al
je 0x453e89
cmp al, 0x5b
jne 0x453d87
inc ebx
lea edx, [esp + 0x10]
mov esi, ebx
mov dword [esp + 0x10], ebx
mov ecx, 0x4312e0
mov dword [esp + 0x20], esi
call fcn.00454840
test eax, eax
je 0x453d7c
lea edx, [esp + 0x10]
mov ecx, 0x4312e8
call fcn.00454840
test eax, eax
je 0x453e89
xor esi, esi
mov dword [esp + 0x20], esi
jmp 0x453e89
test esi, esi
je 0x453e89
lea edx, [esp + 0x10]
mov ecx, 0x430bac
call fcn.00454840
test eax, eax
je 0x453e89
mov ebp, dword [esp + 0x10]
test ebp, ebp
je 0x453e89
lea eax, [esp + 0x14]
mov ecx, edi
push eax
push esi
call fcn.00453f80
test al, al
jne 0x453e0b
push 0xc
call fcn.00456294
mov esi, eax
pop ecx
test esi, esi
je 0x453ddc
mov dword [esi], ebx
xor ebx, ebx
mov dword [esi + 4], ebp
mov dword [esi + 8], ebx
jmp 0x453de0
xor ebx, ebx
mov esi, ebx
mov dword [esp + 0x14], esi
test esi, esi
je 0x453e7b
push ecx
push dword [esp + 0x24]
mov ecx, edi
call fcn.0045453f
test eax, eax
je 0x453ea9
push esi
lea ecx, [eax + 8]
call fcn.00453f45
jmp 0x453e85
mov esi, dword [esp + 0x14]
jmp 0x453e4b
mov ecx, dword [esi]
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x453e35
test dl, dl
je 0x453e31
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x453e35
add eax, 2
add ecx, 2
test dl, dl
jne 0x453e15
xor eax, eax
jmp 0x453e3a
sbb eax, eax
or eax, 1
test eax, eax
je 0x453e82
mov eax, dword [esi + 8]
test eax, eax
je 0x453e51
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
jne 0x453e11
jmp 0x453e85
push 0xc
call fcn.00456294
pop ecx
test eax, eax
je 0x453e69
mov dword [eax], ebx
xor ebx, ebx
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
jmp 0x453e6d
xor ebx, ebx
mov eax, ebx
push eax
lea ecx, [esi + 8]
call fcn.00453f45
cmp dword [esi + 8], ebx
jne 0x453e85
mov eax, 0x8007000e
jmp 0x453e9f
mov dword [esi + 4], ebp
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x18]
mov ecx, 0x4312e4
call fcn.00454840
test eax, eax
jne 0x453d15
pop esi
pop edi
pop ebp
pop ebx
add esp, 0xc
ret 4
call 0x453b46
int3