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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
push ebx
push esi
push edi
mov ebx, 0x7ead655e
mov eax, ebx
xor eax, ebx
mov ebx, eax
sub ebx, 0x2b24
add dword [0x42c094], 8
shl dword [0x42c094], 1
inc dword [0x42c094]
push 0x104
lea eax, [ebp - 0x10c]
push eax
push 0
call sub.KERN_GetModuleFileNameA
mov eax, ebx
add eax, ebx
mov ebx, eax
push 0
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x10c]
push eax
call sub.KERN_OpenFile
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x40bb6e
push 0
push dword [ebp - 8]
call sub.KERN_GetFileSize
push 0
push 0
mov edx, eax
sub edx, 5
push edx
push dword [ebp - 8]
call sub.KERN_SetFilePointer
mov eax, ebx
add eax, ebx
mov ebx, eax
push 0
lea eax, [ebp - 0x114]
push eax
push 5
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 8]
call sub.KERN_ReadFile
cmp byte [ebp - 0x108], 0x2a
je 0x40b8cb
push dword [ebp - 8]
call sub.KERN_CloseHandle
mov eax, ebx
xor eax, ebx
mov ebx, eax
jmp 0x40bb6e
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 4], eax
push 0
push dword [ebp - 8]
call sub.KERN_GetFileSize
push 0
push 0
mov edx, eax
sub edx, dword [ebp - 4]
push edx
push dword [ebp - 8]
call sub.KERN_SetFilePointer
push dword [ebp - 4]
push 0x40
call sub.KERN_LocalAlloc
mov edi, eax
mov dword [ebp - 0x110], eax
sub ebx, 0x19e
push 0
lea eax, [ebp - 0x114]
push eax
mov eax, dword [ebp - 4]
sub eax, 5
push eax
push edi
push dword [ebp - 8]
call sub.KERN_ReadFile
xor esi, esi
jmp 0x40b93d
movsx eax, byte [edi + esi]
or eax, eax
je 0x40b93c
cmp eax, 0x69
je 0x40b93c
movsx eax, byte [edi + esi]
xor eax, 0x69
mov byte [edi + esi], al
inc esi
mov eax, dword [ebp - 4]
sub eax, 5
cmp esi, eax
jb 0x40b925
add dword [0x42c094], 8
shl dword [0x42c094], 1
inc dword [0x42c094]
mov ecx, edi
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40b95f
mov edx, eax
add edx, 1
push edx
push edi
push 0x417400
call fcn.0040c74c
add esp, 0xc
mov eax, ebx
mul ebx
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x1a0]
mov ebx, eax
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40b991
lea edi, [edi + eax + 1]
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40b9a1
mov edx, eax
add edx, 1
push edx
push edi
push 0x418b80
call fcn.0040c74c
add esp, 0xc
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40b9c1
lea edi, [edi + eax + 1]
add ebx, 0x6f85
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40b9d7
mov edx, eax
add edx, 1
push edx
push edi
push 0x42b3f0
call fcn.0040c74c
add esp, 0xc
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40b9f7
lea edi, [edi + eax + 1]
call fcn.0040c770
mov edx, eax
mov word [0x42c0a8], dx
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40ba15
lea edi, [edi + eax + 1]
sub ebx, 0x98e
call fcn.0040c770
mov edx, eax
mov word [0x42c0ac], dx
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40ba39
lea edi, [edi + eax + 1]
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40ba49
mov edx, eax
add edx, 1
push edx
push edi
push 0x418d90
call fcn.0040c74c
add esp, 0xc
mov eax, ebx
mul ebx
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a4]
mov ebx, eax
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40ba7b
lea edi, [edi + eax + 1]
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40ba8b
mov edx, eax
add edx, 1
push edx
push edi
push 0x42b600
call fcn.0040c74c
add esp, 0xc
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40baab
lea edi, [edi + eax + 1]
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40babb
mov edx, eax
add edx, 1
push edx
push edi
push 0x42a0d0
call fcn.0040c74c
add esp, 0xc
add ebx, 0x3ded
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40bae1
lea edi, [edi + eax + 1]
push edi
call fcn.0040c734
add esp, 4
mov dword [0x42c0a4], eax
mov eax, ebx
sub eax, ebx
mov ebx, eax
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40bb05
lea edi, [edi + eax + 1]
push edi
call fcn.0040c734
add esp, 4
mov dword [0x42c0b0], eax
lea ecx, [edi]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x40bb23
lea edi, [edi + eax + 1]
add ebx, 0x2331
push edi
call fcn.0040c734
add esp, 4
mov dword [0x42c0b4], eax
push dword [ebp - 0x110]
call sub.KERN_LocalFree
xor ebx, 0x3300
push dword [ebp - 8]
call sub.KERN_CloseHandle
add dword [0x42c094], 8
shl dword [0x42c094], 1
inc dword [0x42c094]
pop edi
pop esi
pop ebx
leave
ret