Function at 0x44d150
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.004213da
test al, al
mov edi, 0x4b0
jne 0x44d2f9
push 4
push esi
push str._UNI
call fcn.00425759
add esp, 0xc
test al, al
jne 0x44d1ac
push 8
push esi
push str._UNICODE
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d2b0
mov dword [ebp - 8], edi
lea eax, [ebp + 8]
push eax
call fcn.00403977
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.0042c9b5
mov bl, al
add esp, 0x10
neg bl
sbb bl, bl
push 0x4758e0
lea ecx, [ebp - 0x18]
and ebx, 2
mov byte [ebp - 0x30], bl
call fcn.0042a183
push str.READLINE
lea ecx, [ebp - 0xc]
call fcn.0042a183
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.0042df66
mov eax, dword [ebp - 0x18]
push eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], esi
call fcn.00412d51
add esp, 0x10
push eax
lea ecx, [ebp - 0x18]
call fcn.0042a1b7
lea ecx, [ebp - 0x28]
call fcn.00424686
mov esi, dword [ebp - 0x18]
push esi
push 0x47c46c
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x44d3b7
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 0x44d47d
lea ecx, [ebp - 0x24]
call fcn.0042460b
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.0042df66
mov esi, dword [ebp - 0x24]
push esi
push 0x47c468
mov dword [ebp - 0x1c], esi
call fcn.004257d3
add esp, 0x14
test al, al
je 0x44d3f4
mov byte [ebp - 1], 2
mov dword [ebp - 0x28], 0x47c464
jmp 0x44d454
push 5
pop edi
push edi
push esi
push str._UNIB
call fcn.00425759
add esp, 0xc
test al, al
jne 0x44d2da
push 9
push esi
push str._UNICODEB
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d2e6
mov dword [ebp - 8], 0x4b1
jmp 0x44d1af
push edi
push esi
push str._ANSI
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d302
and dword [ebp - 8], 0
jmp 0x44d1af
push 4
push esi
push str._GBK
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d322
mov dword [ebp - 8], 0x3a8
jmp 0x44d1af
push edi
push esi
push str._BIG5
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d341
mov dword [ebp - 8], 0x3b6
jmp 0x44d1af
push edi
push esi
push str._UTF8
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d360
mov dword [ebp - 8], 0xfde9
jmp 0x44d1af
push edi
push esi
push str._UTF7
call fcn.00425759
add esp, 0xc
test al, al
je 0x44d37f
mov dword [ebp - 8], 0xfde8
jmp 0x44d1af
cmp bx, 0x2d
jne 0x44d3af
xor eax, eax
lea ecx, [esi + 2]
mov ax, word [ecx]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x44d3af
push ecx
mov dword [ebp + 8], ecx
call fcn.0042a78d
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jge 0x44d1af
xor eax, eax
inc eax
jmp 0x44dacf
cmp word [esi], 0
je 0x44d255
push esi
push 0x478e18
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x44d255
push esi
push 0x475ee4
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x44d259
mov byte [ebp - 2], 2
jmp 0x44d259
push esi
push 0x47c424
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x44d40b
mov byte [ebp - 1], 3
jmp 0x44d454
push esi
push 0x47be7c
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x44d429
mov byte [ebp - 1], 1
mov dword [ebp - 0x28], 0x47c420
jmp 0x44d454
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042e410
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x44d454
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042e410
pop ecx
pop ecx
lea ecx, [ebp - 0x24]
call fcn.00424686
mov esi, dword [ebp + 8]
cmp word [esi], di
jne 0x44d47d
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.0042df66
mov esi, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.00402996
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
jne 0x44d49b
xor esi, esi
jmp 0x44d8ba
cmp byte [ebp - 2], 1
jne 0x44d4b0
cmp word [esi], di
je 0x44d4b0
mov esi, 0x80070057
jmp 0x44d8ba
inc esi
inc esi
cmp byte [ebp - 2], 1
mov dword [ebp + 8], esi
jne 0x44d71a
and dword [ebp - 0x20], 0
cmp dword [ebp - 0x34], 0
je 0x44d511
lea ecx, [ebp + 8]
call fcn.00429ef2
mov ebx, dword [ebp + 8]
mov eax, ecx
push eax
call fcn.00403953
mov esi, dword [ebp + 8]
xor edi, edi
cmp word [esi], di
pop ecx
je 0x44d4ea
mov word [esi], di
cmp word [ebx], di
je 0x44d511
mov ecx, dword [ebp - 0x10]
push 0xffffffffffffffff
push edi
push ebx
call fcn.0040e8be
cmp eax, edi
je 0x44d511
push 0xffffffffffffffff
push dword [eax]
lea ecx, [ebp - 0x20]
call fcn.00409ba0
mov esi, dword [ebp - 0x20]
mov dword [ebp + 8], esi
cmp byte [ebp - 1], 3
mov edi, esi
jne 0x44d51f
push esi
jmp 0x44d643
cmp byte [ebp - 1], 0
je 0x44d5bd
cmp byte [ebp - 1], 1
mov dword [ebp - 0x24], 0x476d74
je 0x44d53d
mov dword [ebp - 0x24], 0x475c24
lea ecx, [ebp + 8]
call fcn.0042460b
mov ebx, esi
xor edi, edi
jmp 0x44d58d
cmp ax, 0xd
jne 0x44d561
lea eax, [esi + 2]
cmp word [eax], 0xa
jne 0x44d567
mov word [esi], di
mov esi, eax
jmp 0x44d56a
cmp ax, 0xa
jne 0x44d58b
mov word [esi], di
cmp byte [ebp - 1], 0
jne 0x44d57b
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.004246c0
push ebx
lea ecx, [ebp + 8]
mov byte [ebp - 1], 0
call fcn.004246c0
lea ebx, [esi + 2]
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jne 0x44d54b
cmp word [ebx], di
je 0x44d677
cmp byte [ebp - 1], 0
jne 0x44d5af
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.004246c0
push ebx
lea ecx, [ebp + 8]
call fcn.004246c0
jmp 0x44d677
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jge 0x44d609
mov ax, word [esi]
xor ebx, ebx
test ax, ax
je 0x44d5eb
cmp ax, 0xa
jne 0x44d5d5
inc ebx
inc esi
inc esi
mov ax, word [esi]
test ax, ax
jne 0x44d5ce
cmp esi, edi
jbe 0x44d5eb
cmp word [esi - 2], 0xa
je 0x44d5eb
inc ebx
push 0x20
lea ecx, [ebp + 8]
call fcn.0042465d
push ebx
push 0x47aa58
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44d677
jne 0x44d69e
mov cx, word [esi]
test cx, cx
push 0xa
mov eax, esi
mov edx, esi
pop ebx
je 0x44d662
cmp cx, bx
jne 0x44d627
mov edx, eax
mov eax, esi
inc esi
inc esi
mov cx, word [esi]
test cx, cx
jne 0x44d61e
cmp esi, edi
jbe 0x44d653
cmp word [esi - 2], bx
je 0x44d653
cmp word [eax], bx
jne 0x44d642
inc eax
inc eax
push eax
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.00428e1b
jmp 0x44d70d
cmp eax, edi
jbe 0x44d662
lea ecx, [eax - 2]
cmp word [ecx], 0xd
jne 0x44d662
mov eax, ecx
cmp word [edx], bx
jne 0x44d669
inc edx
inc edx
sub eax, edx
sar eax, 1
push eax
push edx
lea ecx, [ebp + 8]
call fcn.00424629
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00428e1b
lea ecx, [ebp + 8]
jmp 0x44d708
mov ax, word [esi]
test ax, ax
je 0x44d6a3
cmp ax, 0xa
jne 0x44d699
dec ecx
inc esi
inc esi
mov dword [ebp + 8], esi
cmp ecx, 1
jg 0x44d68a
mov ebx, dword [ebp - 0x14]
mov edi, esi
jmp 0x44d6de
test ebx, ebx
je 0x44d6b3
dec dword [ebp - 0x14]
js 0x44d6e9
lea eax, [ebp + 8]
call fcn.0040e4de
test ebx, ebx
je 0x44d6c5
cmp dword [ebp - 0x14], 0
je 0x44d6e6
mov esi, dword [ebp + 8]
cmp word [esi], 0xd
jne 0x44d6d3
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0xa
jne 0x44d6de
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0
jne 0x44d6aa
jmp 0x44d6e9
mov esi, dword [ebp + 8]
sub esi, edi
sar esi, 1
push esi
push edi
lea ecx, [ebp - 0x34]
call fcn.00424629
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00428e1b
lea ecx, [ebp - 0x34]
call fcn.00424686
lea ecx, [ebp - 0x20]
call fcn.00424686
jmp 0x44d494
push 8
lea ecx, [ebp + 8]
call fcn.00424576
push 8
lea ecx, [ebp - 0x20]
call fcn.00424576
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 0x44d75b
lea esi, [ebp - 0x4c]
mov dword [ebp - 0x34], esi
jmp 0x44d824
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.00403993
cmp dword [ebp - 0x1c], edi
jne 0x44d78e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x44d8a2
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 0x44d7d4
cmp byte [ebp - 0x43], 0xfe
jne 0x44d809
mov dword [ebp - 8], 0x4b0
mov dword [ebp - 0x24], 2
jmp 0x44d809
cmp byte [ebp - 0x44], 0xfe
jne 0x44d7e9
cmp byte [ebp - 0x43], 0xff
jne 0x44d809
mov dword [ebp - 8], 0x4b1
jmp 0x44d7cb
cmp byte [ebp - 0x44], 0xef
jne 0x44d809
cmp byte [ebp - 0x43], 0xbb
jne 0x44d809
cmp byte [ebp - 0x42], 0xbf
jne 0x44d809
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.0042572e
add esp, 0x10
test eax, eax
jl 0x44d781
cmp byte [ebp - 1], 3
jne 0x44d8d9
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.0042459d
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 0x44d86f
mov dword [ebp - 0x14], edi
test eax, eax
je 0x44d879
cmp dword [ebp - 0x14], 0
je 0x44d882
add ebx, dword [ebp - 0x14]
mov byte [ebx + esi], 0
jmp 0x44d83d
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00427ed7
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.00428e1b
mov ecx, esi
call fcn.00424686
xor esi, esi
lea ecx, [ebp - 0x1c]
call fcn.00402905
lea ecx, [ebp - 0x20]
call fcn.00424686
lea ecx, [ebp + 8]
call fcn.00424686
lea ecx, [ebp - 0x38]
call fcn.00402905
lea ecx, [ebp - 0xc]
call fcn.00424686
lea ecx, [ebp - 0x18]
call fcn.00424686
mov eax, esi
jmp 0x44dacf
cmp byte [ebp - 1], 0
je 0x44d952
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x44d8eb
mov eax, 0x4761ce
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x30]
call fcn.00424642
or ebx, 1
lea ecx, [ebp - 0x24]
call fcn.0042460b
cmp byte [ebp - 1], 0
jne 0x44d912
push dword [ebp - 0x30]
lea ecx, [ebp + 8]
call fcn.004246c0
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x34]
mov byte [ebp - 1], 0
call fcn.00430f3b
mov edi, eax
mov eax, dword [ebp - 8]
add esp, 0x10
lea esi, [ebp - 0x24]
call fcn.00427ed7
push eax
lea ecx, [ebp + 8]
call fcn.004246c0
mov ecx, esi
call fcn.00424686
test edi, edi
jne 0x44d8f9
lea ecx, [ebp - 0x30]
jmp 0x44da7b
mov edi, dword [ebp - 0x2c]
test edi, edi
jge 0x44d99d
xor edi, edi
jmp 0x44d95e
inc edi
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.00430f3b
add esp, 0x10
test eax, eax
jne 0x44d95d
push 0x20
lea ecx, [ebp + 8]
mov dword [ebp - 8], 0x4b0
call fcn.0042459d
push edi
push 0x47aa58
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44da87
jne 0x44d9c8
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.00430f3b
add esp, 0x10
test eax, eax
jne 0x44d9a2
jmp 0x44da87
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebp - 0x2c], eax
jle 0x44d9f1
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.00430f3b
add esp, 0x10
test eax, eax
je 0x44d9f1
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x44d9d2
mov edi, dword [ebp - 0x14]
cmp edi, 1
mov eax, dword [ebp + 8]
mov byte [eax], 0
jne 0x44da14
or ebx, edi
push ebx
push dword [ebp - 8]
lea eax, [ebp + 8]
push eax
push esi
call fcn.00430f3b
add esp, 0x10
jmp 0x44da87
lea ecx, [ebp - 0x24]
call fcn.0042460b
test edi, edi
je 0x44da25
dec dword [ebp - 0x14]
js 0x44da78
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.00430f3b
add esp, 0x10
test eax, eax
je 0x44da78
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00427ed7
push eax
lea ecx, [ebp + 8]
call fcn.004246c0
test edi, edi
je 0x44da66
cmp dword [ebp - 0x14], 0
jle 0x44da78
push 0x475c24
lea ecx, [ebp + 8]
call fcn.004246c0
mov esi, dword [ebp - 0x34]
jmp 0x44da1c
lea ecx, [ebp - 0x24]
mov dword [ebp - 8], 0x4b0
call fcn.00424686
mov eax, dword [ebp - 8]
lea esi, [ebp + 8]
call fcn.00427ed7
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.00428e1b
lea ecx, [ebp - 0x1c]
call fcn.00402905
lea ecx, [ebp - 0x20]
call fcn.00424686
mov ecx, esi
call fcn.00424686
lea ecx, [ebp - 0x38]
call fcn.00402905
lea ecx, [ebp - 0xc]
call fcn.00424686
lea ecx, [ebp - 0x18]
call fcn.00424686
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8