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

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
push dword [0x52d8ec]
xor ebp, ebp
call fcn.0043ebe1
mov ebx, eax
call fcn.0042e0f1
cmp dword [esp + 0x1c], ebp
mov esi, 0x4f4268
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
cmovne esi, dword [esp + 0x1c]
xor eax, eax
push eax
push pe_nt_image_headers32
push 3
push eax
push 1
push 0xc0000000
push esi
mov dword [ebx + 0xc], eax
call edi
mov dword [ebx], eax
cmp eax, 0xffffffff
jne 0x42dcdf
push ebp
push pe_nt_image_headers32
push 3
push ebp
push 1
push 0x80000000
push esi
call edi
mov dword [ebx], eax
cmp eax, 0xffffffff
jne 0x42dccf
push ebp
push pe_nt_image_headers32
push 3
push ebp
push 3
push 0x80000000
push esi
call edi
mov dword [ebx], eax
mov dword [ebx + 0xc], 1
cmp eax, 0xffffffff
je 0x42df9f
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
xor ecx, ecx
cmp dword [esp + 0x24], 2
mov eax, 0xfde9
cmovne eax, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebx + 0x2c], eax
cmp edi, 3
jl 0x42dd50
push ecx
lea eax, [esp + 0x18]
push eax
push 3
lea eax, [esp + 0x1c]
push eax
push dword [ebx]
call esi
cmp dword [esp + 0x14], 3
jne 0x42de09
push 3
lea eax, [esp + 0x14]
push 0x4f6a58
push eax
call fcn.0041fc01
add esp, 0xc
test eax, eax
jne 0x42de09
mov dword [ebx + 0x18], 0xfde9
sub edi, 3
test edi, edi
jle 0x42de39
lea eax, [edi + 2]
xor ecx, ecx
push eax
push ecx
push dword [0x529ae8]
cmp dword [ebx + 0x18], ecx
jne 0x42de1b
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x42de39
lea eax, [edi*4 + 2]
push eax
push 0
push dword [0x529ae8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x42de39
push 0
lea eax, [esp + 0x18]
push eax
push edi
push esi
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
push esi
mov byte [esi + eax], 0
call fcn.004afa20
mov edi, eax
push edi
call fcn.004afab0
mov esi, eax
push esi
push dword [ebx + 0x10]
call fcn.004c7070
pop ecx
pop ecx
push esi
call fcn.004afaa0
push edi
call fcn.004afb40
push dword [ebx + 0x10]
call fcn.004c7170
pop ecx
push dword [esp + 0x1c]
mov dword [ebx + 0x18], 0xfde9
mov edi, eax
push 0
push dword [0x529ae8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x42de39
xor eax, eax
push eax
push eax
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x42dd58
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x42de39
push 0
lea ecx, [esp + 0x18]
push ecx
push edi
push eax
push dword [ebx]
call esi
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x42dfdc
xor ecx, ecx
mov word [eax + edi], cx
mov esi, dword [ebx + 0x10]
lea eax, [esi + edi]
mov dword [ebx + 0x14], eax
cmp esi, eax
jae 0x42dfdc
push 0x10
pop edi
mov al, byte [esi]
cmp al, 0x20
je 0x42de68
cmp al, 9
jne 0x42de6b
inc esi
jmp 0x42de5e
cmp al, 0x3b
jne 0x42deb9
inc esi
cmp byte [esi], 0x20
jne 0x42de76
inc esi
push edi
test ebp, ebp
je 0x42de83
push ebp
call fcn.0043f581
jmp 0x42de8c
lea eax, [ebx + 0x1c]
push eax
call fcn.0043f512
lea ebp, [eax - 8]
pop ecx
pop ecx
mov dword [ebp + 8], 2
mov dword [ebp + 0xc], esi
jmp 0x42deae
cmp al, 0xa
je 0x42df86
cmp al, 0xd
je 0x42df86
inc esi
mov al, byte [esi]
test al, al
jne 0x42de9d
jmp 0x42df86
cmp al, 0x5b
jne 0x42df20
inc esi
push edi
test ebp, ebp
je 0x42decb
push ebp
call fcn.0043f581
jmp 0x42ded4
lea eax, [ebx + 0x1c]
push eax
call fcn.0043f512
lea ebp, [eax - 8]
mov dword [ebp + 8], 1
mov dword [ebp + 0xc], esi
mov al, byte [esi]
pop ecx
pop ecx
test al, al
je 0x42df05
mov cl, al
mov al, cl
cmp cl, 0x5d
je 0x42df05
cmp cl, 0xa
je 0x42df05
cmp cl, 0xd
je 0x42df05
inc esi
mov al, byte [esi]
mov cl, al
test al, al
jne 0x42deeb
mov byte [esi], 0
inc esi
cmp al, 0x5d
jne 0x42df8a
jmp 0x42df18
cmp al, 0xa
je 0x42df8a
cmp al, 0xd
je 0x42df8a
inc esi
mov al, byte [esi]
test al, al
jne 0x42df0f
jmp 0x42df8a
cmp al, 0xa
je 0x42df8a
cmp al, 0xd
je 0x42df8a
mov edx, esi
jmp 0x42df3b
cmp al, 0x3d
je 0x42df3f
cmp al, 0xd
je 0x42df3f
cmp al, 0xa
je 0x42df3f
inc esi
mov al, byte [esi]
test al, al
jne 0x42df2c
lea eax, [esi - 1]
jmp 0x42df51
mov cl, byte [eax]
cmp cl, 0x20
je 0x42df50
cmp cl, 9
jne 0x42df55
dec eax
cmp eax, edx
ja 0x42df44
mov byte [eax + 1], 0
inc esi
mov al, byte [esi]
cmp al, 0x20
je 0x42df59
cmp al, 9
je 0x42df59
push esi
push edx
lea eax, [ebx + 0x1c]
push ebp
push eax
call fcn.0042dff7
add esp, 0x10
mov ebp, eax
jmp 0x42df80
cmp al, 0xa
je 0x42df86
cmp al, 0xd
je 0x42df86
inc esi
mov al, byte [esi]
test al, al
jne 0x42df77
mov byte [esi], 0
inc esi
mov al, byte [esi]
cmp al, 0xa
je 0x42df89
cmp al, 0xd
je 0x42df89
cmp esi, dword [ebx + 0x14]
jb 0x42de5e
jmp 0x42dfdc
mov eax, dword [esp + 0x20]
and dword [ebx], ebp
push esi
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x18], 0xfde9
call fcn.004146fc
pop ecx
lea eax, [eax*2 + 2]
push eax
push 0
push dword [0x529ae8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 4], eax
test eax, eax
je 0x42dfdc
push esi
push eax
call fcn.004c6fd3
pop ecx
pop ecx
mov eax, dword [ebx]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret 0xc