Function at 0x435d40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x53a024]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [ecx + 0x13], 0
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], edi
je 0x435eb4
mov eax, dword [ebp + 0x10]
xor esi, esi
shr eax, 1
sub eax, 3
push dword [ecx + 0xc]
push eax
push 1
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x435e1d
mov edx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__getc_nolock]
cmp esi, 2
je 0x435dcc
mov cl, byte [edi + ebx - 1]
movzx eax, cl
movsx eax, byte [eax + 0x40f2f8]
cmp byte [eax*8 + 0x405701], 1
ja 0x4932d6
and cl, 0xc0
cmp cl, 0x80
je 0x4932d6
cmp byte [edi + ebx - 1], 0xd
je 0x435e42
test esi, esi
jne 0x435ed3
lea edx, [edi + ebx]
mov eax, edi
cmp edi, edx
jae 0x435e00
mov cl, byte [eax]
test cl, cl
je 0x435ee1
cmp cl, 0x7f
ja 0x435e61
inc eax
cmp eax, edx
jb 0x435de4
test esi, esi
jne 0x435e9c
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov dword [edx], ebx
mov dword [ecx], ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481a32
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
pop edi
pop esi
mov dword [edx], 0
mov dword [ecx], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.00481a32
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp - 0x20]
push dword [eax + 0xc]
call edx
add esp, 4
cmp al, 0xa
jne 0x49331f
mov byte [edi + ebx], al
inc ebx
mov dword [ebp - 0x24], ebx
jmp 0x435dd3
movzx ecx, cl
inc esi
mov dword [ebp - 0x1c], esi
movsx ecx, byte [ecx + 0x40f2f8]
movzx esi, byte [ecx*8 + 0x405701]
sub esi, 1
je 0x435ee1
lea ecx, [esi + eax]
cmp ecx, edx
jae 0x435ee1
mov cl, byte [eax + 1]
inc eax
and cl, 0xc0
cmp cl, 0x80
jne 0x435ee1
sub esi, 1
jne 0x435e83
mov esi, dword [ebp - 0x1c]
jmp 0x435df3
mov eax, dword [ebp - 0x20]
mov ecx, 0xfde9
mov dword [eax + 0x10], 0
mov word [eax + 0x10], cx
jmp 0x435e00
mov eax, 0xfde9
cmp word [ecx + 0x10], ax
mov eax, dword [ebp + 0x10]
jne 0x4932c9
add eax, 0xfffffffd
mov esi, 1
jmp 0x435d7c
cmp esi, 2
jne 0x435e00
jmp 0x493337
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x10], 0
jmp 0x493337
shr eax, 1
mov esi, 2
dec eax
jmp 0x435d7c
xor edi, edi
mov eax, dword [ebp - 0x20]
push dword [eax + 0xc]
call edx
mov cl, al
add esp, 4
and cl, 0xc0
cmp cl, 0x80
jne 0x49330a
mov ecx, dword [ebp - 0x28]
inc edi
mov edx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__getc_nolock]
mov byte [ecx + ebx], al
inc ebx
mov dword [ebp - 0x24], ebx
cmp edi, 3
jl 0x4932d8
mov edi, ecx
jmp 0x435dd3
mov ecx, dword [ebp - 0x20]
movsx eax, al
push dword [ecx + 0xc]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__ungetc_nolock]
mov edi, dword [ebp - 0x28]
jmp 0x49332f
mov ecx, dword [ebp - 0x20]
movzx eax, al
push dword [ecx + 0xc]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__ungetc_nolock]
add esp, 8
jmp 0x435dd3
lea eax, [ebp - 0x18]
add ebx, edi
push eax
mov dword [ebp - 0x34], ebx
mov esi, ebx
call fcn.0048121a
push eax
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
mov eax, dword [ebp - 0x18]
cmp eax, 1
jne 0x493368
mov esi, edi
cmp edi, ebx
je 0x4933d8
cmp byte [esi], 0
jl 0x4933d8
inc esi
cmp esi, ebx
jne 0x49335c
jmp 0x4933d8
cmp eax, 2
jne 0x4933d8
lea ecx, [ebx - 1]
mov dword [ebp - 0x1c], ecx
cmp ecx, edi
jb 0x493398
mov ebx, ecx
movsx eax, byte [ebx]
push eax
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__ismbblead]
add esp, 4
test eax, eax
je 0x49338f
dec ebx
cmp ebx, edi
jae 0x493379
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
mov dl, bl
lea eax, [ebx - 1]
sub dl, cl
dec dl
and dl, 1
cmp ecx, eax
jne 0x4933be
mov eax, edi
cmp edi, ebx
jae 0x4933c0
cmp byte [eax], 0
jl 0x4933ba
inc eax
cmp eax, ebx
jb 0x4933ae
jmp 0x4933c0
mov esi, eax
jmp 0x4933c0
mov esi, edi
test dl, dl
je 0x4933d8
mov eax, dword [ebp - 0x20]
push dword [eax + 0xc]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__getc_nolock]
add esp, 4
mov byte [ebx], al
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov edi, esi
mov ecx, dword [ebp - 0x24]
sub edi, eax
add eax, ecx
cmp esi, eax
je 0x493464
mov ebx, ecx
sub ebx, edi
lea eax, [ebx + 4]
add eax, eax
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [ebp - 0x1c], eax
lea ecx, [ebx + 4]
push ecx
push eax
push ebx
push esi
push 8
call fcn.0048121a
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x493434
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebx + 4]
push eax
push dword [ebp - 0x1c]
push ebx
push esi
push 0
call fcn.0048121a
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, dword [ebp - 0x1c]
lea edx, [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov ecx, ebx
mov eax, dword [ebp + 0x10]
sub eax, edi
push eax
push esi
call fcn.00435450
push ebx
mov esi, eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov edx, dword [ebp - 0x2c]
lea eax, [esi + edi]
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov dword [edx], ecx
jmp 0x49346c
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov dword [edx], eax
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
jmp 0x435e0a