Function at 0x402974
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x29c
mov dword [ebp - 0x264], 0x4a5320
mov dword [ebp - 0x260], 0x4a5f56
lea eax, [ebp - 0x25c]
lea esi, [ebp - 0x18]
mov dword [eax], esi
mov edx, 0x403182
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call fcn.00410e60
mov byte [ebp - 0x1d], 1
lea eax, [ebp - 0x178]
mov ecx, eax
call fcn.0045ee20
lea eax, [ebp - 0x190]
lea edx, [ebp - 0x178]
mov dword [esp + 4], edx
mov dword [esp], 0x4aa5ba
mov dword [ebp - 0x278], 1
mov ecx, eax
call fcn.00490960
sub esp, 8
lea eax, [ebp - 0x178]
mov ecx, eax
call fcn.0045ee50
lea eax, [ebp - 0x177]
mov ecx, eax
call fcn.0045ee20
lea eax, [ebp - 0x1a8]
lea edx, [ebp - 0x177]
mov dword [esp + 4], edx
mov dword [esp], 0x4aa5bc
mov dword [ebp - 0x278], 2
mov ecx, eax
call fcn.00490960
sub esp, 8
lea eax, [ebp - 0x177]
mov ecx, eax
call fcn.0045ee50
lea eax, [ebp - 0x1a8]
mov dword [esp], 0x4aa5c2
mov dword [ebp - 0x278], 3
mov ecx, eax
call fcn.00491110
sub esp, 4
lea eax, [ebp - 0x1a8]
mov dword [esp], 0x4aa5c8
mov ecx, eax
call fcn.00491110
sub esp, 4
lea eax, [ebp - 0x176]
mov ecx, eax
call fcn.0045ee20
lea eax, [ebp - 0x1c0]
lea edx, [ebp - 0x176]
mov dword [esp + 4], edx
mov dword [esp], 0x4aa5d0
mov dword [ebp - 0x278], 4
mov ecx, eax
call fcn.00490960
sub esp, 8
lea eax, [ebp - 0x176]
mov ecx, eax
call fcn.0045ee50
lea eax, [ebp - 0x1c0]
mov dword [esp], 0x4aa5d6
mov dword [ebp - 0x278], 5
mov ecx, eax
call fcn.00491110
sub esp, 4
lea eax, [ebp - 0x1c0]
mov dword [esp], 0x4aa5de
mov ecx, eax
call fcn.00491110
sub esp, 4
lea eax, [ebp - 0x175]
mov ecx, eax
call fcn.0045ee20
lea eax, [ebp - 0x1d8]
lea edx, [ebp - 0x175]
mov dword [esp + 4], edx
mov dword [esp], 0x4aa5e6
mov dword [ebp - 0x278], 6
mov ecx, eax
call fcn.00490960
sub esp, 8
lea eax, [ebp - 0x175]
mov ecx, eax
call fcn.0045ee50
lea eax, [ebp - 0x1d8]
mov dword [esp], 0x4aa5ec
mov dword [ebp - 0x278], 7
mov ecx, eax
call fcn.00491110
sub esp, 4
mov word [ebp - 0x23e], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov ecx, dword [ebp + 8]
call fcn.0042a310
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileW]
call eax
sub esp, 0x1c
mov dword [ebp - 0x24], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0x244], 0
cmp dword [ebp - 0x24], 0xffffffff
jne 0x402bdc
mov byte [ebp - 0x280], 0
jmp 0x40313c
mov dword [ebp - 0x28], 0xffffb000
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x278], 7
call eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x244]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x64
lea eax, [ebp - 0x23c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
call eax
sub esp, 0x14
add dword [ebp - 0x28], 0x64
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x244]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 2
lea eax, [ebp - 0x23e]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
call eax
sub esp, 0x14
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
movzx eax, word [ebp - 0x23e]
test ax, ax
jne 0x402cdb
mov byte [ebp - 0x280], 0
jmp 0x40313c
movzx eax, word [ebp - 0x23e]
movzx eax, ax
mov dword [esp + 4], 0x4aeaf8
mov dword [esp], eax
call fcn.004a4430
mov dword [ebp - 0x2c], eax
movzx eax, word [ebp - 0x23e]
movzx eax, ax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [ebp - 0x278], 7
call fcn.0041b870
sub esp, 8
mov eax, dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 0x28], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
movzx eax, word [ebp - 0x23e]
movzx eax, ax
mov dword [esp + 0x10], 0
lea edx, [ebp - 0x244]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
call eax
sub esp, 0x14
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0x1c], 0
movzx eax, word [ebp - 0x23e]
movzx eax, ax
cmp eax, dword [ebp - 0x1c]
jle 0x402e0c
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
add eax, edx
movzx ebx, byte [eax]
mov ecx, dword [ebp - 0x1c]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov eax, ecx
movzx eax, byte [ebp + eax - 0x23c]
xor eax, ebx
mov byte [ebp - 0x2d], al
movzx eax, byte [ebp - 0x2d]
cbw
movzx edx, ax
lea eax, [ebp - 0x190]
mov dword [esp], edx
mov dword [ebp - 0x278], 7
mov ecx, eax
call fcn.004911d0
sub esp, 4
add dword [ebp - 0x1c], 1
jmp 0x402d9a
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x278], 7
call eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0x248], 0
lea eax, [ebp - 0x128]
lea edx, [ebp - 0x1a8]
mov dword [esp], edx
mov ecx, eax
call fcn.00490a00
sub esp, 4
lea eax, [ebp - 0x110]
lea edx, [ebp - 0x190]
mov dword [esp], edx
mov dword [ebp - 0x278], 8
mov ecx, eax
call fcn.00490a00
sub esp, 4
lea eax, [ebp - 0x140]
lea edx, [ebp - 0x128]
mov dword [esp + 8], edx
lea edx, [ebp - 0x110]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x278], 9
call fcn.00402699
lea eax, [ebp - 0x158]
lea edx, [ebp - 0x140]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x278], 0xa
call fcn.00402644
mov eax, dword [ebp - 0x248]
lea edx, [eax + 1]
mov dword [ebp - 0x248], edx
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x174]
lea edx, [ebp - 0x158]
mov dword [esp + 4], edx
lea edx, [ebp - 0xf8]
mov dword [esp], edx
mov ecx, eax
call fcn.00485de0
sub esp, 8
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x174]
mov dword [esp], edx
mov dword [ebp - 0x278], 0xb
mov ecx, eax
call fcn.00485c20
sub esp, 4
lea eax, [ebp - 0x174]
mov ecx, eax
call fcn.00485e20
lea eax, [ebp - 0x158]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x140]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x110]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x128]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0xa8]
lea edx, [ebp - 0x1c0]
mov dword [esp], edx
mov dword [ebp - 0x278], 7
mov ecx, eax
call fcn.00490a00
sub esp, 4
lea eax, [ebp - 0x90]
lea edx, [ebp - 0x190]
mov dword [esp], edx
mov dword [ebp - 0x278], 0xc
mov ecx, eax
call fcn.00490a00
sub esp, 4
lea eax, [ebp - 0xc0]
lea edx, [ebp - 0xa8]
mov dword [esp + 8], edx
lea edx, [ebp - 0x90]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x278], 0xd
call fcn.00402699
lea eax, [ebp - 0xd8]
lea edx, [ebp - 0xc0]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x278], 0xe
call fcn.00402644
lea eax, [ebp - 0xf4]
lea edx, [ebp - 0xd8]
mov dword [esp + 4], edx
lea edx, [ebp - 0x248]
mov dword [esp], edx
mov ecx, eax
call fcn.00485da0
sub esp, 8
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0xf4]
mov dword [esp], edx
mov dword [ebp - 0x278], 0xf
mov ecx, eax
call fcn.00485c20
sub esp, 4
lea eax, [ebp - 0xf4]
mov ecx, eax
call fcn.00485e20
lea eax, [ebp - 0xd8]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0xc0]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x90]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0xa8]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x60]
lea edx, [ebp - 0x1d8]
mov dword [esp], edx
mov dword [ebp - 0x278], 7
mov ecx, eax
call fcn.00490a00
sub esp, 4
lea eax, [ebp - 0x48]
lea edx, [ebp - 0x190]
mov dword [esp], edx
mov dword [ebp - 0x278], 0x10
mov ecx, eax
call fcn.00490a00
sub esp, 4
lea eax, [ebp - 0x78]
lea edx, [ebp - 0x60]
mov dword [esp + 8], edx
lea edx, [ebp - 0x48]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x278], 0x11
call fcn.00402699
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0x78]
mov dword [esp], edx
mov dword [ebp - 0x278], 0x12
mov ecx, eax
call fcn.00491000
sub esp, 4
lea eax, [ebp - 0x78]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x48]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x60]
mov ecx, eax
call fcn.00490fc0
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x278], 7
call eax
sub esp, 4
cmp dword [ebp - 0x2c], 0
je 0x403132
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call fcn.004a4380
movzx eax, byte [ebp - 0x1d]
mov byte [ebp - 0x280], al
lea eax, [ebp - 0x1d8]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x1c0]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x1a8]
mov ecx, eax
call fcn.00490fc0
lea eax, [ebp - 0x190]
mov ecx, eax
call fcn.00490fc0
movzx eax, byte [ebp - 0x280]
mov byte [ebp - 0x280], al
jmp 0x40345d
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call fcn.00410ef0
movzx eax, byte [ebp - 0x280]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret