Function at 0x425697
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x90
mov eax, 0x432bad
call fcn.00430e67
mov eax, dword [ebp + 8]
xor edi, edi
push edi
push 0x80
push 3
push edi
push edi
mov dword [ebp - 0x60], eax
mov ebx, edi
mov eax, dword [ebp + 0xc]
push SysReAllocStringLen
push eax
mov dword [ebp - 0x68], edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4256fc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push 0x40b688
call sub.msvcrt.dll_wprintf
pop ecx
pop ecx
test esi, esi
jle 0x4256f5
movzx esi, si
or esi, 0x80070000
mov eax, esi
jmp 0x425dd8
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x425722
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push 0x40b6f0
jmp 0x4256e1
cmp eax, 0x100000
jbe 0x425744
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x40b760
call sub.msvcrt.dll_wprintf
mov eax, 0x80004005
jmp 0x425dd7
push eax
call dword [sym.imp.msvcrt.dll_malloc]
mov edi, eax
mov dword [ebp - 0x54], edi
pop ecx
test edi, edi
jne 0x425766
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x8007000e
jmp 0x425dd8
xor eax, eax
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x2c]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4257b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x54]
call dword [sym.imp.msvcrt.dll_free]
push edi
push 0x40b7f0
call sub.msvcrt.dll_wprintf
add esp, 0xc
test edi, edi
jle 0x4257af
movzx edi, di
or edi, 0x80070000
mov eax, edi
jmp 0x425dd8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x2c]
cmp esi, dword [ebp - 0x64]
je 0x4257e7
push edi
call dword [sym.imp.msvcrt.dll_free]
push dword [ebp - 0x64]
push esi
push 0x40b858
call sub.msvcrt.dll_wprintf
add esp, 0x10
mov eax, 0x80004005
jmp 0x425dd8
lea eax, [esi*2 + 2]
push eax
call dword [sym.imp.msvcrt.dll_malloc]
mov dword [ebp - 0x4c], eax
pop ecx
test eax, eax
jne 0x42580e
push edi
call dword [sym.imp.msvcrt.dll_free]
mov eax, 0x8007000e
jmp 0x425dd7
mov esi, 0x40e4e0
lea edi, [ebp - 0x24]
xor eax, eax
xor ecx, ecx
inc ecx
mov dword [ebp - 4], eax
mov edx, eax
mov dword [ebp - 0x30], eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], edx
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x4c]
mov edi, esi
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x44], eax
add eax, ecx
cmp dword [ebp - 0x44], eax
jae 0x425dc4
mov eax, dword [ebp - 0x44]
movsx eax, byte [eax]
cmp eax, 0x2c
jg 0x425bda
je 0x425bad
cmp eax, 9
jl 0x425bf3
cmp eax, 0xa
jle 0x425b93
cmp eax, 0xd
je 0x425b93
cmp eax, 0x20
je 0x425b88
cmp eax, 0x22
je 0x4258bb
cmp eax, 0x23
jne 0x425bf3
cmp dword [ebp - 0x30], 0
jne 0x425b88
cmp dword [ebp - 0x34], 0
je 0x425de0
jmp 0x425b88
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x44]
jne 0x4258cd
inc eax
mov dword [ebp - 0x5c], eax
jmp 0x425b7d
cmp dword [ebp - 0x5c], eax
je 0x425b7d
cmp dword [ebp - 0x34], 0
jne 0x4258ed
cmp dword [ebp - 0x48], 0
je 0x4258e8
cmp dword [ebp - 0x40], 0
jne 0x4258ed
mov edi, esi
mov dword [ebp - 0x3c], edi
mov ecx, dword [ebp - 0x5c]
sub eax, ecx
push eax
push ecx
push edi
call dword [sym.imp.msvcrt.dll_mbstowcs]
xor ecx, ecx
add esp, 0xc
mov word [edi + eax*2], cx
test eax, eax
jne 0x42591c
mov dword [ebp - 0x70], 0x80004005
lea eax, [ebp - 0x70]
push 0x436ac0
jmp 0x425def
cmp dword [ebp - 0x38], ecx
je 0x4259d1
lea eax, [ebp - 0x24]
push eax
push edi
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jns 0x42595b
cmp eax, 0x80040151
je 0x42595b
push 0x40bab8
call sub.msvcrt.dll_wprintf
mov dword [ebp - 0x74], 0x80004005
lea eax, [ebp - 0x74]
mov dword [esp], 0x436ac0
jmp 0x425def
cmp dword [ebp - 0x28], 0
je 0x425975
mov dword [ebp - 0x78], 0x80004005
lea eax, [ebp - 0x78]
push 0x436ac0
jmp 0x425def
push 0x40e49c
push 0x80
call fcn.00430ff4
mov dword [ebp - 0x58], eax
pop ecx
pop ecx
test eax, eax
je 0x42599b
mov ecx, eax
call fcn.00424df3
mov edx, eax
mov dword [ebp - 0x28], edx
jmp 0x4259a2
xor eax, eax
mov edx, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x58], edx
test edx, edx
jne 0x4259bd
mov dword [ebp - 0x7c], 0x8007000e
lea eax, [ebp - 0x7c]
push 0x436ac0
jmp 0x425def
mov edi, edx
lea esi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x3c]
jmp 0x425b7a
cmp dword [ebp - 0x40], ecx
je 0x425b3c
cmp dword [ebp - 0x34], ecx
jne 0x425aa0
cmp dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x28]
jne 0x425a4b
test ecx, ecx
je 0x425a21
push edi
call fcn.00425590
mov ebx, eax
test ebx, ebx
je 0x425a21
push ebx
call fcn.0042423d
push eax
push ebx
push 0x40bb48
push 0x45a
push 0x40bb80
push 0x402cb8
push 1
call fcn.00424141
add esp, 0x1c
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x68]
jne 0x425a26
sub ecx, edx
mov dword [ebp - 0x48], 1
sar ecx, 1
lea edi, [edi + ecx*2]
add edi, 2
mov dword [ebp - 0x3c], edi
jmp 0x425b77
push edi
push esi
call fcn.004273e4
mov ebx, eax
test ebx, ebx
je 0x425a7e
push ebx
call fcn.0042423d
push eax
push ebx
push 0x40bba8
push 0x462
push 0x40bb80
push 0x402cb8
push 1
call fcn.00424141
add esp, 0x1c
mov ecx, esi
xor edi, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x425a85
sub ecx, edx
sar ecx, 1
inc ecx
lea edi, [esi + ecx*2]
mov dword [ebp - 0x3c], edi
jmp 0x425b77
cmp dword [ebp - 0x50], ecx
jne 0x425ac6
mov ecx, edi
mov dword [ebp - 0x50], 1
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x68]
jne 0x425ab1
sub ecx, edx
sar ecx, 1
lea eax, [edi + ecx*2]
jmp 0x425b34
mov ecx, esi
xor ebx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x425acd
sub ecx, edx
sar ecx, 1
inc ecx
push ebx
push edi
lea eax, [esi + ecx*2]
mov ecx, dword [ebp - 0x28]
push eax
push esi
call fcn.00425359
mov ebx, eax
test ebx, ebx
je 0x425b18
push ebx
call fcn.0042423d
push eax
push ebx
push 0x40bbf0
push 0x46e
push 0x40bb80
push 0x402cb8
push 1
call fcn.00424141
add esp, 0x1c
mov ecx, esi
xor edi, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x425b1f
sub ecx, edx
mov dword [ebp - 0x50], edi
sar ecx, 1
lea eax, [esi + ecx*2]
lea edi, [eax + 2]
jmp 0x425a98
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x425b7a
push edi
mov ecx, edx
call fcn.004255a9
mov ebx, eax
test ebx, ebx
je 0x425b77
push ebx
call fcn.0042423d
push eax
push ebx
push 0x40bc50
push 0x478
push 0x40bb80
push 0x402cb8
push 1
call fcn.00424141
add esp, 0x1c
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
xor eax, eax
cmp dword [ebp - 0x30], eax
sete al
mov dword [ebp - 0x30], eax
inc dword [ebp - 0x44]
mov eax, dword [ebp - 0x54]
jmp 0x425850
cmp dword [ebp - 0x30], 0
je 0x425b88
mov dword [ebp - 0x80], 0x80004005
lea eax, [ebp - 0x80]
push 0x436ac0
jmp 0x425def
cmp dword [ebp - 0x38], 0
jne 0x425bc0
cmp dword [ebp - 0x30], 0
jne 0x425bc0
xor eax, eax
jmp 0x425d16
mov dword [ebp - 0x84], 0x80004005
lea eax, [ebp - 0x84]
push 0x436ac0
jmp 0x425def
sub eax, 0x3a
je 0x425d38
sub eax, 1
je 0x425c66
sub eax, 0x40
je 0x425c24
dec eax
sub eax, 1
je 0x425c13
cmp dword [ebp - 0x30], 0
jne 0x425b88
mov dword [ebp - 0x88], 0x80004005
lea eax, [ebp - 0x88]
push 0x436ac0
jmp 0x425def
cmp dword [ebp - 0x30], 0
jne 0x425b88
xor eax, eax
jmp 0x425d61
cmp dword [ebp - 0x30], 0
jne 0x425b88
cmp dword [ebp - 0x38], 0
jne 0x425c4c
cmp dword [ebp - 0x40], 0
je 0x425c4c
cmp dword [ebp - 0x34], 0
jne 0x425c4c
mov dword [ebp - 0x34], 1
jmp 0x425b88
mov dword [ebp - 0x8c], 0x80004005
lea eax, [ebp - 0x8c]
push 0x436ac0
jmp 0x425def
cmp dword [ebp - 0x38], 0
jne 0x425d1e
cmp dword [ebp - 0x30], 0
jne 0x425d1e
cmp dword [ebp - 0x34], 0
jne 0x425d1e
xor eax, eax
test edx, edx
je 0x425d08
mov ecx, eax
mov esi, 0x40e4e0
lea eax, [ebp - 0x24]
mov eax, dword [eax + ecx*4]
cmp eax, dword [esi + ecx*4]
mov esi, dword [ebp - 0x4c]
jne 0x425ca9
inc ecx
cmp ecx, 4
jne 0x425c8c
xor eax, eax
jmp 0x425d05
mov ecx, dword [ebp - 0x60]
lea esi, [ebp - 0x24]
push edx
sub esp, 0x10
mov edi, esp
lea ecx, [ecx + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0041b407
test eax, eax
jne 0x425ce9
mov ecx, dword [ebp - 0x28]
push 1
call fcn.00425146
mov dword [ebp - 0x90], 0x8007000e
lea eax, [ebp - 0x90]
push 0x436ac0
jmp 0x425def
mov esi, 0x40e4e0
lea edi, [ebp - 0x24]
xor eax, eax
mov edx, eax
mov dword [ebp - 0x28], edx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x58], edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x48], eax
jmp 0x425b88
mov dword [ebp - 0x94], 0x80004005
lea eax, [ebp - 0x94]
push 0x436ac0
jmp 0x425def
cmp dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x30]
je 0x425d4d
test eax, eax
jne 0x425d4d
mov dword [ebp - 0x38], eax
jmp 0x425b88
cmp dword [ebp - 0x40], 0
je 0x425d69
test eax, eax
jne 0x425b88
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x34], eax
jmp 0x425b88
test eax, eax
jne 0x425b88
mov dword [ebp - 0x98], 0x80004005
lea eax, [ebp - 0x98]
push 0x436ac0
jmp 0x425def
push dword [ebp - 0x54]
call dword [sym.imp.msvcrt.dll_free]
push esi
call dword [sym.imp.msvcrt.dll_free]
pop ecx
mov eax, ebx
pop ecx
call fcn.00430db9
ret 8
mov dword [ebp - 0x6c], 0x80004005
lea eax, [ebp - 0x6c]
push 0x436ac0
push eax
call sub.msvcrt.dll__CxxThrowException
int3