Function at 0x44c45c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
mov bx, word [esi]
push edi
mov dword [ebp - 0x10], ecx
mov byte [ebp - 2], 0
mov byte [ebp - 1], 0
mov eax, ebx
call fcn.00426fde
test al, al
mov edi, 0x4b0
jne 0x44c605
push 4
push esi
push str._UNI
call fcn.00427eca
add esp, 0xc
test al, al
jne 0x44c4b8
push 8
push esi
push str._UNICODE
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c5bc
mov dword [ebp - 8], edi
lea eax, [ebp + 8]
push eax
call fcn.00403c51
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.0042df66
mov bl, al
add esp, 0x10
neg bl
sbb bl, bl
push 0x480934
lea ecx, [ebp - 0x18]
and ebx, 2
mov byte [ebp - 0x30], bl
call fcn.004361de
push str.READLINE
lea ecx, [ebp - 0xc]
call fcn.004361de
xor eax, eax
inc eax
push 0x2c
pop edi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], eax
push edi
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 8]
xor esi, esi
push eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
call fcn.0042e8ac
mov eax, dword [ebp - 0x18]
push eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], esi
call fcn.0040ce49
add esp, 0x10
push eax
lea ecx, [ebp - 0x18]
call fcn.00436246
lea ecx, [ebp - 0x28]
call fcn.0042704a
mov esi, dword [ebp - 0x18]
push esi
push 0x487a8c
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x44c6c3
mov dword [ebp - 0x34], 1
mov byte [ebp - 2], 1
mov esi, dword [ebp + 8]
and dword [ebp - 0x28], 0
cmp word [esi], di
jne 0x44c789
lea ecx, [ebp - 0x24]
call fcn.0042c3f7
push edi
lea eax, [ebp - 0x24]
push eax
inc esi
lea eax, [ebp + 8]
inc esi
push eax
mov dword [ebp + 8], esi
call fcn.0042e8ac
mov esi, dword [ebp - 0x24]
push esi
push 0x487a88
mov dword [ebp - 0x1c], esi
call fcn.00427f44
add esp, 0x14
test al, al
je 0x44c700
mov byte [ebp - 1], 2
mov dword [ebp - 0x28], 0x487a84
jmp 0x44c760
push 5
pop edi
push edi
push esi
push str._UNIB
call fcn.00427eca
add esp, 0xc
test al, al
jne 0x44c5e6
push 9
push esi
push str._UNICODEB
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c5f2
mov dword [ebp - 8], 0x4b1
jmp 0x44c4bb
push edi
push esi
push str._ANSI
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c60e
and dword [ebp - 8], 0
jmp 0x44c4bb
push 4
push esi
push str._GBK
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c62e
mov dword [ebp - 8], 0x3a8
jmp 0x44c4bb
push edi
push esi
push str._BIG5
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c64d
mov dword [ebp - 8], 0x3b6
jmp 0x44c4bb
push edi
push esi
push str._UTF8
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c66c
mov dword [ebp - 8], 0xfde9
jmp 0x44c4bb
push edi
push esi
push str._UTF7
call fcn.00427eca
add esp, 0xc
test al, al
je 0x44c68b
mov dword [ebp - 8], 0xfde8
jmp 0x44c4bb
cmp bx, 0x2d
jne 0x44c6bb
xor eax, eax
lea ecx, [esi + 2]
mov ax, word [ecx]
push eax
call fcn.0040ee76
add esp, 4
test al, al
je 0x44c6bb
push ecx
mov dword [ebp + 8], ecx
call fcn.0042ce79
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jge 0x44c4bb
xor eax, eax
inc eax
jmp 0x44cdc6
cmp word [esi], 0
je 0x44c561
push esi
push 0x4814dc
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x44c561
push esi
push 0x480f74
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x44c565
mov byte [ebp - 2], 2
jmp 0x44c565
push esi
push 0x487a44
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x44c717
mov byte [ebp - 1], 3
jmp 0x44c760
push esi
push 0x4877d8
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x44c735
mov byte [ebp - 1], 1
mov dword [ebp - 0x28], 0x487a40
jmp 0x44c760
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042ed5c
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x44c760
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042ed5c
pop ecx
pop ecx
lea ecx, [ebp - 0x24]
call fcn.0042704a
mov esi, dword [ebp + 8]
cmp word [esi], di
jne 0x44c789
push edi
lea eax, [ebp - 0xc]
push eax
inc esi
lea eax, [ebp + 8]
inc esi
push eax
mov dword [ebp + 8], esi
call fcn.0042e8ac
mov esi, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.00402a5b
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
jne 0x44c7a7
xor esi, esi
jmp 0x44cbb1
cmp byte [ebp - 2], 1
jne 0x44c7bc
cmp word [esi], di
je 0x44c7bc
mov esi, 0x80070057
jmp 0x44cbb1
inc esi
inc esi
cmp byte [ebp - 2], 1
mov dword [ebp + 8], esi
jne 0x44ca11
and dword [ebp - 0x20], 0
cmp dword [ebp - 0x34], 0
je 0x44c821
lea eax, [ebp + 8]
push eax
call fcn.00426ff7
mov ebx, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00403c2d
mov esi, dword [ebp + 8]
xor eax, eax
cmp word [esi], ax
pop ecx
pop ecx
je 0x44c7f9
mov word [esi], ax
cmp word [ebx], ax
je 0x44c821
mov ecx, dword [ebp - 0x10]
push 0xffffffffffffffff
push 0
push ebx
call fcn.0040f12a
test eax, eax
je 0x44c821
push 0xffffffffffffffff
push dword [eax]
lea ecx, [ebp - 0x20]
call fcn.0042c51d
mov esi, dword [ebp - 0x20]
mov dword [ebp + 8], esi
cmp byte [ebp - 1], 3
mov edi, esi
jne 0x44c82f
push esi
jmp 0x44c952
cmp byte [ebp - 1], 0
je 0x44c8cd
cmp byte [ebp - 1], 1
mov dword [ebp - 0x24], 0x481fac
je 0x44c84d
mov dword [ebp - 0x24], 0x480c6c
lea ecx, [ebp + 8]
call fcn.0042c3f7
mov ebx, esi
xor edi, edi
jmp 0x44c89d
cmp ax, 0xd
jne 0x44c871
lea eax, [esi + 2]
cmp word [eax], 0xa
jne 0x44c877
mov word [esi], di
mov esi, eax
jmp 0x44c87a
cmp ax, 0xa
jne 0x44c89b
mov word [esi], di
cmp byte [ebp - 1], 0
jne 0x44c88b
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.0042c465
push ebx
lea ecx, [ebp + 8]
mov byte [ebp - 1], 0
call fcn.0042c465
lea ebx, [esi + 2]
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jne 0x44c85b
cmp word [ebx], di
je 0x44c9ee
cmp byte [ebp - 1], 0
jne 0x44c8bf
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.0042c465
push ebx
lea ecx, [ebp + 8]
call fcn.0042c465
jmp 0x44c9ee
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jge 0x44c91c
mov ax, word [esi]
xor ebx, ebx
test ax, ax
je 0x44c8fb
cmp ax, 0xa
jne 0x44c8e5
inc ebx
inc esi
inc esi
mov ax, word [esi]
test ax, ax
jne 0x44c8de
cmp esi, edi
jbe 0x44c8fb
cmp word [esi - 2], 0xa
je 0x44c8fb
inc ebx
push 0x20
lea ecx, [ebp + 8]
call fcn.0042c415
push ebx
push 0x482fd4
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44c9ee
jne 0x44c995
mov cx, word [esi]
test cx, cx
mov eax, esi
mov edx, esi
je 0x44c971
cmp cx, 0xa
jne 0x44c934
mov edx, eax
mov eax, esi
inc esi
inc esi
mov cx, word [esi]
test cx, cx
jne 0x44c92a
cmp esi, edi
jbe 0x44c962
cmp word [esi - 2], 0xa
je 0x44c962
cmp word [eax], 0xa
jne 0x44c951
inc eax
inc eax
push eax
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.0042af0d
jmp 0x44ca04
cmp eax, edi
jbe 0x44c971
lea ecx, [eax - 2]
cmp word [ecx], 0xd
jne 0x44c971
mov eax, ecx
cmp word [edx], 0xa
jne 0x44c979
inc edx
inc edx
sub eax, edx
sar eax, 1
push eax
push edx
jmp 0x44c9e6
mov ax, word [esi]
test ax, ax
je 0x44c99a
cmp ax, 0xa
jne 0x44c990
dec ecx
inc esi
inc esi
mov dword [ebp + 8], esi
cmp ecx, 1
jg 0x44c981
mov ebx, dword [ebp - 0x14]
mov edi, esi
jmp 0x44c9d5
test ebx, ebx
je 0x44c9aa
dec dword [ebp - 0x14]
js 0x44c9e0
lea eax, [ebp + 8]
call fcn.0040edc9
test ebx, ebx
je 0x44c9bc
cmp dword [ebp - 0x14], 0
je 0x44c9dd
mov esi, dword [ebp + 8]
cmp word [esi], 0xd
jne 0x44c9ca
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0xa
jne 0x44c9d5
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0
jne 0x44c9a1
jmp 0x44c9e0
mov esi, dword [ebp + 8]
sub esi, edi
sar esi, 1
push esi
push edi
lea ecx, [ebp + 8]
call fcn.004361fb
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0042af0d
lea ecx, [ebp + 8]
call fcn.0042704a
lea ecx, [ebp - 0x20]
call fcn.0042704a
jmp 0x44c7a0
push 8
lea ecx, [ebp + 8]
call fcn.0042c29e
push 8
lea ecx, [ebp - 0x20]
call fcn.0042c29e
mov eax, dword [ebp + 8]
and word [eax], 0
xor eax, eax
lea edi, [ebp - 0x48]
push 0xfffffffffffffff6
stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
and dword [ebp - 0x1c], 0
cmp byte [ebp - 2], 2
mov dword [ebp - 0x4c], eax
jne 0x44ca52
lea esi, [ebp - 0x4c]
mov dword [ebp - 0x34], esi
jmp 0x44cb1b
xor edi, edi
push edi
push edi
push 3
push edi
push 7
push 0x80000000
push dword [ebp - 0x18]
lea esi, [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x24], edi
call fcn.00403c6d
cmp dword [ebp - 0x1c], edi
jne 0x44ca85
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x44cb99
xor eax, eax
and dword [ebp - 0x3c], eax
push eax
mov byte [ebp - 0x44], 0
mov byte [ebp - 0x43], 0
mov byte [ebp - 0x42], 0
lea edi, [ebp - 0x41]
stosw word es:[edi], ax
lea eax, [ebp - 0x3c]
push eax
push 3
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [ebp - 0x44], 0xff
jne 0x44cacb
cmp byte [ebp - 0x43], 0xfe
jne 0x44cb00
mov dword [ebp - 8], 0x4b0
mov dword [ebp - 0x24], 2
jmp 0x44cb00
cmp byte [ebp - 0x44], 0xfe
jne 0x44cae0
cmp byte [ebp - 0x43], 0xff
jne 0x44cb00
mov dword [ebp - 8], 0x4b1
jmp 0x44cac2
cmp byte [ebp - 0x44], 0xef
jne 0x44cb00
cmp byte [ebp - 0x43], 0xbb
jne 0x44cb00
cmp byte [ebp - 0x42], 0xbf
jne 0x44cb00
mov dword [ebp - 8], 0xfde9
mov dword [ebp - 0x24], 3
mov eax, dword [ebp - 0x24]
cdq
push 0
push edx
push eax
push dword [ebp - 0x1c]
call fcn.00427e7e
add esp, 0x10
test eax, eax
jl 0x44ca78
cmp byte [ebp - 1], 3
jne 0x44cbd0
mov eax, dword [esi]
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x34], eax
mov edi, 0x100000
lea eax, [ebx + 0x100001]
push eax
lea ecx, [ebp - 0x24]
call fcn.0042c2c5
mov esi, dword [ebp - 0x24]
and dword [ebp - 0x14], 0
push 0
lea eax, [ebp - 0x14]
push eax
push edi
lea eax, [ebx + esi]
push eax
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x14], edi
jbe 0x44cb66
mov dword [ebp - 0x14], edi
test eax, eax
je 0x44cb70
cmp dword [ebp - 0x14], 0
je 0x44cb79
add ebx, dword [ebp - 0x14]
mov byte [ebx + esi], 0
jmp 0x44cb34
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00432dec
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.0042af0d
mov ecx, esi
call fcn.0042704a
xor esi, esi
lea ecx, [ebp - 0x1c]
call fcn.0040296e
lea ecx, [ebp - 0x20]
call fcn.0042704a
lea ecx, [ebp + 8]
call fcn.0042704a
lea ecx, [ebp - 0x38]
call fcn.0040296e
lea ecx, [ebp - 0xc]
call fcn.0042704a
lea ecx, [ebp - 0x18]
call fcn.0042704a
mov eax, esi
jmp 0x44cdc6
cmp byte [ebp - 1], 0
je 0x44cc49
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x44cbe2
mov eax, 0x48151a
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x30]
call fcn.00436214
or ebx, 1
lea ecx, [ebp - 0x24]
call fcn.0042c3f7
cmp byte [ebp - 1], 0
jne 0x44cc09
push dword [ebp - 0x30]
lea ecx, [ebp + 8]
call fcn.0042c465
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x34]
mov byte [ebp - 1], 0
call fcn.00432b25
mov edi, eax
mov eax, dword [ebp - 8]
add esp, 0x10
lea esi, [ebp - 0x24]
call fcn.00432dec
push eax
lea ecx, [ebp + 8]
call fcn.0042c465
mov ecx, esi
call fcn.0042704a
test edi, edi
jne 0x44cbf0
lea ecx, [ebp - 0x30]
jmp 0x44cd72
mov edi, dword [ebp - 0x2c]
test edi, edi
jge 0x44cc94
xor edi, edi
jmp 0x44cc55
inc edi
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.00432b25
add esp, 0x10
test eax, eax
jne 0x44cc54
push 0x20
lea ecx, [ebp + 8]
mov dword [ebp - 8], 0x4b0
call fcn.0042c2c5
push edi
push 0x482fd4
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44cd7e
jne 0x44ccbf
or ebx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
push ebx
push dword [ebp - 8]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push esi
mov dword [ebp + 8], ecx
call fcn.00432b25
add esp, 0x10
test eax, eax
jne 0x44cc99
jmp 0x44cd7e
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebp - 0x2c], eax
jle 0x44cce8
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.00432b25
add esp, 0x10
test eax, eax
je 0x44cce8
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x44ccc9
mov edi, dword [ebp - 0x14]
cmp edi, 1
mov eax, dword [ebp + 8]
mov byte [eax], 0
jne 0x44cd0b
or ebx, edi
push ebx
push dword [ebp - 8]
lea eax, [ebp + 8]
push eax
push esi
call fcn.00432b25
add esp, 0x10
jmp 0x44cd7e
lea ecx, [ebp - 0x24]
call fcn.0042c3f7
test edi, edi
je 0x44cd1c
dec dword [ebp - 0x14]
js 0x44cd6f
mov eax, dword [ebp - 0x24]
and word [eax], 0
xor eax, eax
mov al, bl
or eax, 1
push eax
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push esi
call fcn.00432b25
add esp, 0x10
test eax, eax
je 0x44cd6f
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00432dec
push eax
lea ecx, [ebp + 8]
call fcn.0042c465
test edi, edi
je 0x44cd5d
cmp dword [ebp - 0x14], 0
jle 0x44cd6f
push 0x480c6c
lea ecx, [ebp + 8]
call fcn.0042c465
mov esi, dword [ebp - 0x34]
jmp 0x44cd13
lea ecx, [ebp - 0x24]
mov dword [ebp - 8], 0x4b0
call fcn.0042704a
mov eax, dword [ebp - 8]
lea esi, [ebp + 8]
call fcn.00432dec
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.0042af0d
lea ecx, [ebp - 0x1c]
call fcn.0040296e
lea ecx, [ebp - 0x20]
call fcn.0042704a
mov ecx, esi
call fcn.0042704a
lea ecx, [ebp - 0x38]
call fcn.0040296e
lea ecx, [ebp - 0xc]
call fcn.0042704a
lea ecx, [ebp - 0x18]
call fcn.0042704a
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8