Function at 0x412810
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, ecx
mov esi, edx
mov dword [ebp - 4], eax
mov edi, edi
mov ecx, dword [ebp - 4]
lea eax, [ecx + 1]
cmp eax, 0x5d
ja case.0x412832.0
movzx edx, byte [eax + 0x4129ac]
jmp dword [edx*4 + 0x41298c]
cmp ecx, 0xd
jne 0x412859
call fcn.00412140
cmp eax, 0xa
je 0x412859
cmp byte [esi + 0x1c], 0
jne 0x412859
mov eax, dword [esi + 8]
test eax, eax
je 0x412859
dec eax
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
inc dword [esi + 0xc]
add eax, dword [esi + 8]
mov dword [esi + 0x14], eax
jmp case.0x412832.9
mov eax, esi
call fcn.00412690
jmp case.0x412832.9
mov eax, esi
call fcn.00412a10
jmp case.0x412832.9
mov eax, ebx
mov ecx, esi
call fcn.00412be0
jmp case.0x412832.9
mov eax, dword [ebx + 0x10]
or ecx, 0xffffffff
sub ecx, eax
cmp ecx, 1
jbe 0x412980
lea edi, [eax + 1]
cmp edi, 0xfffffffe
ja 0x412980
mov ecx, dword [ebx + 0x14]
cmp ecx, edi
jae 0x4128c7
push eax
push edi
push ebx
call fcn.00412f70
test edi, edi
je case.0x412832.9
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x4128e1
mov eax, dword [ebx]
jmp 0x4128e3
test edi, edi
jne 0x4128ba
mov dword [ebx + 0x10], edi
cmp ecx, 0x10
jb 0x4128da
mov eax, dword [ebx]
mov byte [eax], 0
jmp case.0x412832.9
mov eax, ebx
mov byte [eax], 0
jmp case.0x412832.9
mov eax, ebx
mov dl, byte [ebp - 4]
mov byte [eax + ecx], dl
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], edi
jb 0x4128f6
mov eax, dword [ebx]
jmp 0x4128f8
mov eax, ebx
mov byte [eax + edi], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x412917
movzx ecx, byte [eax + esi + 0x1d]
inc eax
mov dword [ebp - 4], ecx
mov dword [esi + 8], eax
jmp 0x412820
cmp byte [esi + 0x1c], 0
je 0x412925
or eax, 0xffffffff
jmp 0x41281b
mov edx, dword [esi + 0x18]
add dword [esi + 0x10], ecx
push edx
push 0x2800
lea edi, [esi + 0x1d]
push 1
push edi
call fcn.00514b00
add esp, 0x10
mov dword [esi + 4], eax
mov dword [esi + 8], 0
test eax, eax
jne 0x412959
mov byte [esi + 0x1c], 1
or eax, 0xffffffff
jmp 0x41281b
movzx eax, byte [edi]
mov dword [esi + 8], 1
jmp 0x41281b
cmp byte [esi + 0x1c], 0
jne 0x412979
mov eax, dword [esi + 8]
test eax, eax
je 0x412979
dec eax
mov dword [esi + 8], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.string_too_long
call fcn.0052b420
mov edi, edi
jns 0x4129b7
inc ecx
add ah, bh
sub byte [ecx], al
cmp dword [eax], ebp
inc ecx
add byte [esi + 0x28], dh
inc ecx
add byte [edx + 0x28], ch
inc ecx
add byte [eax + 0x29], ch
inc ecx
add byte [edi + 0x28], bh
inc ecx
add byte [edx + 0x4128], cl
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add dword [edx], eax
pop es
add al, byte [edi]
pop es
add al, byte [edi]
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add dword [edi], eax
add eax, dword [edi]
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add al, 7
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add eax, 117900551
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
push es
int3