Function at 0x40dc70
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x43a004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
test edi, edi
je 0x40dda1
call section..text
test eax, eax
je 0x40dcaa
mov eax, dword [eax + 0x18]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004194d8
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x43bd20]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test ecx, ecx
je 0x40dccb
call ebx
mov ecx, dword [0x43bd20]
cmp ecx, eax
mov eax, dword [0x43acbc]
je 0x40dcd0
mov eax, dword [0x43ac6c]
mov dword [ebp - 0xc], eax
test ecx, ecx
je 0x40dce6
call ebx
cmp dword [0x43bd20], eax
mov eax, 0x43acbc
je 0x40dceb
mov eax, 0x43ac6c
or dword [eax], 0x200000
xor edx, edx
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00411a30
mov esi, eax
cmp esi, 1
jb 0x40dd0e
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [0x43bd20], 0
je 0x40dd26
call ebx
cmp dword [0x43bd20], eax
mov eax, 0x43acbc
je 0x40dd2b
mov eax, 0x43ac6c
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
sub esi, 0
je 0x40df3f
sub esi, 1
jne 0x40dda1
mov ecx, edi
call fcn.00411bc0
mov edi, eax
mov dword [ebp - 0xc], edi
cmp edi, 0xffffffff
je 0x40dda1
push 0x2008
call fcn.0041d6de
mov esi, eax
add esp, 4
test esi, esi
jne 0x40ddb5
movzx eax, word [0x43ad06]
sub eax, 7
je 0x40dd86
sub eax, 2
je 0x40dd7f
sub eax, 1
jne 0x40dd7f
mov eax, dword [str.El_sistema_no_puede_asignar_suficiente_memoria]
jmp 0x40dd8b
mov eax, dword [str.The_system_cannot_allocate_enough_memory]
jmp 0x40dd8b
mov eax, dword [str.Der_Speicher_reicht_nicht]
push eax
push 0xa8010f00
call fcn.00413190
add esp, 8
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004194d8
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push edi
mov ebx, 1
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
jne 0x40dde5
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x40ddfb
mov ecx, 0xe0010010
jmp 0x40def8
cmp dword [ebp - 8], 0
jne 0x40def3
cmp eax, 0x10
jae 0x40ddfb
xor edi, edi
jmp 0x40df08
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x10]
push 0x20010010
push eax
xor edi, edi
mov edx, esi
push 0x1ffc
mov dword [ebp - 8], edi
call fcn.00412150
add esp, 0xc
test eax, eax
je 0x40df05
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40dee2
mov byte [eax + esi], 0
cmp ebx, 1
jne 0x40de90
push 0x5b
push esi
xor ebx, ebx
call fcn.0041a640
mov edi, eax
add esp, 8
test edi, edi
je 0x40ddf4
cmp edi, esi
je 0x40de8d
mov edx, dword [ebp - 0x10]
mov ecx, esi
call fcn.004170e0
sub eax, 1
je 0x40de6c
sub eax, 0xfe
je 0x40de71
lea edi, [ebx - 2]
jmp 0x40df08
mov ebx, 2
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40de76
sub ecx, edx
lea eax, [ecx + 1]
push eax
push edi
push esi
call fcn.0041c640
add esp, 0xc
mov edi, dword [ebp - 8]
mov ecx, esi
call fcn.00416d30
cmp eax, 0xffffffff
je 0x40dedb
test eax, eax
je 0x40deaf
add edi, eax
mov dword [ebp - 8], edi
cmp edi, 4
ja 0x40ded4
cmp ebx, 2
je 0x40ded4
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 0x10]
push 0x20010010
push eax
push 0x1ffc
mov edx, esi
call fcn.00412150
add esp, 0xc
test eax, eax
jne 0x40de23
jmp 0x40df05
mov edi, 3
jmp 0x40df08
mov edi, 2
jmp 0x40df08
cmp ebx, 1
je 0x40df05
xor eax, eax
cmp eax, edi
sbb edi, edi
and edi, 2
inc edi
jmp 0x40df08
mov ecx, 0xa001001f
mov eax, edi
xor edx, edx
push eax
call fcn.00411f50
add esp, 4
or edi, 0xffffffff
push esi
call fcn.0041d6c3
mov ebx, dword [ebp - 0xc]
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x40df2c
push ebx
xor edx, edx
xor ecx, ecx
call fcn.00411f50
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004194d8
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004194d8
mov esp, ebp
pop ebp
ret