Function at 0x410290
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
xor esi, esi
push esi
push 0x131a
push str.C:projectsStormSourceSFile.cpp
push 0x1000
mov dword [esp + 0x30], edx
mov ebp, ecx
call fcn.00408f70
mov ebx, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], esi
mov edi, edi
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x274]
add ecx, edx
cmp eax, ecx
jb 0x410325
push esi
push esi
push eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [ebp + 0x128]
push esi
lea ecx, [esp + 0x18]
push ecx
push 0x1000
push ebx
push edx
mov dword [esp + 0x28], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x14]
cmp ecx, 0x20
jb 0x410361
mov eax, dword [ebp + 0x274]
mov edi, dword [ebp + 0x278]
lea edx, [eax + 0x20]
cmp edx, edi
jae 0x410361
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov esi, eax
sub esi, ecx
lea edx, [ebp + 0x134]
add esi, ebx
mov ecx, 8
mov edi, edx
rep movsd dword es:[edi], dword [esi]
cmp dword [edx], 0x1a51504d
jne 0x41034f
cmp dword [ebp + 0x138], 0x20
jae 0x41039d
add eax, 0x200
mov dword [ebp + 0x274], eax
xor esi, esi
jmp 0x4102c0
mov ecx, ebp
call fcn.0040ca00
push esi
push 0xffffffffffffffff
push str.delete
push ebp
call fcn.0040a0f0
push 0x8510006c
call fcn.0040c3e0
push esi
push 0x1336
push str.C:projectsStormSourceSFile.cpp
push ebx
call fcn.0040a0f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 8
push 0
push 0x135d
push str.C:projectsStormSourceSFile.cpp
push ebx
call fcn.0040a0f0
mov cl, byte [ebp + 0x142]
push 0
mov eax, 0x200
shl eax, cl
push 0x1363
push str.C:projectsStormSourceSFile.cpp
push eax
mov dword [ebp + 0x268], eax
call fcn.00408f70
push 0
mov dword [ebp + 0x26c], eax
mov eax, dword [ebp + 0x14c]
push 0x136c
push str.C:projectsStormSourceSFile.cpp
shl eax, 4
push eax
call fcn.00408f70
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 0x14c]
shl ecx, 4
push ecx
mov ecx, dword [ebp + 0x144]
push eax
mov dword [ebp + 0x280], eax
mov eax, dword [ebp + 0x128]
push eax
mov eax, dword [ebp + 0x274]
lea edx, [ebp + 0x284]
add ecx, eax
call fcn.0040dd20
mov edi, str._hash_table_
mov esi, 0x7fed7fed
mov ebx, 0xeeeeeeee
mov edi, edi
mov al, byte [edi]
test al, al
je 0x410480
movsx eax, al
push eax
inc edi
call dword [sym.imp.MSVCRT.dll_toupper]
movzx eax, al
add esp, 4
cmp eax, 0x2f
jne 0x410461
mov eax, 0x5c
mov edx, dword [0x433c64]
lea ecx, [ebx + esi]
imul ebx, ebx, 0x21
mov esi, dword [edx + eax*4 + 0xc00]
xor esi, ecx
add ebx, eax
test edi, edi
lea ebx, [ebx + esi + 3]
jne 0x410440
mov edx, dword [ebp + 0x14c]
mov ecx, dword [ebp + 0x280]
push esi
shl edx, 4
call fcn.0040dc30
mov eax, dword [ebp + 0x150]
imul eax, eax, 0x2c
push 0
push 0x138b
push str.C:projectsStormSourceSFile.cpp
push eax
call fcn.00408f70
mov edx, dword [ebp + 0x150]
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [ebp + 0x148]
shl edx, 4
push edx
push eax
mov dword [ebp + 0x27c], eax
mov eax, dword [ebp + 0x128]
push eax
add ecx, dword [ebp + 0x274]
lea edx, [ebp + 0x284]
call fcn.0040dd20
mov esi, str._block_table_
mov edi, 0x7fed7fed
mov ebx, 0xeeeeeeee
mov al, byte [esi]
test al, al
je 0x410537
movsx eax, al
push eax
inc esi
call dword [sym.imp.MSVCRT.dll_toupper]
movzx eax, al
add esp, 4
cmp eax, 0x2f
jne 0x410518
mov eax, 0x5c
mov edx, dword [0x433c64]
lea ecx, [ebx + edi]
imul ebx, ebx, 0x21
mov edi, dword [edx + eax*4 + 0xc00]
xor edi, ecx
add ebx, eax
test esi, esi
lea ebx, [ebx + edi + 3]
jne 0x4104f7
mov edx, dword [ebp + 0x150]
mov ecx, dword [ebp + 0x27c]
push edi
shl edx, 4
call fcn.0040dc30
mov edx, dword [ebp + 0x150]
mov ecx, dword [ebp + 0x27c]
call fcn.00410690
mov eax, dword [ebp + 0x274]
test eax, eax
je 0x41059c
mov eax, dword [ebp + 0x150]
xor esi, esi
test eax, eax
jbe 0x41059c
xor edx, edx
mov eax, dword [ebp + 0x27c]
mov ecx, dword [eax + edx]
add eax, edx
test ecx, ecx
je 0x41058e
mov edi, dword [ebp + 0x274]
add edi, ecx
mov dword [eax], edi
mov eax, dword [ebp + 0x150]
inc esi
add edx, 0x2c
cmp esi, eax
jb 0x410575
push 0x433cb0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x433c88]
test eax, eax
jle 0x4105c9
mov ecx, dword [ebp + 0x130]
cmp dword [eax + 0x130], ecx
jle 0x4105cb
mov eax, dword [eax + 4]
test eax, eax
jle 0x4105c9
jne 0x4105b6
jmp 0x4105cb
xor eax, eax
mov esi, dword [ebp]
test esi, esi
je 0x4105ff
mov edx, dword [ebp + 4]
test edx, edx
jg 0x4105dd
not edx
jmp 0x4105e6
mov edi, dword [esi + 4]
mov ecx, ebp
sub ecx, edi
add edx, ecx
mov dword [edx], esi
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [ecx + 4], edx
mov dword [ebp], 0
mov dword [ebp + 4], 0
test eax, eax
jne 0x410608
mov eax, 0x433c84
mov ecx, dword [eax]
mov dword [ebp], ecx
mov edx, dword [ecx + 4]
mov dword [ebp + 4], edx
mov dword [ecx + 4], ebp
push 0x433cb0
mov dword [eax], ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0x28c]
test eax, eax
je 0x41065b
call fcn.0040ce10
mov eax, dword [esp + 0x2c]
mov dword [eax], ebp
mov ecx, dword [ebp + 0x150]
mov edx, dword [ebp + 0x27c]
push ecx
mov ecx, ebp
call fcn.00410720
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret 8
test byte [esp + 0x20], 1
je 0x410632
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x410632
push ebp
call fcn.0040f160
push 0xf
call fcn.0040c3e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 8