Function at 0x41dac0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push edi
xor edi, edi
or ebx, 0xffffffff
jmp 0x41dad0
cmp dword [esi + 0x3c], 0
je 0x41dada
mov eax, ebx
jmp 0x41db39
cmp dword [esi + 4], 0
jne 0x41db2c
call fcn.0045b1ab
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
push eax
push 0x4000
push 1
push ecx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41db27
mov edx, dword [esi + 0x40]
push edx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41db23
mov dword [esi + 0x38], ebx
mov eax, ebx
jmp 0x41db39
mov eax, dword [esi + 0x44]
mov dword [esi], eax
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx eax, cl
cmp eax, dword [edi*4 + 0x49f614]
jne 0x41db55
inc edi
cmp edi, 2
jb 0x41dad0
cmp dword [esi + 0x3c], 0
je 0x41db80
mov edi, ebx
jmp 0x41dbdf
mov ecx, 1
test edi, edi
je 0x41db63
add dword [esi + 4], ecx
add dword [esi], ebx
cmp eax, ebx
je 0x41db6f
add dword [esi + 4], ecx
add dword [esi], ebx
mov dword [esi + 0x58], ecx
xor ecx, ecx
cmp dword [esi + 4], ecx
pop edi
sete cl
pop ebx
mov dword [esi + 0x38], ecx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 4], 0
jne 0x41dbd2
call fcn.0045b1ab
mov dword [eax], 0
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
push edx
push 0x4000
push 1
push eax
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41dbcd
mov ecx, dword [esi + 0x40]
push ecx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41dbc9
mov dword [esi + 0x38], ebx
mov edi, ebx
jmp 0x41dbdf
mov edx, dword [esi + 0x44]
mov dword [esi], edx
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx edi, cl
cmp dword [esi + 0x3c], 0
je 0x41dbea
mov dword [ebp - 4], ebx
jmp 0x41dc4d
cmp dword [esi + 4], 0
jne 0x41dc3d
call fcn.0045b1ab
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
push eax
push 0x4000
push 1
push ecx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41dc38
mov edx, dword [esi + 0x40]
push edx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41dc33
mov dword [esi + 0x38], ebx
mov dword [ebp - 4], ebx
jmp 0x41dc4d
mov eax, dword [esi + 0x44]
mov dword [esi], eax
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
movzx ecx, cl
inc eax
mov dword [esi], eax
mov dword [ebp - 4], ecx
cmp edi, 8
jne 0x41df71
test byte [ebp - 4], 0xe0
jne 0x41df71
mov edi, 6
cmp dword [esi + 0x3c], 0
jne 0x41dcc0
cmp dword [esi + 4], 0
jne 0x41dcbb
call fcn.0045b1ab
mov dword [eax], 0
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
push edx
push 0x4000
push 1
push eax
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41dcb6
mov ecx, dword [esi + 0x40]
push ecx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41dcc0
mov dword [esi + 0x38], ebx
jmp 0x41dcc0
mov edx, dword [esi + 0x44]
mov dword [esi], edx
add dword [esi + 4], ebx
inc dword [esi]
dec edi
jne 0x41dc65
test byte [ebp - 4], 4
je 0x41de11
cmp dword [esi + 0x3c], edi
je 0x41dcd6
mov edi, ebx
jmp 0x41dd35
cmp dword [esi + 4], 0
jne 0x41dd28
call fcn.0045b1ab
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
push eax
push 0x4000
push 1
push ecx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41dd23
mov edx, dword [esi + 0x40]
push edx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41dd1f
mov dword [esi + 0x38], ebx
mov edi, ebx
jmp 0x41dd35
mov eax, dword [esi + 0x44]
mov dword [esi], eax
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx edi, cl
cmp dword [esi + 0x3c], 0
je 0x41dd3f
mov eax, ebx
jmp 0x41dd9e
cmp dword [esi + 4], 0
jne 0x41dd91
call fcn.0045b1ab
mov dword [eax], 0
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
push ecx
push 0x4000
push 1
push edx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41dd8c
mov eax, dword [esi + 0x40]
push eax
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41dd88
mov dword [esi + 0x38], ebx
mov eax, ebx
jmp 0x41dd9e
mov ecx, dword [esi + 0x44]
mov dword [esi], ecx
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx eax, cl
shl eax, 8
add edi, eax
mov edx, edi
dec edi
test edx, edx
je 0x41de11
cmp dword [esi + 0x3c], 0
jne 0x41de11
cmp dword [esi + 4], 0
jne 0x41dde4
call fcn.0045b1ab
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
push eax
push 0x4000
push 1
push ecx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
je 0x41ddf7
mov edx, dword [esi + 0x44]
mov dword [esi], edx
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx eax, cl
cmp eax, ebx
jne 0x41dda3
jmp 0x41de11
mov eax, dword [esi + 0x40]
push eax
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41de11
mov dword [esi + 0x38], ebx
test byte [ebp - 4], 8
je 0x41de82
cmp dword [esi + 0x3c], 0
jne 0x41de82
cmp dword [esi + 4], 0
jne 0x41de51
call fcn.0045b1ab
mov dword [eax], 0
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
push ecx
push 0x4000
push 1
push edx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
je 0x41de68
mov eax, dword [esi + 0x44]
mov dword [esi], eax
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx eax, cl
test cl, cl
je 0x41de82
cmp eax, ebx
jne 0x41de17
jmp 0x41de82
mov ecx, dword [esi + 0x40]
push ecx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41de82
mov dword [esi + 0x38], ebx
test byte [ebp - 4], 0x10
je 0x41def3
cmp dword [esi + 0x3c], 0
jne 0x41def3
cmp dword [esi + 4], 0
jne 0x41dec2
call fcn.0045b1ab
mov dword [eax], 0
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
push edx
push 0x4000
push 1
push eax
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
je 0x41ded9
mov ecx, dword [esi + 0x44]
mov dword [esi], ecx
mov eax, dword [esi]
add dword [esi + 4], ebx
mov cl, byte [eax]
inc eax
mov dword [esi], eax
movzx eax, cl
test cl, cl
je 0x41def3
cmp eax, ebx
jne 0x41de88
jmp 0x41def3
mov edx, dword [esi + 0x40]
push edx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41def3
mov dword [esi + 0x38], ebx
test byte [ebp - 4], 2
je 0x41df5e
mov edi, 2
mov edi, edi
cmp dword [esi + 0x3c], 0
jne 0x41df5b
cmp dword [esi + 4], 0
jne 0x41df56
call fcn.0045b1ab
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
push eax
push 0x4000
push 1
push ecx
call fcn.00459f57
add esp, 0x10
mov dword [esi + 4], eax
test eax, eax
jne 0x41df51
mov edx, dword [esi + 0x40]
push edx
mov dword [esi + 0x3c], 1
call fcn.0045b3d3
add esp, 4
test eax, eax
je 0x41df5b
mov dword [esi + 0x38], ebx
jmp 0x41df5b
mov eax, dword [esi + 0x44]
mov dword [esi], eax
add dword [esi + 4], ebx
inc dword [esi]
dec edi
jne 0x41df00
mov ecx, dword [esi + 0x3c]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffd
pop edi
mov dword [esi + 0x38], ecx
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov dword [esi + 0x38], 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret