Function at 0x10003d3e
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push dword [0x1000c600]
xor edi, edi
mov dword [ebp - 8], edi
call fcn.10007952
mov esi, eax
call fcn.10004234
cmp dword [ebp + 8], edi
jne 0x10003d6a
mov dword [ebp + 8], 0x1000a050
push edi
mov ebx, pe_nt_image_headers32
push ebx
push 3
push edi
push 1
push 0xc0000000
push dword [ebp + 8]
mov dword [esi + 0xc], edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
call edi
cmp eax, 0xffffffff
mov dword [esi], eax
jne 0x10003dcf
push 0
push ebx
push 3
push 0
push 1
push 0x80000000
push dword [ebp + 8]
call edi
cmp eax, 0xffffffff
mov dword [esi], eax
jne 0x10003dbf
push 0
push ebx
push 3
push 0
push 3
push 0x80000000
push dword [ebp + 8]
call edi
mov dword [esi], eax
cmp dword [esi], 0xffffffff
mov dword [esi + 0xc], 1
je 0x10003f9d
xor ebx, ebx
push ebx
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 3
mov dword [esi + 0x18], ebx
jl 0x10003e2b
push ebx
lea eax, [ebp - 0xc]
push eax
push 3
lea eax, [ebp - 4]
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0xc], 3
jne 0x10003e20
push 3
lea eax, [ebp - 4]
push 0x1000a04c
push eax
call sub.MSVCRT.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10003e20
mov dword [esi + 0x18], 0xfde9
sub edi, 3
jmp 0x10003e2b
push ebx
push ebx
push ebx
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp edi, ebx
jle 0x10003e59
lea eax, [edi + 2]
push eax
push ebx
push dword [0x1000c2d0]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, ebx
mov dword [esi + 0x10], eax
je 0x10003e59
push ebx
lea ecx, [ebp - 0xc]
push ecx
push edi
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [ebp - 0xc]
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x10003fce
mov word [eax + edi], bx
mov eax, dword [esi + 0x10]
lea ecx, [eax + edi]
mov edi, eax
cmp edi, ecx
mov dword [esi + 0x14], ecx
mov bl, 0xa
jae 0x10003fce
mov al, byte [edi]
cmp al, 0x20
je 0x10003e87
cmp al, 9
jne 0x10003e8a
inc edi
jmp 0x10003e7d
mov al, byte [edi]
cmp al, 0x3b
jne 0x10003ecb
inc edi
cmp byte [edi], 0x20
jne 0x10003e97
inc edi
push edi
push 2
push dword [ebp - 8]
lea eax, [esi + 0x1c]
push eax
call fcn.10003d0e
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x10003ec1
mov al, byte [edi]
cmp al, bl
je 0x10003f84
cmp al, 0xd
je 0x10003f84
inc edi
cmp byte [edi], 0
jne 0x10003eae
jmp 0x10003f84
cmp al, 0x5b
jne 0x10003f1a
inc edi
push edi
push 1
push dword [ebp - 8]
lea eax, [esi + 0x1c]
push eax
call fcn.10003d0e
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x10003ef6
mov al, byte [edi]
cmp al, 0x5d
je 0x10003f04
cmp al, bl
je 0x10003efb
cmp al, 0xd
je 0x10003efb
inc edi
cmp byte [edi], 0
jne 0x10003ee7
cmp byte [edi], 0x5d
jne 0x10003f84
mov byte [edi], 0
jmp 0x10003f11
cmp al, bl
je 0x10003f87
cmp al, 0xd
je 0x10003f88
inc edi
mov al, byte [edi]
test al, al
jne 0x10003f09
jmp 0x10003f88
cmp al, bl
je 0x10003f88
cmp al, 0xd
je 0x10003f88
mov edx, edi
jmp 0x10003f35
cmp al, 0x3d
je 0x10003f39
cmp al, 0xd
je 0x10003f39
cmp al, bl
je 0x10003f39
inc edi
mov al, byte [edi]
test al, al
jne 0x10003f26
lea eax, [edi - 1]
jmp 0x10003f4b
mov cl, byte [eax]
cmp cl, 0x20
je 0x10003f4a
cmp cl, 9
jne 0x10003f4f
dec eax
cmp eax, edx
ja 0x10003f3e
mov byte [eax + 1], 0
inc edi
mov al, byte [edi]
cmp al, 0x20
je 0x10003f53
cmp al, 9
je 0x10003f53
push edi
push edx
push dword [ebp - 8]
lea eax, [esi + 0x1c]
push eax
call fcn.10003d0e
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x10003f7f
mov al, byte [edi]
cmp al, bl
je 0x10003f84
cmp al, 0xd
je 0x10003f84
inc edi
cmp byte [edi], 0
jne 0x10003f74
mov byte [edi], 0
inc edi
mov al, byte [edi]
cmp al, bl
je 0x10003f87
cmp al, 0xd
je 0x10003f87
cmp edi, dword [esi + 0x14]
jb 0x10003e7d
jmp 0x10003fce
push dword [ebp + 8]
xor edi, edi
mov dword [esi], edi
mov dword [esi + 0x18], edi
call sub.MSVCRT.dll_strlen
pop ecx
inc eax
push eax
push edi
push dword [0x1000c2d0]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, edi
mov dword [esi + 4], eax
je 0x10003fce
push dword [ebp + 8]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
mov eax, dword [esi]
pop edi
pop esi
pop ebx
leave
ret 4