Function at 0x44c84e
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.00402a89
test al, al
mov edi, 0x4b0
jne 0x44c9f7
push 4
push esi
push str._UNI
call fcn.00428219
add esp, 0xc
test al, al
jne 0x44c8aa
push 8
push esi
push 0x487ab4
call fcn.00428219
add esp, 0xc
test al, al
je 0x44c9ae
mov dword [ebp - 8], edi
lea eax, [ebp + 8]
push eax
call fcn.00403cc8
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.0042e2da
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.004365ba
push str.READLINE
lea ecx, [ebp - 0xc]
call fcn.004365ba
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.0042ec20
mov eax, dword [ebp - 0x18]
push eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], esi
call fcn.0040d003
add esp, 0x10
push eax
lea ecx, [ebp - 0x18]
call fcn.00436622
lea ecx, [ebp - 0x28]
call fcn.00427365
mov esi, dword [ebp - 0x18]
push esi
push 0x487a94
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x44cab5
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 0x44cb7b
lea ecx, [ebp - 0x24]
call fcn.0042c809
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.0042ec20
mov esi, dword [ebp - 0x24]
push esi
push 0x487a90
mov dword [ebp - 0x1c], esi
call fcn.00428293
add esp, 0x14
test al, al
je 0x44caf2
mov byte [ebp - 1], 2
mov dword [ebp - 0x28], 0x487a8c
jmp 0x44cb52
push 5
pop edi
push edi
push esi
push str._UNIB
call fcn.00428219
add esp, 0xc
test al, al
jne 0x44c9d8
push 9
push esi
push str._UNICODEB
call fcn.00428219
add esp, 0xc
test al, al
je 0x44c9e4
mov dword [ebp - 8], 0x4b1
jmp 0x44c8ad
push edi
push esi
push 0x487a70
call fcn.00428219
add esp, 0xc
test al, al
je 0x44ca00
and dword [ebp - 8], 0
jmp 0x44c8ad
push 4
push esi
push str._GBK
call fcn.00428219
add esp, 0xc
test al, al
je 0x44ca20
mov dword [ebp - 8], 0x3a8
jmp 0x44c8ad
push edi
push esi
push str._BIG5
call fcn.00428219
add esp, 0xc
test al, al
je 0x44ca3f
mov dword [ebp - 8], 0x3b6
jmp 0x44c8ad
push edi
push esi
push str._UTF8
call fcn.00428219
add esp, 0xc
test al, al
je 0x44ca5e
mov dword [ebp - 8], 0xfde9
jmp 0x44c8ad
push edi
push esi
push str._UTF7
call fcn.00428219
add esp, 0xc
test al, al
je 0x44ca7d
mov dword [ebp - 8], 0xfde8
jmp 0x44c8ad
cmp bx, 0x2d
jne 0x44caad
xor eax, eax
lea ecx, [esi + 2]
mov ax, word [ecx]
push eax
call fcn.0040efef
add esp, 4
test al, al
je 0x44caad
push ecx
mov dword [ebp + 8], ecx
call fcn.0042d1ed
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jge 0x44c8ad
xor eax, eax
inc eax
jmp 0x44d1b8
cmp word [esi], 0
je 0x44c953
push esi
push 0x4814d4
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x44c953
push esi
push 0x480f70
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x44c957
mov byte [ebp - 2], 2
jmp 0x44c957
push esi
push 0x487a4c
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x44cb09
mov byte [ebp - 1], 3
jmp 0x44cb52
push esi
push 0x4877e0
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x44cb27
mov byte [ebp - 1], 1
mov dword [ebp - 0x28], 0x487a48
jmp 0x44cb52
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042f0d0
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x44cb52
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042f0d0
pop ecx
pop ecx
lea ecx, [ebp - 0x24]
call fcn.00427365
mov esi, dword [ebp + 8]
cmp word [esi], di
jne 0x44cb7b
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.0042ec20
mov esi, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.00402b15
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
jne 0x44cb99
xor esi, esi
jmp 0x44cfa3
cmp byte [ebp - 2], 1
jne 0x44cbae
cmp word [esi], di
je 0x44cbae
mov esi, 0x80070057
jmp 0x44cfa3
inc esi
inc esi
cmp byte [ebp - 2], 1
mov dword [ebp + 8], esi
jne 0x44ce03
and dword [ebp - 0x20], 0
cmp dword [ebp - 0x34], 0
je 0x44cc13
lea eax, [ebp + 8]
push eax
call fcn.00427312
mov ebx, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00403c83
mov esi, dword [ebp + 8]
xor eax, eax
cmp word [esi], ax
pop ecx
pop ecx
je 0x44cbeb
mov word [esi], ax
cmp word [ebx], ax
je 0x44cc13
mov ecx, dword [ebp - 0x10]
push 0xffffffffffffffff
push 0
push ebx
call fcn.0040f2f5
test eax, eax
je 0x44cc13
push 0xffffffffffffffff
push dword [eax]
lea ecx, [ebp - 0x20]
call fcn.0042c92f
mov esi, dword [ebp - 0x20]
mov dword [ebp + 8], esi
cmp byte [ebp - 1], 3
mov edi, esi
jne 0x44cc21
push esi
jmp 0x44cd44
cmp byte [ebp - 1], 0
je 0x44ccbf
cmp byte [ebp - 1], 1
mov dword [ebp - 0x24], 0x481f9c
je 0x44cc3f
mov dword [ebp - 0x24], 0x483110
lea ecx, [ebp + 8]
call fcn.0042c809
mov ebx, esi
xor edi, edi
jmp 0x44cc8f
cmp ax, 0xd
jne 0x44cc63
lea eax, [esi + 2]
cmp word [eax], 0xa
jne 0x44cc69
mov word [esi], di
mov esi, eax
jmp 0x44cc6c
cmp ax, 0xa
jne 0x44cc8d
mov word [esi], di
cmp byte [ebp - 1], 0
jne 0x44cc7d
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.0042c877
push ebx
lea ecx, [ebp + 8]
mov byte [ebp - 1], 0
call fcn.0042c877
lea ebx, [esi + 2]
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jne 0x44cc4d
cmp word [ebx], di
je 0x44cde0
cmp byte [ebp - 1], 0
jne 0x44ccb1
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.0042c877
push ebx
lea ecx, [ebp + 8]
call fcn.0042c877
jmp 0x44cde0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jge 0x44cd0e
mov ax, word [esi]
xor ebx, ebx
test ax, ax
je 0x44cced
cmp ax, 0xa
jne 0x44ccd7
inc ebx
inc esi
inc esi
mov ax, word [esi]
test ax, ax
jne 0x44ccd0
cmp esi, edi
jbe 0x44cced
cmp word [esi - 2], 0xa
je 0x44cced
inc ebx
push 0x20
lea ecx, [ebp + 8]
call fcn.0042c827
push ebx
push 0x482fd4
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44cde0
jne 0x44cd87
mov cx, word [esi]
test cx, cx
mov eax, esi
mov edx, esi
je 0x44cd63
cmp cx, 0xa
jne 0x44cd26
mov edx, eax
mov eax, esi
inc esi
inc esi
mov cx, word [esi]
test cx, cx
jne 0x44cd1c
cmp esi, edi
jbe 0x44cd54
cmp word [esi - 2], 0xa
je 0x44cd54
cmp word [eax], 0xa
jne 0x44cd43
inc eax
inc eax
push eax
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.0042b2cd
jmp 0x44cdf6
cmp eax, edi
jbe 0x44cd63
lea ecx, [eax - 2]
cmp word [ecx], 0xd
jne 0x44cd63
mov eax, ecx
cmp word [edx], 0xa
jne 0x44cd6b
inc edx
inc edx
sub eax, edx
sar eax, 1
push eax
push edx
jmp 0x44cdd8
mov ax, word [esi]
test ax, ax
je 0x44cd8c
cmp ax, 0xa
jne 0x44cd82
dec ecx
inc esi
inc esi
mov dword [ebp + 8], esi
cmp ecx, 1
jg 0x44cd73
mov ebx, dword [ebp - 0x14]
mov edi, esi
jmp 0x44cdc7
test ebx, ebx
je 0x44cd9c
dec dword [ebp - 0x14]
js 0x44cdd2
lea eax, [ebp + 8]
call fcn.00403ca7
test ebx, ebx
je 0x44cdae
cmp dword [ebp - 0x14], 0
je 0x44cdcf
mov esi, dword [ebp + 8]
cmp word [esi], 0xd
jne 0x44cdbc
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0xa
jne 0x44cdc7
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0
jne 0x44cd93
jmp 0x44cdd2
mov esi, dword [ebp + 8]
sub esi, edi
sar esi, 1
push esi
push edi
lea ecx, [ebp + 8]
call fcn.004365d7
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0042b2cd
lea ecx, [ebp + 8]
call fcn.00427365
lea ecx, [ebp - 0x20]
call fcn.00427365
jmp 0x44cb92
push 8
lea ecx, [ebp + 8]
call fcn.0042c6b0
push 8
lea ecx, [ebp - 0x20]
call fcn.0042c6b0
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 0x44ce44
lea esi, [ebp - 0x4c]
mov dword [ebp - 0x34], esi
jmp 0x44cf0d
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.00403ce4
cmp dword [ebp - 0x1c], edi
jne 0x44ce77
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x44cf8b
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 0x44cebd
cmp byte [ebp - 0x43], 0xfe
jne 0x44cef2
mov dword [ebp - 8], 0x4b0
mov dword [ebp - 0x24], 2
jmp 0x44cef2
cmp byte [ebp - 0x44], 0xfe
jne 0x44ced2
cmp byte [ebp - 0x43], 0xff
jne 0x44cef2
mov dword [ebp - 8], 0x4b1
jmp 0x44ceb4
cmp byte [ebp - 0x44], 0xef
jne 0x44cef2
cmp byte [ebp - 0x43], 0xbb
jne 0x44cef2
cmp byte [ebp - 0x42], 0xbf
jne 0x44cef2
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.004281cd
add esp, 0x10
test eax, eax
jl 0x44ce6a
cmp byte [ebp - 1], 3
jne 0x44cfc2
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.0042c6d7
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 0x44cf58
mov dword [ebp - 0x14], edi
test eax, eax
je 0x44cf62
cmp dword [ebp - 0x14], 0
je 0x44cf6b
add ebx, dword [ebp - 0x14]
mov byte [ebx + esi], 0
jmp 0x44cf26
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00433163
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.0042b2cd
mov ecx, esi
call fcn.00427365
xor esi, esi
lea ecx, [ebp - 0x1c]
call fcn.00402a26
lea ecx, [ebp - 0x20]
call fcn.00427365
lea ecx, [ebp + 8]
call fcn.00427365
lea ecx, [ebp - 0x38]
call fcn.00402a26
lea ecx, [ebp - 0xc]
call fcn.00427365
lea ecx, [ebp - 0x18]
call fcn.00427365
mov eax, esi
jmp 0x44d1b8
cmp byte [ebp - 1], 0
je 0x44d03b
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x44cfd4
mov eax, 0x481512
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x30]
call fcn.004365f0
or ebx, 1
lea ecx, [ebp - 0x24]
call fcn.0042c809
cmp byte [ebp - 1], 0
jne 0x44cffb
push dword [ebp - 0x30]
lea ecx, [ebp + 8]
call fcn.0042c877
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x34]
mov byte [ebp - 1], 0
call fcn.00432e9c
mov edi, eax
mov eax, dword [ebp - 8]
add esp, 0x10
lea esi, [ebp - 0x24]
call fcn.00433163
push eax
lea ecx, [ebp + 8]
call fcn.0042c877
mov ecx, esi
call fcn.00427365
test edi, edi
jne 0x44cfe2
lea ecx, [ebp - 0x30]
jmp 0x44d164
mov edi, dword [ebp - 0x2c]
test edi, edi
jge 0x44d086
xor edi, edi
jmp 0x44d047
inc edi
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.00432e9c
add esp, 0x10
test eax, eax
jne 0x44d046
push 0x20
lea ecx, [ebp + 8]
mov dword [ebp - 8], 0x4b0
call fcn.0042c6d7
push edi
push 0x482fd4
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44d170
jne 0x44d0b1
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.00432e9c
add esp, 0x10
test eax, eax
jne 0x44d08b
jmp 0x44d170
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebp - 0x2c], eax
jle 0x44d0da
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.00432e9c
add esp, 0x10
test eax, eax
je 0x44d0da
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x44d0bb
mov edi, dword [ebp - 0x14]
cmp edi, 1
mov eax, dword [ebp + 8]
mov byte [eax], 0
jne 0x44d0fd
or ebx, edi
push ebx
push dword [ebp - 8]
lea eax, [ebp + 8]
push eax
push esi
call fcn.00432e9c
add esp, 0x10
jmp 0x44d170
lea ecx, [ebp - 0x24]
call fcn.0042c809
test edi, edi
je 0x44d10e
dec dword [ebp - 0x14]
js 0x44d161
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.00432e9c
add esp, 0x10
test eax, eax
je 0x44d161
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00433163
push eax
lea ecx, [ebp + 8]
call fcn.0042c877
test edi, edi
je 0x44d14f
cmp dword [ebp - 0x14], 0
jle 0x44d161
push 0x483110
lea ecx, [ebp + 8]
call fcn.0042c877
mov esi, dword [ebp - 0x34]
jmp 0x44d105
lea ecx, [ebp - 0x24]
mov dword [ebp - 8], 0x4b0
call fcn.00427365
mov eax, dword [ebp - 8]
lea esi, [ebp + 8]
call fcn.00433163
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.0042b2cd
lea ecx, [ebp - 0x1c]
call fcn.00402a26
lea ecx, [ebp - 0x20]
call fcn.00427365
mov ecx, esi
call fcn.00427365
lea ecx, [ebp - 0x38]
call fcn.00402a26
lea ecx, [ebp - 0xc]
call fcn.00427365
lea ecx, [ebp - 0x18]
call fcn.00427365
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8