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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
xor ebx, ebx
mov dword [ebp - 0x10], ebx
cmp dword [ebp + 0x1c], ebx
jne 0x43c765
xor eax, eax
jmp 0x43ca45
cmp dword [ebp + 0x14], ebx
je 0x43c75e
cmp dword [ebp + 0x18], ebx
jbe 0x43c75e
push esi
push edi
push ebx
push dword [ebp + 0x1c]
call fcn.0045d7d0
pop ecx
pop ecx
test eax, eax
jne 0x43ca0e
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp + 0x1c], esi
cmp esi, 0xffffffff
je 0x43ca0e
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, ebx
je 0x43ca07
cmp edi, 0xffffffff
je 0x43ca07
lea eax, [edi + 2]
mov esi, 0x497a18
push esi
push eax
mov dword [ebp - 0xc], eax
call fcn.0045d73c
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x43c7e8
push dword [ebp + 0x1c]
jmp 0x43ca08
push 0
lea eax, [ebp - 0x10]
push eax
push edi
push ebx
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp + 0x1c]
test eax, eax
jne 0x43c808
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43c865
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x10], 0
je 0x43c865
and dword [ebp - 8], 0
cmp edi, 3
jb 0x43c83b
cmp byte [ebx], 0xff
jne 0x43c83b
cmp byte [ebx + 1], 0xfe
jne 0x43c83b
mov ecx, edi
shr ecx, 1
lea eax, [ebx + 2]
xor edx, edx
mov dword [ebp - 4], eax
mov word [eax + ecx*2 - 2], dx
jmp 0x43c8ac
mov eax, dword [ebp - 0xc]
push esi
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
mov byte [ebx + edi + 1], 0
mov byte [ebx + edi], 0
neg ecx
or ecx, eax
push ecx
call fcn.0045d73c
pop ecx
pop ecx
mov dword [ebp - 4], eax
test eax, eax
jne 0x43c86b
push ebx
jmp 0x43c9bf
and dword [ebp - 0x14], 0
push edi
push ebx
push dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0045e227
add esp, 0x14
test eax, eax
je 0x43c899
push ebx
call fcn.0045ba0a
push dword [ebp - 4]
call fcn.0045ba0a
pop ecx
jmp 0x43c9c4
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
xor eax, eax
mov word [edx + ecx*2], ax
mov dword [ebp - 8], 1
push esi
xor ecx, ecx
push 2
pop edx
cmp dword [ebp + 0xc], ecx
jne 0x43c96b
mov eax, dword [ebp - 0xc]
mul edx
mov byte [ebp + 0x1f], cl
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045d73c
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x43c984
push dword [ebp - 0xc]
xor eax, eax
push edi
push dword [ebp + 8]
mov word [edi], ax
push dword [ebp - 4]
call fcn.0043c1f8
mov esi, eax
add esp, 0x10
cmp dword [ebp + 0x18], esi
jae 0x43c901
mov esi, dword [ebp + 0x18]
mov byte [ebp + 0x1f], 1
cmp esi, 1
jbe 0x43c92f
lea edx, [esi - 2]
test edx, edx
jbe 0x43c925
mov eax, dword [ebp + 0x14]
mov ecx, edi
sub ecx, eax
mov dword [ebp - 0xc], edx
mov dx, word [ecx + eax]
mov word [eax], dx
inc eax
inc eax
dec dword [ebp - 0xc]
jne 0x43c917
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov word [ecx + esi*2 - 4], ax
mov ecx, dword [ebp + 0x14]
xor eax, eax
push edi
mov word [ecx + esi*2 - 2], ax
call fcn.0045ba0a
push ebx
call fcn.0045ba0a
cmp dword [ebp - 8], 1
pop ecx
pop ecx
jne 0x43c956
push dword [ebp - 4]
call fcn.0045ba0a
pop ecx
cmp byte [ebp + 0x1f], 0
lea eax, [esi - 2]
jne 0x43ca43
lea eax, [esi - 1]
jmp 0x43ca43
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0045d73c
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x43c98c
push ebx
call fcn.0045ba0a
jmp 0x43c9b5
push edi
push esi
push dword [ebp + 0xc]
xor eax, eax
push dword [ebp + 8]
mov word [esi], ax
push dword [ebp - 4]
call fcn.0043be56
add esp, 0x14
push esi
test eax, eax
jne 0x43c9c7
call fcn.0045ba0a
push ebx
call fcn.0045ba0a
pop ecx
cmp dword [ebp - 8], 1
pop ecx
jne 0x43ca0e
push dword [ebp - 4]
call fcn.0045ba0a
pop ecx
jmp 0x43ca0e
mov edi, dword [ebp + 0x18]
push 0x48151c
push 0xffffffffffffffff
push edi
push dword [ebp + 0x14]
call fcn.0045dbbb
mov ecx, dword [ebp + 0x14]
xor eax, eax
push esi
mov word [ecx + edi*2 - 2], ax
call fcn.0045ba0a
push ebx
call fcn.0045ba0a
add esp, 0x1c
cmp dword [ebp - 8], 1
jne 0x43ca02
push dword [ebp - 4]
call fcn.0045ba0a
pop ecx
push dword [ebp + 0x14]
jmp 0x43ca3d
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp + 0x18]
push 0xffffffffffffffff
lea eax, [esi - 1]
jne 0x43ca23
push 0x481518
jmp 0x43ca26
push dword [ebp + 0x10]
push eax
push dword [ebp + 0x14]
call fcn.0045bb54
mov ecx, dword [ebp + 0x14]
add esp, 0x10
xor eax, eax
mov word [ecx + esi*2 - 2], ax
push ecx
call fcn.0045a12c
pop ecx
pop edi
pop esi
pop ebx
leave
ret