Function at 0x423cb4
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
push 1
xor ebx, ebx
push ebx
or esi, 0xffffffff
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x4694f8]
push esi
push ebx
mov dword [ebp - 8], ecx
call fcn.0040187e
mov ecx, dword [0x466b78]
push 1
push ebx
push esi
push 0x45af3c
call fcn.0040187e
mov edi, dword [ebp + 8]
mov byte [ebp - 1], bl
mov byte [ebp - 0xc], bl
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
jmp 0x423d6e
inc esi
movsx eax, byte [esi]
push eax
call fcn.0044234f
cmp eax, 0x43
pop ecx
je 0x423d5c
cmp eax, 0x4d
je 0x423d1d
cmp eax, 0x54
jne 0x423d60
mov byte [ebp - 1], 1
jmp 0x423d60
lea eax, [esi + 1]
push eax
call fcn.0040105d
cmp edx, ebx
pop ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
ja 0x423eff
jb 0x423d42
cmp eax, 0x40000000
ja 0x423eff
push 0x45ac08
push esi
call fcn.0043956b
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x423eff
dec esi
jmp 0x423d60
mov byte [ebp - 0xc], 1
cmp byte [esi], bl
mov edi, esi
je 0x423d6e
lea edi, [esi + 1]
cmp byte [edi], bl
je 0x423d6e
inc edi
push edi
call fcn.00401ed8
mov esi, eax
cmp byte [esi], 0x2a
pop ecx
je 0x423cfd
push ebx
push 0x8000000
push 3
push ebx
push 3
push 0x80000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edx, eax
cmp edx, 0xffffffff
mov dword [ebp + 8], edx
je 0x423eff
cmp byte [ebp - 0xc], bl
je 0x423dc9
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x17]
cmp cl, bl
jne 0x423db6
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 2
jne 0x423dc9
mov ecx, dword [ebp - 0x14]
push edx
call fcn.00442d0a
jmp 0x423f02
push edx
call fcn.004384f4
pop ecx
mov esi, edx
mov ecx, eax
and ecx, esi
cmp ecx, 0xffffffff
mov dword [ebp - 0x18], eax
je 0x423ef7
mov ecx, dword [ebp - 0x20]
mov edx, ecx
and edx, dword [ebp - 0x1c]
cmp edx, 0xffffffff
jne 0x423e04
cmp esi, ebx
ja 0x423ef7
jb 0x423e04
cmp eax, 0x40000000
ja 0x423ef7
cmp dword [ebp - 0x1c], esi
ja 0x423e15
jb 0x423e0f
cmp ecx, eax
jae 0x423e15
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x466b78]
xor edi, edi
inc edi
push edi
push ebx
push 0xffffffffffffffff
push 0x459724
call fcn.0040187e
mov eax, dword [ebp - 0x18]
or eax, esi
je 0x423e47
mov ecx, dword [ebp - 8]
push ebx
push edi
push dword [ebp - 0x18]
push ebx
call fcn.0040187e
cmp eax, edi
je 0x423e57
xor edi, edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x423f02
mov ecx, dword [ebp - 8]
push edi
call fcn.00401e91
push ebx
mov esi, eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x18]
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp + 8]
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x14], ebx
je 0x423eca
cmp byte [ebp - 1], bl
mov eax, dword [ebp - 0x10]
mov byte [eax + esi], bl
je 0x423eaa
push ebx
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push 0x45e4e0
push 0x45d640
push esi
call fcn.0041ce56
add esp, 0x20
cmp byte [ebp - 0xc], bl
je 0x423eb5
mov esi, dword [ebp - 0x10]
dec esi
jmp 0x423ebe
push esi
call fcn.00457520
pop ecx
mov esi, eax
mov ecx, dword [ebp - 8]
call fcn.00401dcf
mov dword [eax], esi
jmp 0x423eea
mov ecx, dword [ebp - 8]
mov byte [esi], bl
call fcn.00401dcf
push edi
push ebx
push 0xffffffffffffffff
mov dword [eax], ebx
mov ecx, dword [0x466b78]
push 0x45af3c
call fcn.0040187e
push dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
call fcn.0040c389
jmp 0x423f02
xor edi, edi
inc edi
jmp 0x423e47
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 4