Function at 0x40d3d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [ebp + 8]
mov al, byte [ebp + 0x10]
mov byte [ebp - 0x49], al
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x40d5c0
mov dword [ebp - 0x24], 0x49d1c8
mov dword [esp], 0x49d1c8
call dword [method.QReadWriteLock.lockForRead__]
mov eax, 0x49d1c8
or eax, 1
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040b220
push edx
mov edi, dword [ebp - 0x28]
mov dword [esp + 4], 0x485c00
mov dword [esp], edi
call sub.msvcrt.dll_fopen
mov ebx, eax
lea esi, [edi - 0xc]
cmp esi, 0x484cd4
jne 0x40d765
test ebx, ebx
je 0x40d594
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_fseek
mov dword [esp], ebx
call sub.msvcrt.dll_ftell
mov edi, eax
test eax, eax
jle 0x40d638
lea eax, [eax + 1]
mov dword [esp], eax
call fcn.00475ff8
mov esi, eax
test eax, eax
je 0x40d638
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_fseek
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_fread
mov byte [esi + edi], 0
mov dword [esp], ebx
call sub.msvcrt.dll_fclose
mov al, byte [esi]
cmp al, 0xff
je 0x40d5d0
cmp al, 0xef
je 0x40d64c
mov dword [ebp - 0x38], 0x484ce0
mov dword [esp + 4], 0x3c
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov edx, eax
test eax, eax
je 0x40d580
xor eax, eax
mov ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
lea ebx, [ebp - 0x38]
mov dword [esp], ebx
call fcn.0044fd34
lea edi, [ebp - 0x34]
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040b30c
push ecx
mov dword [esp + 4], edi
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call fcn.0044fe18
mov eax, dword [ebp - 0x34]
lea edi, [eax - 0xc]
mov edx, 0x484cd4
cmp edx, edi
jne 0x40d7c9
mov eax, dword [ebp - 0x38]
lea ebx, [eax - 0xc]
mov edx, 0x484cd4
cmp edx, ebx
jne 0x40d797
mov dword [esp], esi
call fcn.00475fb8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov edx, dword [eax - 0xc]
test edx, edx
je 0x40d57c
cmp byte [ebp - 0x49], 0
jne 0x40d678
xor eax, eax
jmp 0x40d599
mov dword [esp], esi
call fcn.00475fb8
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.004510a4
nop
mov eax, 0xffffffff
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x40d5b7
test dl, 1
je 0x40d5b7
and edx, 0xfffffffe
mov dword [esp], edx
mov dword [ebp - 0x50], eax
call dword [method.QReadWriteLock.unlock__]
mov eax, dword [ebp - 0x50]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov eax, 0xffffffff
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
cmp byte [esi + 1], 0xfe
jne 0x40d4d7
mov dword [ebp - 0x2c], 0x484cd0
sub edi, 2
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
mov dword [esp + 8], eax
lea eax, [esi + 2]
mov dword [esp + 4], eax
lea edi, [ebp - 0x2c]
mov dword [esp], edi
call fcn.00449238
lea ebx, [ebp - 0x30]
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0040b3f8
push eax
mov dword [esp + 4], ebx
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call fcn.0044fe18
mov dword [esp], ebx
call fcn.004510a4
mov dword [esp], edi
call fcn.0044a688
jmp 0x40d55e
mov dword [esp], ebx
call sub.msvcrt.dll_fclose
mov eax, 0xffffffff
jmp 0x40d599
cmp byte [esi + 1], 0xbb
jne 0x40d4d7
cmp byte [esi + 2], 0xbf
jne 0x40d4d7
lea eax, [esi + 3]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.0044fd00
jmp 0x40d55e
lea eax, [ebp - 0x19]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Huawei_
lea ebx, [ebp - 0x38]
mov dword [esp], ebx
call fcn.00450af4
lea eax, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Wuminghui_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.00450af4
lea eax, [ebp - 0x1b]
mov dword [esp + 8], eax
mov dword [esp + 4], str.63386
lea edx, [ebp - 0x40]
mov dword [esp], edx
call fcn.00450af4
lea eax, [ebp - 0x1c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x485c1c
lea esi, [ebp - 0x44]
mov dword [esp], esi
call fcn.00450af4
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0044fadc
lea eax, [ebp - 0x3c]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0044fadc
lea edx, [ebp - 0x40]
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.0044fadc
lea edi, [ebp - 0x48]
mov dword [esp + 8], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0040ac08
push eax
mov dword [esp + 4], edi
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call fcn.0044fe18
mov dword [esp], edi
call fcn.004510a4
mov dword [esp], esi
call fcn.004510a4
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.004510a4
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004510a4
mov dword [esp], ebx
call fcn.004510a4
xor eax, eax
jmp 0x40d599
cmp dword [0x49d24c], 0
jne 0x40d7fb
mov eax, dword [esi + 8]
lea edx, [eax - 1]
mov dword [esi + 8], edx
test eax, eax
jg 0x40d442
lea eax, [ebp - 0x1d]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0044f5c8
jmp 0x40d442
cmp dword [0x49d24c], 0
jne 0x40d8d9
mov eax, dword [ebx + 8]
lea edx, [eax - 1]
mov dword [ebx + 8], edx
test eax, eax
jg 0x40d55e
lea eax, [ebp - 0x1f]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0044f5c8
jmp 0x40d55e
cmp dword [0x49d24c], 0
jne 0x40d8f1
mov eax, dword [edi + 8]
lea edx, [eax - 1]
mov dword [edi + 8], edx
test eax, eax
jg 0x40d54b
lea eax, [ebp - 0x1e]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0044f5c8
jmp 0x40d54b
mov dword [esp + 4], 0xffffffff
sub edi, 4
mov dword [esp], edi
call fcn.00428e80
jmp 0x40d77b
mov dword [esp + 4], 0xffffffff
sub eax, 4
mov dword [esp], eax
call fcn.00428e80
jmp 0x40d7ad
mov dword [esp + 4], 0xffffffff
sub eax, 4
mov dword [esp], eax
call fcn.00428e80
jmp 0x40d7df