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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [0x4407c4]
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, esp
mov dword [esp + 0x20], eax
mov eax, dword [0x4414b8]
mov ecx, dword [0x4414bc]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
mov dword [esp + 4], eax
sete byte [esp + 0xa]
cmp ecx, 0xa
mov ecx, 0xf1d2dd06
setl byte [esp + 0xb]
jmp 0x44656d
push dword [esp + 0xc]
call ebp
mov ecx, 0x96518cd
mov al, 1
mov dword [esp], eax
cmp ecx, 0x348ac06
jg 0x446600
cmp ecx, 0xcb82b92a
jle 0x4465c0
cmp ecx, 0xec999190
jg 0x4466a4
cmp ecx, 0xcb82b92b
je 0x446784
cmp ecx, 0xd4a54340
je 0x4467cc
cmp ecx, 0xcd393115
jne 0x446570
jmp 0x446996
cmp ecx, 0xbd4aec45
jg 0x4466f6
cmp ecx, 0x9a558161
je 0x4467fa
cmp ecx, 0xa52ca2f0
jne 0x446570
cmp byte [esp + 0x13], 0
mov ecx, 0xc4d7d7e6
jne 0x446570
mov ecx, 0xcb82b92b
cmp ecx, 0x348ac06
jle 0x44657c
nop dword [eax]
cmp ecx, 0x46236b9b
jg 0x446650
cmp ecx, 0x96518cc
jg 0x44672c
cmp ecx, 0x348ac07
je 0x446744
cmp ecx, 0x59f1718
jne 0x446570
push 0
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, 0x9a558161
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
cmp ecx, 0x5dedcc8d
jg 0x446767
cmp ecx, 0x46236b9c
je 0x446869
cmp ecx, 0x4a814b6d
jne 0x446570
mov eax, dword [esp + 0x3c]
mov ecx, 0x348ac07
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0
je 0x446570
mov ecx, 0xec999191
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
cmp ecx, 0xec999191
je 0x4468e7
cmp ecx, 0xf1d2dd06
jne 0x446570
movzx eax, byte [esp + 0xa]
movzx edx, byte [esp + 0xb]
mov esi, 0x46236b9c
mov ecx, eax
xor cl, dl
mov ecx, 0x46236b9c
jne 0x4466db
mov esi, 0xd4a54340
test dl, dl
cmove ecx, esi
test al, al
cmove ecx, esi
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
cmp ecx, 0xbd4aec46
je 0x446909
cmp ecx, 0xc4d7d7e6
jne 0x446570
mov ecx, 0xcd393115
mov dword [esp + 4], 0
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
cmp ecx, 0x96518cd
je 0x44692f
cmp ecx, 0xdecec7a
jne 0x446570
push dword [esp + 0xc]
call ebp
mov ecx, 0x96518cd
mov dword [esp], 0
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
cmp ecx, 0x5dedcc8e
je 0x44694c
cmp ecx, 0x6c618373
jne 0x446570
jmp 0x446560
mov ecx, dword [0x4414b8]
mov eax, dword [0x4414bc]
mov esi, 0x9a558161
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, 0x9a558161
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, 0x59f1718
sete bl
je 0x4467b6
mov esi, 0x59f1718
cmp eax, 0xa
setl al
cmovl edx, esi
xor al, bl
jne 0x446570
jmp 0x4468d4
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push dword [esp + 0x50]
call edi
mov ecx, 0x46236b9c
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
push 0
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [0x4414b8]
mov edx, dword [0x4414bc]
mov ebx, 0xbd4aec46
lea esi, [ecx - 1]
imul esi, ecx
not esi
or esi, 0xfffffffe
cmp esi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0xbd4aec46
jne 0x44683c
mov ebx, 0x59f1718
mov dword [esp + 0x14], eax
cmp esi, 0xffffffff
mov eax, dword [esp + 0x14]
cmovne ecx, ebx
cmp edx, 0xa
cmovge ecx, ebx
cmp eax, 0xffffffff
sete byte [esp + 0x1b]
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push dword [esp + 0x50]
call edi
mov dword [esp + 0xc], eax
mov esi, 0xa52ca2f0
mov eax, dword [esp + 0xc]
mov ecx, dword [0x4414b8]
cmp eax, 0xffffffff
lea edx, [ecx - 1]
mov eax, dword [0x4414bc]
sete byte [esp + 0x13]
imul edx, ecx
mov ecx, 0xa52ca2f0
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, 0xd4a54340
sete bl
je 0x4468c3
mov esi, 0xd4a54340
cmp eax, 0xa
setl al
cmovl edx, esi
xor bl, al
jne 0x446570
mov ecx, edx
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
push dword [esp + 0x1c]
call fcn.00412cec
add esp, 4
mov ecx, 0x348ac07
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
cmp byte [esp + 0x1b], 0
mov ecx, 0xdecec7a
jne 0x446570
mov ecx, 0x5dedcc8e
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
mov eax, dword [esp]
mov ecx, 0xcd393115
mov dword [esp + 4], eax
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
push dword [esp + 0x14]
call fcn.00412ce3
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
push 0
push dword [esp + 0x44]
push dword [esp + 0x1c]
push eax
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov ecx, 0x4a814b6d
je 0x446570
mov ecx, 0x6c618373
cmp ecx, 0x348ac06
jle 0x44657c
jmp 0x446600
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x20]
xor ecx, esp
and bl, 1
call fcn.00412cf1
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret