Function at 0x4258c6
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10788
call fcn.004c5de0
push ebx
mov eax, dword [ebp + 0xc]
xor ebx, ebx
push esi
mov eax, dword [eax]
push ebx
push 0x8000000
push 3
push ebx
push 1
pop esi
push esi
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x34], eax
je 0x425a6f
lea ecx, [ebp - 0x1c]
push ebx
push ecx
lea ecx, [ebp - 0x4c]
push 4
push ecx
push eax
mov dword [ebp - 0x4c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x4c], 0x31423258
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x18], ebx
jne 0x425a52
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0xb4
jl 0x42596d
push eax
call fcn.0041429c
test eax, eax
pop ecx
jne 0x42596d
lea eax, [ebp - 0x180]
push 0x104
push eax
push dword [ebp + 8]
call fcn.0046c485
add esp, 0xc
test eax, eax
je 0x42596d
lea eax, [ebp - 0x180]
lea ecx, [ebp + 8]
push eax
call fcn.00402e2b
or dword [ebp - 0xc], 0xffffffff
push 0x64
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x440]
pop ecx
mov edx, dword [0x4cfce8]
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x425983
lea eax, [ebp + 8]
push edi
push eax
lea ecx, [ebp - 0x440]
call fcn.00402dbe
add dword [ebp + 0x10], 0xfffffffc
mov eax, dword [0x4cfce8]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], eax
adc dword [ebp + 0x14], 0xffffffff
cmp dword [ebp + 0x14], ebx
jg 0x425a7d
jl 0x4259cb
cmp dword [ebp + 0x10], ebx
ja 0x425a7d
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0x10], ebx
je 0x4259ff
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x4e9e94]
push dword [eax]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
push 0x2779
push 0x10
push dword [eax + 4]
call fcn.0047a0bd
add esp, 0x10
cmp dword [ebp - 0xc], 0xffffffff
je 0x425a2b
cmp dword [ebp - 0x28], ebx
je 0x425a22
lea eax, [ebp - 0x28]
push eax
push ebx
lea eax, [ebp - 0x1c]
push 1
push eax
push ebx
push dword [ebp - 4]
push dword [ebp - 0xc]
call dword [0x4d9abc]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x14]
call fcn.004010b4
lea ecx, [ebp - 8]
call fcn.004010b4
push 0x64
lea esi, [ebp - 0x2b0]
pop edi
sub esi, 4
mov ecx, esi
call fcn.004010b4
dec edi
jne 0x425a44
pop edi
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x10], ebx
je 0x425a6c
cmp dword [ebp - 0x44], ebx
je 0x425a6c
mov dword [ebp - 0x10], 2
mov ebx, dword [ebp - 0x10]
lea ecx, [ebp + 8]
call fcn.004010b4
mov eax, ebx
pop esi
pop ebx
leave
ret
cmp dword [ebp - 0x18], ebx
jne 0x4259ce
mov esi, dword [ebp + 0x18]
push 3
pop edi
cmp dword [esi], edi
je 0x4260b8
call fcn.004712c4
test eax, eax
jne 0x4260ad
cmp dword [ebp + 0x14], ebx
jl 0x425ab8
jg 0x425ab1
cmp dword [ebp + 0x10], 0x10000
jbe 0x425ab8
mov esi, 0x10000
jmp 0x425abb
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0x1c]
push ebx
push eax
lea eax, [ebp - 0x10788]
push esi
push eax
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x1c], esi
jne 0x4260b8
sub dword [ebp + 0x10], esi
lea edi, [ebp + esi - 0x10788]
lea eax, [ebp - 0x10788]
lea ecx, [ebp - 0x10788]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x38], edi
sbb dword [ebp + 0x14], ebx
cmp eax, edi
jae 0x42608c
mov eax, dword [ebp - 0x20]
lea eax, [ebp + eax*4 - 0x440]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x18], ebx
jne 0x42608c
mov eax, dword [ebp + 0x18]
cmp dword [eax], 3
je 0x42608c
mov eax, dword [ebp - 0x10]
sub eax, ebx
je 0x425cbb
dec eax
je 0x425be6
dec eax
jne 0x425cf2
mov esi, edi
sub esi, ecx
cmp ebx, dword [ebp - 0x2c]
jl 0x425b4f
jg 0x425b4c
cmp esi, dword [ebp - 0x30]
jbe 0x425b4f
mov esi, dword [ebp - 0x30]
cmp dword [ebp - 0xc], 0xffffffff
je 0x425b6e
lea eax, [ebp - 0x28]
push eax
push ebx
lea eax, [ebp - 0x1c]
push ebx
push eax
push esi
push dword [ebp - 4]
push dword [ebp - 0xc]
call dword [0x4d9abc]
jmp 0x425b71
mov dword [ebp - 0x1c], esi
sub dword [ebp - 0x30], esi
sbb dword [ebp - 0x2c], ebx
add dword [ebp - 4], esi
cmp dword [ebp - 0x1c], esi
jae 0x425b8b
cmp dword [ebp - 0x48], ebx
je 0x425b8b
mov dword [ebp - 0x44], 1
cmp dword [ebp - 0x2c], ebx
jg 0x425cf2
jl 0x425b9f
cmp dword [ebp - 0x30], ebx
ja 0x425cf2
cmp dword [ebp - 0x40], ebx
mov dword [ebp - 0x10], 1
je 0x425cf2
cmp dword [ebp - 4], edi
mov dword [ebp - 0x40], ebx
jae 0x425bbf
inc dword [ebp - 4]
jmp 0x425cf2
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x425cf2
push 1
push ebx
push 1
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
add dword [ebp + 0x10], 0xffffffff
adc dword [ebp + 0x14], 0xffffffff
jmp 0x425cf2
lea esi, [ecx + 2]
cmp esi, edi
ja 0x426065
mov ecx, dword [ebp - 4]
mov ax, word [ecx]
cmp ax, 0xffff
jne 0x425c60
cmp dword [ebp - 0xc], 0xffffffff
je 0x425c55
cmp dword [ebp - 0x28], ebx
je 0x425c21
lea eax, [ebp - 0x28]
push eax
push ebx
lea eax, [ebp - 0x1c]
push 1
push eax
push ebx
push ecx
push dword [ebp - 0xc]
call dword [0x4d9abc]
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x78]
push eax
push ebx
push ebx
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 0xc], 0xffffffff
push ebx
push 0xffffffffffffffff
push dword [ebp - 8]
call fcn.004142d1
pop ecx
pop ecx
push eax
push 1
push 2
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], ebx
jmp 0x425cf2
add ecx, 0x16
cmp ecx, edi
ja 0x426065
movzx eax, ax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x40], eax
mov ax, word [esi + 0x10]
add ax, 0x16
movzx eax, ax
add ecx, eax
cmp ecx, edi
ja 0x426065
add eax, 0xfffffffe
mov dword [ebp - 0x10], 2
cdq
add eax, dword [esi + 8]
mov dword [ebp - 4], esi
adc edx, dword [esi + 0xc]
cmp dword [esi + 0x10], ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
jne 0x425cb2
cmp dword [esi], 1
jne 0x425cb2
mov dword [ebp - 0x48], ebx
jmp 0x425cf2
mov dword [ebp - 0x48], 1
jmp 0x425cf2
lea esi, [ecx + 2]
cmp esi, edi
ja 0x426065
mov eax, dword [ebp - 4]
mov di, word [eax]
cmp di, bx
mov dword [ebp - 0x3c], edi
jne 0x425d13
cmp esi, dword [ebp - 0x38]
mov dword [ebp - 4], esi
jne 0x425d05
cmp dword [ebp + 0x10], ebx
jne 0x425d05
cmp dword [ebp + 0x14], ebx
jne 0x425d05
cmp dword [ebp - 0x20], ebx
je 0x425cf2
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 0x38]
cmp ecx, edi
jae 0x42608c
jmp 0x425b0e
dec dword [ebp - 0x20]
sub dword [ebp - 0x24], 4
cmp dword [ebp - 0x20], ebx
jge 0x425cf2
jmp 0x425ceb
cmp di, 0x32
jb 0x425ceb
cmp di, 0x238
ja 0x425ceb
movzx ecx, di
add eax, ecx
cmp eax, dword [ebp - 0x38]
ja 0x426062
push ebx
push ebx
lea ecx, [ebp - 0x648]
mov dword [ebp - 4], eax
push 0x208
lea eax, [esi + 0x2c]
push ecx
push 0xffffffffffffffff
push eax
push ebx
push 1
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [ebp - 0x648]
push 1
push eax
lea eax, [ebp - 0x60]
push dword [ebp - 0x24]
push eax
call fcn.0046bc0b
add esp, 0x10
lea ecx, [ebp - 8]
push eax
call fcn.00402dbe
lea ecx, [ebp - 0x60]
call fcn.004010b4
test byte [esi], 0x10
je 0x425eaf
lea eax, [ebp - 0x648]
push eax
lea eax, [ebp - 0x14]
push 0x2c5b
push eax
call fcn.00413a34
mov eax, dword [ebp + 0x1c]
add esp, 0xc
push 0x10000
push dword [ebp - 0x14]
push 0x8002
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [esi]
push dword [ebp - 8]
call fcn.0046e46e
pop ecx
test eax, eax
pop ecx
jne 0x425e56
push 0x2771
lea ecx, [ebp - 0x14]
call fcn.00403548
lea eax, [ebp - 0x6c]
push eax
call fcn.00470152
pop ecx
push eax
mov eax, 0x4d1420
lea ecx, [ebp - 0x14]
push eax
push ecx
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00402f03
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00402e70
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00405e68
mov eax, dword [eax]
lea ecx, [ebp - 8]
push eax
push dword [eax - 8]
call fcn.00402f96
lea ecx, [ebp - 0x54]
call fcn.004010b4
lea ecx, [ebp - 0x58]
call fcn.004010b4
lea ecx, [ebp - 0x70]
call fcn.004010b4
lea ecx, [ebp - 0x6c]
call fcn.004010b4
mov eax, dword fs:[0x2c]
mov ecx, dword [0x4e9e94]
push dword [ebp - 8]
mov eax, dword [eax + ecx*4]
push 0x10
mov ecx, dword [eax + 4]
call fcn.0047a240
xor edi, edi
jmp 0x425e97
mov eax, dword [ebp - 8]
cmp dword [eax - 8], 0xb4
jl 0x425e97
push eax
call fcn.0041429c
test eax, eax
pop ecx
jne 0x425e97
lea eax, [ebp - 0x180]
push 0x104
push eax
push dword [ebp - 8]
call fcn.0046c485
add esp, 0xc
test eax, eax
je 0x425e97
lea eax, [ebp - 0x180]
lea ecx, [ebp - 8]
push eax
call fcn.00402e2b
add dword [ebp - 0x24], 4
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 8]
push eax
call fcn.00402dbe
jmp 0x42604b
lea eax, [ebp - 0x788]
push eax
lea eax, [ebp - 8]
push eax
call fcn.0046c0c4
pop ecx
cmp eax, 1
pop ecx
jne 0x425fa8
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
cmp eax, 2
je 0x426044
cmp eax, 5
je 0x425fa8
lea eax, [ebp - 0x5c]
push esi
push eax
call fcn.004c0be9
mov edi, dword [eax]
lea eax, [ebp - 0x788]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004c0be9
mov eax, dword [eax]
add esp, 0x10
push edi
push eax
lea eax, [ebp - 0x648]
push eax
lea eax, [ebp - 0x14]
push 0x2c4d
push eax
call fcn.00413a34
add esp, 0x14
lea ecx, [ebp - 0x64]
call fcn.004010b4
lea ecx, [ebp - 0x5c]
call fcn.004010b4
mov edi, dword [ebp + 0x18]
push 0x7f02
lea ecx, [ebp - 0x2b0]
mov ax, word [edi]
push eax
push dword [ebp - 0x14]
push 0x2c4c
call fcn.00421d9c
push 1
mov ecx, 0x4d8eb0
push dword [ebp - 8]
call fcn.004260e2
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp + 0x1c]
push ebx
lea ecx, [ebp - 0x2b0]
push dword [eax + 4]
call fcn.00427fc3
cmp eax, 3
mov dword [edi], eax
je 0x425f87
cmp eax, 7
je 0x425f87
cmp eax, 2
je 0x425f87
xor edi, edi
jmp 0x425f8a
push 1
pop edi
cmp eax, 3
jne 0x425f92
mov dword [ebp - 0x3c], ebx
lea ecx, [ebp - 0x2b0]
call fcn.0042274a
cmp edi, ebx
mov edi, dword [ebp - 0x3c]
jne 0x426044
lea eax, [ebp - 0x648]
push eax
lea eax, [esi + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 8]
push esi
push eax
call fcn.0042516f
pop ecx
cmp eax, 0xffffffff
pop ecx
mov dword [ebp - 0xc], eax
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x78], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x74], ecx
jne 0x426044
push dword [ebp - 8]
lea eax, [ebp - 0x14]
push 0x2777
push eax
call fcn.00413a34
lea eax, [ebp - 0x68]
push eax
call fcn.00470152
add esp, 0x10
push eax
lea eax, [ebp - 0x50]
push 0x4d1420
push eax
call fcn.00402f03
mov eax, dword [eax]
lea ecx, [ebp - 0x14]
push eax
push dword [eax - 8]
call fcn.00402f96
lea ecx, [ebp - 0x50]
call fcn.004010b4
lea ecx, [ebp - 0x68]
call fcn.004010b4
mov eax, dword fs:[0x2c]
mov ecx, dword [0x4e9e94]
push dword [ebp - 0x14]
mov eax, dword [eax + ecx*4]
push 0x10
mov ecx, dword [eax + 4]
call fcn.0047a240
xor edi, edi
mov dword [ebp - 0x10], 1
cmp di, bx
jne 0x425cf2
mov eax, dword [ebp + 0x18]
mov dword [eax], 3
jmp 0x425cf2
mov edi, dword [ebp - 0x38]
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x4260a1
sub edi, dword [ebp - 4]
push 1
push ebx
mov esi, edi
mov eax, esi
neg eax
push eax
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, esi
cdq
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
cmp dword [ebp + 0x14], ebx
jl 0x4260af
jg 0x425a7d
cmp dword [ebp + 0x10], ebx
jbe 0x4260af
jmp 0x425a7d
mov dword [ebp - 0x18], 1
jmp 0x4259ce
mov dword [esi], edi
cmp dword [ebp - 0x18], ebx
jne 0x4259ce
cmp dword [ebp + 0x10], ebx
jne 0x4259ce
cmp dword [ebp + 0x14], ebx
jne 0x4259ce
mov eax, dword [ebp + 0x18]
cmp dword [eax], 3
je 0x4259ce
mov dword [ebp - 0x10], 1
jmp 0x4259ff