Function at 0x445f60
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x4461c6
mov eax, dword [ebx]
xor edx, edx
mov dl, byte [eax]
inc eax
mov dword [ebx], eax
cmp edx, 0x1f
je 0x445f93
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x4461ef
mov eax, dword [ebx]
xor edx, edx
mov dl, byte [eax]
inc eax
mov dword [ebx], eax
cmp edx, 0x8b
jne 0x445f89
mov eax, dword [ebx + 4]
dec eax
mov edx, eax
mov dword [ebx + 4], eax
test eax, eax
js 0x4461d9
mov eax, dword [ebx]
mov cl, byte [eax]
inc eax
and ecx, 0xff
mov dword [ebx], eax
mov esi, ecx
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x446239
mov eax, dword [ebx]
mov dl, byte [eax]
inc eax
and edx, 0xff
mov dword [ebx], eax
mov edi, edx
cmp esi, 0xffffffff
je 0x445f89
cmp edi, 0xffffffff
je 0x445f89
cmp esi, 8
jne 0x445f89
xor si, si
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x446202
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
inc esi
cmp esi, 6
jne 0x446000
test edi, 4
je 0x446085
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x44625f
mov eax, dword [ebx]
xor ecx, ecx
mov cl, byte [eax]
inc eax
mov dword [ebp - 0x20], ecx
mov dword [ebx], eax
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x44624c
mov eax, dword [ebx]
xor edx, edx
mov dl, byte [eax]
inc eax
mov dword [ebx], eax
mov esi, edx
mov ecx, dword [ebp - 0x20]
shl esi, 8
or esi, ecx
jmp 0x446065
mov edx, dword [ebx]
inc edx
mov dword [ebx], edx
dec esi
cmp esi, 0xffffffff
je 0x446085
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
jns 0x446060
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
inc eax
jne 0x446065
test edi, 8
je 0x4460b0
lea esi, [esi]
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x446226
mov eax, dword [ebx]
xor edx, edx
mov dl, byte [eax]
inc eax
mov dword [ebx], eax
lea eax, [edx + 1]
cmp eax, 1
ja 0x446090
test edi, 0x10
je 0x4460d8
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x446213
mov eax, dword [ebx]
xor edx, edx
mov dl, byte [eax]
inc eax
mov dword [ebx], eax
lea eax, [edx + 1]
cmp eax, 1
ja 0x4460b8
and edi, 2
je 0x446102
mov edx, dword [ebx + 4]
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x446287
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
dec edx
mov dword [ebx + 4], edx
test edx, edx
js 0x446276
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
mov eax, dword [ebx + 0xc]
test al, 0x10
jne 0x445f89
test al, 0x20
jne 0x445f89
sub esp, 0xc
push ebx
call sub.msvcrt.dll_ftell
add esp, 0xc
mov esi, eax
push 2
push 0xfffffffffffffff8
push ebx
call sub.msvcrt.dll_fseek
mov dword [esp], ebx
call sub.msvcrt.dll_ftell
mov edx, dword [ebp + 0x14]
sub eax, esi
mov dword [edx], eax
lea eax, [ebp - 0x14]
push ebx
push 8
push 1
push eax
call sub.msvcrt.dll_fread
add esp, 0x20
cmp eax, 8
jne 0x445f89
push eax
push 0
push esi
push ebx
call sub.msvcrt.dll_fseek
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], 8
xor eax, eax
mov dl, byte [ebp - 0x13]
mov al, byte [ebp - 0x12]
mov ecx, dword [ebp + 0x18]
shl eax, 0x10
add esp, 0x10
shl edx, 8
or edx, eax
xor eax, eax
mov al, byte [ebp - 0x14]
or edx, eax
xor eax, eax
mov al, byte [ebp - 0x11]
shl eax, 0x18
or edx, eax
xor eax, eax
mov dword [ecx], edx
xor edx, edx
mov dl, byte [ebp - 0xf]
mov al, byte [ebp - 0xe]
shl eax, 0x10
shl edx, 8
or edx, eax
xor eax, eax
mov al, byte [ebp - 0x10]
or edx, eax
xor eax, eax
mov al, byte [ebp - 0xd]
shl eax, 0x18
or edx, eax
mov eax, dword [ebp + 0x10]
mov dword [eax], edx
mov eax, 1
jmp 0x445f8b
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edx, eax
jmp 0x445f84
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov esi, eax
mov edx, dword [ebx + 4]
jmp 0x445fd3
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edx, eax
jmp 0x445fab
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
jmp 0x446014
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edx, eax
jmp 0x4460d0
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edx, eax
jmp 0x4460a8
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edi, eax
jmp 0x445fee
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edx, eax
jmp 0x446052
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
mov dword [ebp - 0x20], eax
add esp, 0x10
mov edx, dword [ebx + 4]
jmp 0x44603d
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
jmp 0x446102
sub esp, 0xc
push ebx
call sub.msvcrt.dll__filbuf
add esp, 0x10
mov edx, dword [ebx + 4]
jmp 0x4460f1