Function at 0x449aa9
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.00426083
test al, al
mov edi, 0x4b0
jne 0x449c52
push 4
push esi
push str._UNI
call fcn.00426f2f
add esp, 0xc
test al, al
jne 0x449b05
push 8
push esi
push str._UNICODE
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449c09
mov dword [ebp - 8], edi
lea eax, [ebp + 8]
push eax
call fcn.00403b20
push 4
lea eax, [ebp + 8]
push eax
push str.fix
call fcn.0042c7e8
mov bl, al
add esp, 0x10
neg bl
sbb bl, bl
push 0x47a8e8
lea ecx, [ebp - 0x18]
and ebx, 2
mov byte [ebp - 0x30], bl
call fcn.00434695
push str.READLINE
lea ecx, [ebp - 0xc]
call fcn.00434695
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.0042d669
mov eax, dword [ebp - 0x18]
push eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], esi
call fcn.0040ca55
add esp, 0x10
push eax
lea ecx, [ebp - 0x18]
call fcn.004346c9
lea ecx, [ebp - 0x28]
call fcn.0042602e
mov esi, dword [ebp - 0x18]
push esi
push 0x4814ec
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x449d10
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 0x449dd6
lea ecx, [ebp - 0x24]
call fcn.0042aeb8
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.0042d669
mov esi, dword [ebp - 0x24]
push esi
push 0x4814e8
mov dword [ebp - 0x1c], esi
call fcn.00426fa9
add esp, 0x14
test al, al
je 0x449d4d
mov byte [ebp - 1], 2
mov dword [ebp - 0x28], 0x4814e4
jmp 0x449dad
push 5
pop edi
push edi
push esi
push str._UNIB
call fcn.00426f2f
add esp, 0xc
test al, al
jne 0x449c33
push 9
push esi
push str._UNICODEB
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449c3f
mov dword [ebp - 8], 0x4b1
jmp 0x449b08
push edi
push esi
push str._ANSI
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449c5b
and dword [ebp - 8], 0
jmp 0x449b08
push 4
push esi
push str._GBK
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449c7b
mov dword [ebp - 8], 0x3a8
jmp 0x449b08
push edi
push esi
push str._BIG5
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449c9a
mov dword [ebp - 8], 0x3b6
jmp 0x449b08
push edi
push esi
push str._UTF8
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449cb9
mov dword [ebp - 8], 0xfde9
jmp 0x449b08
push edi
push esi
push str._UTF7
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x449cd8
mov dword [ebp - 8], 0xfde8
jmp 0x449b08
cmp bx, 0x2d
jne 0x449d08
xor eax, eax
lea ecx, [esi + 2]
mov ax, word [ecx]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x449d08
push ecx
mov dword [ebp + 8], ecx
call fcn.0042b5a7
test eax, eax
pop ecx
mov dword [ebp - 8], eax
jge 0x449b08
xor eax, eax
inc eax
jmp 0x44a42b
cmp word [esi], 0
je 0x449bae
push esi
push 0x47b404
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x449bae
push esi
push 0x47aecc
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x449bb2
mov byte [ebp - 2], 2
jmp 0x449bb2
push esi
push 0x4814a4
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x449d64
mov byte [ebp - 1], 3
jmp 0x449dad
push esi
push 0x481264
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x449d82
mov byte [ebp - 1], 1
mov dword [ebp - 0x28], 0x4814a0
jmp 0x449dad
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042dab0
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x2b
pop ecx
pop ecx
jne 0x449dad
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042dab0
pop ecx
pop ecx
lea ecx, [ebp - 0x24]
call fcn.0042602e
mov esi, dword [ebp + 8]
cmp word [esi], di
jne 0x449dd6
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.0042d669
mov esi, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.00402aa0
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
jne 0x449df4
xor esi, esi
jmp 0x44a216
cmp byte [ebp - 2], 1
jne 0x449e09
cmp word [esi], di
je 0x449e09
mov esi, 0x80070057
jmp 0x44a216
inc esi
inc esi
cmp byte [ebp - 2], 1
mov dword [ebp + 8], esi
jne 0x44a076
and dword [ebp - 0x20], 0
cmp dword [ebp - 0x34], 0
je 0x449e6d
lea eax, [ebp + 8]
push eax
call fcn.0042609c
mov ebx, dword [ebp + 8]
lea eax, [ebp + 8]
push eax
call fcn.00403adb
mov esi, dword [ebp + 8]
xor edi, edi
cmp word [esi], di
pop ecx
pop ecx
je 0x449e46
mov word [esi], di
cmp word [ebx], di
je 0x449e6d
mov ecx, dword [ebp - 0x10]
push 0xffffffffffffffff
push edi
push ebx
call fcn.0040f7cf
cmp eax, edi
je 0x449e6d
push 0xffffffffffffffff
push dword [eax]
lea ecx, [ebp - 0x20]
call fcn.00409fd6
mov esi, dword [ebp - 0x20]
mov dword [ebp + 8], esi
cmp byte [ebp - 1], 3
mov edi, esi
jne 0x449e7b
push esi
jmp 0x449f9f
cmp byte [ebp - 1], 0
je 0x449f19
cmp byte [ebp - 1], 1
mov dword [ebp - 0x24], 0x47bedc
je 0x449e99
mov dword [ebp - 0x24], 0x47ac0c
lea ecx, [ebp + 8]
call fcn.0042aeb8
mov ebx, esi
xor edi, edi
jmp 0x449ee9
cmp ax, 0xd
jne 0x449ebd
lea eax, [esi + 2]
cmp word [eax], 0xa
jne 0x449ec3
mov word [esi], di
mov esi, eax
jmp 0x449ec6
cmp ax, 0xa
jne 0x449ee7
mov word [esi], di
cmp byte [ebp - 1], 0
jne 0x449ed7
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.0042af26
push ebx
lea ecx, [ebp + 8]
mov byte [ebp - 1], 0
call fcn.0042af26
lea ebx, [esi + 2]
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jne 0x449ea7
cmp word [ebx], di
je 0x449fd3
cmp byte [ebp - 1], 0
jne 0x449f0b
push dword [ebp - 0x24]
lea ecx, [ebp + 8]
call fcn.0042af26
push ebx
lea ecx, [ebp + 8]
call fcn.0042af26
jmp 0x449fd3
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jge 0x449f65
mov ax, word [esi]
xor ebx, ebx
test ax, ax
je 0x449f47
cmp ax, 0xa
jne 0x449f31
inc ebx
inc esi
inc esi
mov ax, word [esi]
test ax, ax
jne 0x449f2a
cmp esi, edi
jbe 0x449f47
cmp word [esi - 2], 0xa
je 0x449f47
inc ebx
push 0x20
lea ecx, [ebp + 8]
call fcn.0042aed6
push ebx
push 0x47f950
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x449fd3
jne 0x449ffa
mov cx, word [esi]
test cx, cx
push 0xa
mov eax, esi
mov edx, esi
pop ebx
je 0x449fbe
cmp cx, bx
jne 0x449f83
mov edx, eax
mov eax, esi
inc esi
inc esi
mov cx, word [esi]
test cx, cx
jne 0x449f7a
cmp esi, edi
jbe 0x449faf
cmp word [esi - 2], bx
je 0x449faf
cmp word [eax], bx
jne 0x449f9e
inc eax
inc eax
push eax
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.00429dbf
jmp 0x44a069
cmp eax, edi
jbe 0x449fbe
lea ecx, [eax - 2]
cmp word [ecx], 0xd
jne 0x449fbe
mov eax, ecx
cmp word [edx], bx
jne 0x449fc5
inc edx
inc edx
sub eax, edx
sar eax, 1
push eax
push edx
lea ecx, [ebp + 8]
call fcn.00426041
push dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00429dbf
lea ecx, [ebp + 8]
jmp 0x44a064
mov ax, word [esi]
test ax, ax
je 0x449fff
cmp ax, 0xa
jne 0x449ff5
dec ecx
inc esi
inc esi
mov dword [ebp + 8], esi
cmp ecx, 1
jg 0x449fe6
mov ebx, dword [ebp - 0x14]
mov edi, esi
jmp 0x44a03a
test ebx, ebx
je 0x44a00f
dec dword [ebp - 0x14]
js 0x44a045
lea eax, [ebp + 8]
call fcn.00403aff
test ebx, ebx
je 0x44a021
cmp dword [ebp - 0x14], 0
je 0x44a042
mov esi, dword [ebp + 8]
cmp word [esi], 0xd
jne 0x44a02f
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0xa
jne 0x44a03a
inc esi
inc esi
mov dword [ebp + 8], esi
cmp word [esi], 0
jne 0x44a006
jmp 0x44a045
mov esi, dword [ebp + 8]
sub esi, edi
sar esi, 1
push esi
push edi
lea ecx, [ebp - 0x34]
call fcn.00426041
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00429dbf
lea ecx, [ebp - 0x34]
call fcn.0042602e
lea ecx, [ebp - 0x20]
call fcn.0042602e
jmp 0x449ded
push 8
lea ecx, [ebp + 8]
call fcn.0042add7
push 8
lea ecx, [ebp - 0x20]
call fcn.0042add7
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 0x44a0b7
lea esi, [ebp - 0x4c]
mov dword [ebp - 0x34], esi
jmp 0x44a180
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.00403b3c
cmp dword [ebp - 0x1c], edi
jne 0x44a0ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x44a1fe
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 0x44a130
cmp byte [ebp - 0x43], 0xfe
jne 0x44a165
mov dword [ebp - 8], 0x4b0
mov dword [ebp - 0x24], 2
jmp 0x44a165
cmp byte [ebp - 0x44], 0xfe
jne 0x44a145
cmp byte [ebp - 0x43], 0xff
jne 0x44a165
mov dword [ebp - 8], 0x4b1
jmp 0x44a127
cmp byte [ebp - 0x44], 0xef
jne 0x44a165
cmp byte [ebp - 0x43], 0xbb
jne 0x44a165
cmp byte [ebp - 0x42], 0xbf
jne 0x44a165
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.00426f04
add esp, 0x10
test eax, eax
jl 0x44a0dd
cmp byte [ebp - 1], 3
jne 0x44a235
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.0042adfe
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 0x44a1cb
mov dword [ebp - 0x14], edi
test eax, eax
je 0x44a1d5
cmp dword [ebp - 0x14], 0
je 0x44a1de
add ebx, dword [ebp - 0x14]
mov byte [ebx + esi], 0
jmp 0x44a199
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00428ee9
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.00429dbf
mov ecx, esi
call fcn.0042602e
xor esi, esi
lea ecx, [ebp - 0x1c]
call fcn.004029f8
lea ecx, [ebp - 0x20]
call fcn.0042602e
lea ecx, [ebp + 8]
call fcn.0042602e
lea ecx, [ebp - 0x38]
call fcn.004029f8
lea ecx, [ebp - 0xc]
call fcn.0042602e
lea ecx, [ebp - 0x18]
call fcn.0042602e
mov eax, esi
jmp 0x44a42b
cmp byte [ebp - 1], 0
je 0x44a2ae
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x44a247
mov eax, 0x47b452
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x30]
call fcn.0042605a
or ebx, 1
lea ecx, [ebp - 0x24]
call fcn.0042aeb8
cmp byte [ebp - 1], 0
jne 0x44a26e
push dword [ebp - 0x30]
lea ecx, [ebp + 8]
call fcn.0042af26
push ebx
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x34]
mov byte [ebp - 1], 0
call fcn.0043113d
mov edi, eax
mov eax, dword [ebp - 8]
add esp, 0x10
lea esi, [ebp - 0x24]
call fcn.00428ee9
push eax
lea ecx, [ebp + 8]
call fcn.0042af26
mov ecx, esi
call fcn.0042602e
test edi, edi
jne 0x44a255
lea ecx, [ebp - 0x30]
jmp 0x44a3d7
mov edi, dword [ebp - 0x2c]
test edi, edi
jge 0x44a2f9
xor edi, edi
jmp 0x44a2ba
inc edi
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.0043113d
add esp, 0x10
test eax, eax
jne 0x44a2b9
push 0x20
lea ecx, [ebp + 8]
mov dword [ebp - 8], 0x4b0
call fcn.0042adfe
push edi
push 0x47f950
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44a3e3
jne 0x44a324
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.0043113d
add esp, 0x10
test eax, eax
jne 0x44a2fe
jmp 0x44a3e3
xor eax, eax
inc eax
cmp edi, eax
mov dword [ebp - 0x2c], eax
jle 0x44a34d
push dword [ebp - 0x30]
lea eax, [ebp + 8]
push dword [ebp - 8]
push eax
push esi
call fcn.0043113d
add esp, 0x10
test eax, eax
je 0x44a34d
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x44a32e
mov edi, dword [ebp - 0x14]
cmp edi, 1
mov eax, dword [ebp + 8]
mov byte [eax], 0
jne 0x44a370
or ebx, edi
push ebx
push dword [ebp - 8]
lea eax, [ebp + 8]
push eax
push esi
call fcn.0043113d
add esp, 0x10
jmp 0x44a3e3
lea ecx, [ebp - 0x24]
call fcn.0042aeb8
test edi, edi
je 0x44a381
dec dword [ebp - 0x14]
js 0x44a3d4
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.0043113d
add esp, 0x10
test eax, eax
je 0x44a3d4
mov eax, dword [ebp - 8]
lea esi, [ebp - 0x24]
call fcn.00428ee9
push eax
lea ecx, [ebp + 8]
call fcn.0042af26
test edi, edi
je 0x44a3c2
cmp dword [ebp - 0x14], 0
jle 0x44a3d4
push 0x47ac0c
lea ecx, [ebp + 8]
call fcn.0042af26
mov esi, dword [ebp - 0x34]
jmp 0x44a378
lea ecx, [ebp - 0x24]
mov dword [ebp - 8], 0x4b0
call fcn.0042602e
mov eax, dword [ebp - 8]
lea esi, [ebp + 8]
call fcn.00428ee9
mov ecx, dword [ebp - 0x10]
push eax
push dword [ebp - 0xc]
call fcn.00429dbf
lea ecx, [ebp - 0x1c]
call fcn.004029f8
lea ecx, [ebp - 0x20]
call fcn.0042602e
mov ecx, esi
call fcn.0042602e
lea ecx, [ebp - 0x38]
call fcn.004029f8
lea ecx, [ebp - 0xc]
call fcn.0042602e
lea ecx, [ebp - 0x18]
call fcn.0042602e
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8