Function at 0x40dc30
Capabilities:
Read file on windows

Disassembly:
push ebp
mov eax, 0x22bc
mov ebp, esp
push edi
push esi
push ebx
call fcn.005e3260
sub esp, eax
test byte [0x8671a1], 1
mov esi, dword [ebp + 8]
je 0x40dc61
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
lea eax, [ebp - 0x222e]
mov ebx, ecx
mov ecx, dword [ecx + 0x14]
lea edx, [ebp - 0x2240]
xor edi, edi
mov dword [ebp - 0x223c], 0
mov dword [ebp - 0x2238], eax
lea eax, [ebp - 0x211a]
mov dword [ebp - 0x2234], pe_nt_image_headers32
mov byte [ebp - 0x2230], 0
mov dword [ebp - method.Pg.virtual_0], vtable.Pg.0
mov dword [ebp - 0x2124], eax
xor eax, eax
mov word [ebp - 0x222e], di
mov word [ebp - 0x211a], ax
mov eax, dword [esi + 0x828]
mov dword [ebp - 0x2128], 0
mov dword [ebp - 0x2120], pe_nt_image_headers32
mov byte [ebp - 0x211c], 0
mov dword [ebp - method.Pg.virtual_0], vtable.Pg.0
add ecx, eax
mov dword [esp + 0xc], ecx
add eax, dword [esi + 0x138]
mov dword [esp + 4], 0x72f2a8
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.00403a60
mov eax, dword [ebx + 0x10]
add eax, dword [esi + 0x828]
mov dword [esp + 4], 0x72f2a8
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2238]
mov dword [esp + 8], eax
lea eax, [ebp - 0x212c]
mov dword [esp], eax
call fcn.00403a60
mov eax, dword [ebp - 0x2124]
lea edi, [ebp - 0x227c]
mov dword [ebp - 0x2284], edi
test eax, eax
mov dword [ebp - 0x229c], eax
je 0x40de40
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
lea edi, [eax + eax]
mov edx, edi
sar edx, 1
cmp edx, 7
mov dword [ebp - 0x2294], edx
ja 0x40de60
cmp edx, 1
mov eax, dword [ebp - 0x2284]
jne 0x40de50
mov edi, dword [ebp - 0x229c]
movzx ecx, word [edi]
mov word [eax], cx
xor ecx, ecx
mov dword [ebp - 0x2280], edx
lea edi, [ebp - 0x2284]
mov word [eax + edx*2], cx
lea eax, [esi + 0x834]
mov dword [esp], edi
mov ecx, eax
mov dword [ebp - 0x229c], eax
call fcn.0068a920
mov edi, eax
mov eax, dword [ebp - 0x2284]
lea ecx, [ebp - 0x227c]
sub esp, 4
cmp eax, ecx
je 0x40ddd1
mov dword [esp], eax
call fcn.006febf0
test edi, edi
je 0x40dec0
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x44], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x40], eax
mov eax, dword [edi + 0x28]
mov dword [ebx + 0x20], eax
mov eax, dword [edi + 0x24]
mov ebx, dword [ebp + 0x10]
mov dword [ebx], eax
mov eax, dword [ebp - 0x2128]
mov dword [ebp - method.nInst.virtual_0], vtable.nInst.0
test eax, eax
je 0x40de0f
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x223c]
mov dword [ebp - method.nInst.virtual_0], vtable.nInst.0
test eax, eax
je 0x40dc57
mov dword [esp], eax
call fcn.006febd0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov dword [esp], 0x72fb00
call fcn.006e4530
lea esi, [esi]
test edx, edx
je 0x40dd8c
jmp 0x40de91
lea eax, [ebp - 0x2294]
lea ecx, [ebp - 0x2284]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.006c61c0
mov edx, dword [ebp - 0x2294]
sub esp, 8
mov dword [ebp - 0x2284], eax
mov dword [ebp - 0x227c], edx
mov dword [esp + 8], edi
mov edi, dword [ebp - 0x229c]
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x2294]
mov eax, dword [ebp - 0x2284]
jmp 0x40dd8c
mov edi, dword [ebp - 0x2238]
lea eax, [ebp - 0x2264]
mov dword [ebp - 0x226c], eax
test edi, edi
je 0x40e2b0
mov dword [esp], edi
call sub.msvcrt.dll_wcslen
add eax, eax
mov edx, eax
mov dword [ebp - 0x22a0], eax
sar edx, 1
cmp edx, 7
mov dword [ebp - 0x2290], edx
invalid
invalid