Function at 0x446c40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x457140
push 0x44bffc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], ebx
push 0x100
call fcn.0044c0d4
add esp, 4
mov dword [ebp - 0x28], eax
cmp eax, ebx
jne 0x446c9d
mov dword [ebp - 4], 0xffffffff
jmp 0x44700e
mov esi, dword [ebp + 0xc]
push ebx
push ebx
xor eax, eax
mov ah, byte [esi + 8]
mov al, byte [esi + 9]
shl eax, 8
xor ecx, ecx
mov cl, byte [esi + 0xa]
or eax, ecx
shl eax, 8
xor edx, edx
mov dl, byte [esi + 0xb]
or eax, edx
push eax
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [ebp - 0x20]
push eax
push 6
lea ecx, [ebp - 0x3c]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x446c91
cmp dword [ebp - 0x20], 6
jne 0x446c91
mov eax, dword [ebp - 0x3a]
and eax, 0xff
shl eax, 8
mov edx, dword [ebp - 0x39]
and edx, 0xff
or eax, edx
mov dword [ebp - 0x48], eax
and eax, 0xffff
lea ebx, [eax + eax*2]
shl ebx, 2
push ebx
call fcn.0044c0d4
add esp, 4
mov dword [ebp - 0x34], eax
push 0
lea ecx, [ebp - 0x20]
push ecx
push ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x447005
cmp dword [ebp - 0x20], ebx
jne 0x447005
xor ebx, ebx
mov bh, byte [esi + 0xc]
mov bl, byte [esi + 0xd]
shl ebx, 8
xor edx, edx
mov dl, byte [esi + 0xe]
or ebx, edx
shl ebx, 8
xor eax, eax
mov al, byte [esi + 0xf]
or ebx, eax
xor ecx, ecx
mov ch, byte [ebp - 0x38]
mov edx, dword [ebp - 0x37]
and edx, 0xff
or ecx, edx
sub ebx, ecx
mov dword [ebp - 0x24], ebx
and ebx, 0xffff
push ebx
call fcn.0044c0d4
add esp, 4
mov dword [ebp - 0x50], eax
push 0
push 0
xor eax, eax
mov ah, byte [esi + 8]
mov al, byte [esi + 9]
shl eax, 8
xor ecx, ecx
mov cl, byte [esi + 0xa]
or eax, ecx
shl eax, 8
xor edx, edx
mov dl, byte [esi + 0xb]
or eax, edx
xor ecx, ecx
mov ch, byte [ebp - 0x38]
movsx edx, cx
mov ecx, dword [ebp - 0x37]
and ecx, 0xff
or edx, ecx
add eax, edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [ebp - 0x20]
push edx
push ebx
mov esi, dword [ebp - 0x50]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x447005
cmp dword [ebp - 0x20], ebx
jne 0x447005
add ebx, esi
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x48]
mov cx, ax
add eax, 0xffff
mov dword [ebp - 0x48], eax
test cx, cx
je 0x446faa
xor esi, esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x34]
lea ebx, [eax + edx*4]
mov dword [ebp - 0x4c], ebx
mov eax, ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], esi
cmp esi, 6
jge 0x446e2d
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
mov word [eax], cx
add eax, 2
mov dword [ebp - 0x60], eax
inc esi
jmp 0x446e12
mov cx, word [ebx]
cmp cx, 3
jne 0x446e59
mov ax, word [ebx + 4]
cmp word [0x475a76], ax
jne 0x446e4c
mov dword [ebp - 0x54], 1
jmp 0x446e59
cmp ax, 0x409
jne 0x446e59
mov dword [ebp - 0x58], 1
cmp cx, 1
jne 0x446ed7
cmp word [ebx + 6], 4
jne 0x446ed7
xor edx, edx
mov dx, word [ebx + 0xa]
xor eax, eax
mov ax, word [ebx + 8]
mov ecx, dword [ebp - 0x50]
add ecx, edx
add eax, ecx
cmp dword [ebp - 0x2c], eax
jb 0x446ed7
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x446ed7
mov dword [ebp - 0x1c], 1
push 0x40
call fcn.0044c0d4
add esp, 4
mov edx, eax
mov dword [ebp - 0x44], edx
mov ecx, 0x10
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov ax, word [ebx + 8]
cmp ax, 0x40
jbe 0x446eb7
mov eax, 0x40
jmp 0x446ebc
and eax, 0xffff
mov ecx, eax
xor esi, esi
mov si, word [ebx + 0xa]
add esi, dword [ebp - 0x50]
mov edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x54]
test eax, eax
jne 0x446ee9
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x446ddd
cmp word [ebx + 6], 4
jne 0x446ddd
xor eax, eax
mov ax, word [ebx + 0xa]
xor ecx, ecx
mov cx, word [ebx + 8]
lea edx, [ecx + eax]
mov edi, dword [ebp - 0x50]
add edx, edi
cmp dword [ebp - 0x2c], edx
jb 0x446ddd
xor edx, edx
test edx, edx
jne 0x446ddd
mov edx, edi
lea esi, [eax + edx]
mov edi, dword [ebp - 0x28]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov ax, word [ebx + 8]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp + 0x10]
lea esi, [ecx + 0x62]
mov dword [ebp - 0x74], esi
mov ecx, eax
shr ecx, 1
mov dword [ebp - 0x68], ecx
mov byte [esi], 0
cdq
sub eax, edx
sar eax, 1
cmp eax, 0x40
jge 0x446f95
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x6c], eax
xor edi, edi
mov dword [ebp - 0x70], edi
cmp edi, ecx
jge 0x446f79
xor edx, edx
mov dh, byte [eax]
mov dl, byte [eax + 1]
mov word [eax], dx
add eax, 2
mov dword [ebp - 0x6c], eax
inc edi
jmp 0x446f5f
push 0
push 0
push 0x40
push esi
push ecx
mov eax, dword [ebp - 0x28]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x446f95
mov byte [esi], al
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x446ddd
mov ebx, 1
mov dword [ebp - 0x40], ebx
jmp 0x446faf
mov ebx, 1
mov ecx, dword [ebp + 0x10]
lea edx, [ecx + 0x62]
cmp byte [edx], 0
jne 0x446fe5
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x447005
mov edi, dword [ebp - 0x44]
test edi, edi
je 0x447005
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x30], ebx
jmp 0x447005
mov dword [ebp - 4], 0xffffffff
xor ebx, ebx
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x44701e
push eax
call fcn.0044c186
add esp, 4
mov eax, dword [ebp - 0x50]
cmp eax, ebx
je 0x44702e
push eax
call fcn.0044c186
add esp, 4
mov eax, dword [ebp - 0x34]
cmp eax, ebx
je 0x44703e
push eax
call fcn.0044c186
add esp, 4
mov eax, dword [ebp - 0x44]
cmp eax, ebx
je 0x44704e
push eax
call fcn.0044c186
add esp, 4
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc