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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x101c
call fcn.0052ea50
push ebx
push edi
xor eax, eax
push 0x7fe
mov ebx, ecx
push eax
lea ecx, [ebp - 0x101a]
push ecx
mov word [ebp - 0x101c], ax
call fcn.0052ea80
add esp, 0xc
push 0x400
lea edx, [ebp - 0x101c]
push edx
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
push 0
push 0
push 4
push 0
push 3
push SysReAllocString
lea eax, [ebp - 0x101c]
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov edi, eax
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
jne 0x428aa1
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov esi, eax
cmp esi, 0x40
jae 0x428ac2
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.0052ebd6
add esp, 4
push 0
lea ecx, [ebp - 0x14]
push ecx
push esi
push eax
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_ReadFile]
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], 0
call edi
test eax, eax
jne 0x428b09
mov edx, dword [ebp - 8]
push edx
call fcn.0052eb9c
mov eax, dword [ebp - 4]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
mov edx, 0x5a4d
cmp word [ecx], dx
je 0x428b32
push ecx
call fcn.0052eb9c
mov eax, dword [ebp - 4]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0x3c]
mov esi, dword [eax + ecx + 0x98]
add eax, ecx
xor ecx, ecx
cmp esi, ecx
je 0x428e4b
cmp dword [eax + 0x9c], ecx
je 0x428e4b
push ecx
push ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 4]
push esi
push ecx
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
mov ecx, dword [ebp - 4]
push 0
lea edx, [ebp - 0x1c]
push edx
push 4
lea eax, [ebp - 0xc]
push eax
push ecx
call edi
add esi, dword [ebp - 0xc]
add esi, dword [ebp - 8]
mov edi, dword [esi]
push edi
mov dword [ebp - 0x18], edi
call fcn.0052ebd6
push edi
push 0
push eax
mov dword [ebp - 0x10], eax
call fcn.0052ea80
mov ecx, dword [esi + 4]
push ecx
add esi, 8
push esi
mov esi, dword [ebp - 0x10]
lea edx, [ebp - 0x18]
push edx
push esi
call section..text
add esp, 0x20
test eax, eax
jne 0x428e42
push 0x7ff
push eax
mov byte [ebp - 0x81c], al
lea eax, [ebp - 0x81b]
push eax
call fcn.0052ea80
add esp, 0xc
xor edi, edi
cmp edi, 0xa
ja case.default.0x428bdc
jmp dword [edi*4 + 0x428e70]
push 0x800
lea ecx, [ebp - 0x81c]
push 0
push ecx
call fcn.0052ea80
mov edx, dword [esi]
push edx
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x81c]
push ecx
call fcn.005302f0
add esp, 0x18
lea edx, [ebp - 0x81c]
push edx
mov ecx, 0x5c2094
call fcn.00408080
mov eax, dword [esi]
lea esi, [esi + eax + 4]
jmp case.default.0x428bdc
push 0x800
lea ecx, [ebp - 0x81c]
push 0
push ecx
call fcn.0052ea80
mov edx, dword [esi]
push edx
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x81c]
push ecx
call fcn.005302f0
add esp, 0x18
lea edx, [ebp - 0x81c]
push edx
mov ecx, 0x5c2098
call fcn.00408080
mov eax, dword [esi]
lea esi, [esi + eax + 4]
jmp case.default.0x428bdc
push 0x800
lea ecx, [ebp - 0x81c]
push 0
push ecx
call fcn.0052ea80
mov edx, dword [esi]
push edx
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x81c]
push ecx
call fcn.005302f0
add esp, 0x18
lea edx, [ebp - 0x81c]
push edx
mov ecx, 0x5c209c
call fcn.00408080
mov eax, dword [esi]
lea esi, [esi + eax + 4]
jmp case.default.0x428bdc
push 0x800
lea ecx, [ebp - 0x81c]
push 0
push ecx
call fcn.0052ea80
mov edx, dword [esi]
push edx
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x81c]
push ecx
call fcn.005302f0
add esp, 0x18
lea edx, [ebp - 0x81c]
push edx
mov ecx, 0x5c20a0
call fcn.00408080
lea eax, [ebp - 0x81c]
push eax
mov ecx, 0x5c20a8
call fcn.00408080
push 0x5c20a0
mov ecx, 0x5c20a4
call fcn.00408180
mov ecx, dword [esi]
lea esi, [esi + ecx + 4]
jmp case.default.0x428bdc
push 0x800
lea edx, [ebp - 0x81c]
push 0
push edx
call fcn.0052ea80
mov eax, dword [esi]
push eax
lea ecx, [esi + 4]
push ecx
lea edx, [ebp - 0x81c]
push edx
call fcn.005302f0
add esp, 0x18
lea eax, [ebp - 0x81c]
push eax
mov ecx, 0x5c20ac
call fcn.00408080
push 0x56801c
mov ecx, 0x5c20a0
call fcn.00425830
mov eax, dword [0x5c20ac]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, 0x5c20a0
call fcn.00407fc0
push str..lnk
mov ecx, 0x5c20a0
call fcn.00425830
mov edx, dword [esi]
lea esi, [esi + edx + 4]
jmp case.default.0x428bdc
mov eax, dword [esi]
push eax
lea ecx, [esi + 4]
push ecx
mov ecx, ebx
call fcn.0041d660
mov edx, dword [esi]
lea esi, [esi + edx + 4]
jmp case.default.0x428bdc
mov eax, dword [esi]
push 1
push 1
push eax
lea ecx, [esi + 4]
push ecx
lea ecx, [ebx + 0x580]
call fcn.0041df70
mov edx, dword [esi]
lea esi, [esi + edx + 4]
jmp case.default.0x428bdc
mov eax, dword [esi]
push 1
push 1
push eax
lea ecx, [esi + 4]
push ecx
lea ecx, [ebx + 0x4c0]
call fcn.0041df70
mov edx, dword [esi]
lea esi, [esi + edx + 4]
jmp case.default.0x428bdc
mov eax, dword [esi]
push 1
push 1
push eax
lea ecx, [esi + 4]
push ecx
lea ecx, [ebx + 0x340]
call fcn.0041df70
mov edx, dword [esi]
lea esi, [esi + edx + 4]
jmp case.default.0x428bdc
mov eax, dword [esi]
push 1
push 1
push eax
lea ecx, [esi + 4]
push ecx
lea ecx, [ebx + 0x400]
call fcn.0041df70
mov edx, dword [esi]
lea esi, [esi + edx + 4]
jmp case.default.0x428bdc
mov eax, dword [esi]
push 1
push 1
push eax
lea ecx, [esi + 4]
push ecx
lea ecx, [ebx + 0x100]
call fcn.0041df70
inc edi
cmp edi, 0xb
jl 0x428bd3
mov esi, dword [ebp - 0x10]
push esi
call fcn.0052eb9c
add esp, 4
mov edx, dword [ebp - 8]
push edx
call fcn.0052eb9c
mov eax, dword [ebp - 4]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop esi
pop edi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret