Function at 0x100048c0
Capabilities:
Read file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov ebx, ecx
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov eax, edi
sub eax, 1
mov eax, ebp
sbb eax, 0
setl cl
xor eax, eax
test cl, 1
mov edx, 0
jne 0x10004dbe
jmp 0x100048f4
mov eax, ebx
add eax, 0x38
cmp dword [eax], 0
sete al
test al, 1
jne 0x10004a73
jmp 0x10004909
mov dword [esp + 0x14], esi
call fcn.10009e62
cmp eax, 0
je 0x10004dc8
jmp 0x1000491d
call fcn.1000d3d5
mov esi, ebx
add esi, 0x1c
cmp eax, 0
jne 0x1000491d
jmp 0x1000492e
call fcn.1000d410
cmp eax, 0
jne 0x10004dcd
call fcn.1000d43c
mov ecx, ebx
add ecx, 0x2c
cmp eax, 0
je 0x10004dcd
mov dword [esp + 0x28], ecx
jmp 0x10004955
mov dword [esp + 0x18], edi
jmp 0x1000495b
mov eax, dword [esi]
mov eax, dword [eax]
cmp eax, 0
mov dword [esp + 0x1c], ebp
je 0x100049da
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov edi, dword [ecx]
cmp edi, 0
setg cl
test cl, 1
jne 0x1000497d
jmp 0x100049da
xor edx, edx
mov ecx, dword [esp + 0x18]
sub ecx, edi
mov ecx, ebp
sbb ecx, 0
cmovb edx, ebp
mov dword [esp + 0x30], edx
cmovb edi, dword [esp + 0x18]
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x14]
mov dword [esp], ebp
mov dword [esp + 8], edi
call fcn.10017250
add ebp, edi
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x1c]
sub dword [esp + 0x18], edi
sbb ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax]
sub ecx, edi
mov dword [eax], ecx
mov eax, dword [esi]
mov ecx, dword [eax]
add ecx, edi
mov dword [eax], ecx
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
jmp 0x10004a54
call fcn.1000d483
cmp eax, 0
je 0x10004dd2
jmp 0x100049ea
call fcn.1000d4c9
mov ebp, dword [ebx]
cmp eax, 0
je 0x100049ea
jmp 0x100049f8
call fcn.1000d4ec
cmp eax, 0
je 0x10004dd7
jmp 0x10004a08
call fcn.1000d50f
mov edi, eax
mov ecx, ebx
call dword [ebp + 0x1c]
cmp eax, 0xffffffff
sete cl
cmp edi, 0
jne 0x10004a08
jmp 0x10004a21
test cl, 1
mov ebp, dword [esp + 0x58]
mov edx, ebp
mov edi, dword [esp + 0x54]
je 0x10004a36
mov ebp, dword [esp + 0x1c]
jmp 0x10004a66
mov ebp, dword [esp + 0x14]
mov ecx, ebp
add ecx, 1
mov byte [ebp], al
add dword [esp + 0x18], 0xffffffff
mov ebp, dword [esp + 0x1c]
adc ebp, 0xffffffff
mov dword [esp + 0x14], ecx
jmp 0x10004a54
xor eax, eax
mov ecx, dword [esp + 0x18]
neg ecx
sbb eax, ebp
jl 0x1000495b
jmp 0x10004a66
sub edi, dword [esp + 0x18]
sbb edx, ebp
mov eax, edi
jmp 0x10004dbe
mov eax, ebx
add eax, 0x1c
mov dword [esp + 0x20], eax
call fcn.1000d53d
cmp eax, 0
je 0x10004de1
jmp 0x10004a8c
call fcn.1000d563
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp ecx, 0
sete dl
cmp eax, 0
jne 0x10004a8c
test dl, 1
je 0x10004aaf
mov dword [esp + 0x10], edi
jmp 0x10004b24
mov esi, ebx
add esi, 0x2c
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax]
cmp eax, 0
sete dl
test dl, 1
je 0x10004ace
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x50]
jmp 0x10004b24
mov dword [esp + 0x38], esi
mov edx, eax
sub edx, edi
cmovb edi, eax
mov esi, dword [esp + 0x50]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.10017250
add esi, edi
mov edx, esi
mov esi, dword [esp + 0x54]
mov eax, esi
xor eax, edi
mov ecx, edi
xor ecx, 0xffffffff
and esi, ecx
shl esi, 1
sub esi, eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [eax]
sub ecx, edi
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
add edi, dword [eax]
mov dword [eax], edi
mov edi, dword [esp + 0x54]
mov esi, edx
mov dword [esp + 0x14], esi
call fcn.1000d5b2
cmp eax, 0
je 0x10004de6
jmp 0x10004b38
call fcn.1000d5f2
mov esi, ebx
add esi, 0x4c
cmp dword [ebx + 0x4c], 0
sete cl
cmp eax, 0
jne 0x10004b38
test cl, 1
je 0x10004b5c
mov ecx, dword [esp + 0x10]
jmp 0x10004d85
mov edi, ebx
add edi, 0xc
call fcn.1000d618
cmp eax, 0
jne 0x10004deb
call fcn.1000d641
mov ebp, dword [edi]
cmp eax, 0
je 0x10004deb
jmp 0x10004b81
mov eax, dword [ebp]
mov ecx, ebx
add ecx, 0x3c
cmp eax, ecx
jne 0x10004c1b
call fcn.10009e62
cmp eax, 0
je 0x10004df0
call fcn.1000d663
mov edx, dword [ebx + 0x54]
mov edi, dword [ebx + 0x50]
mov dword [ebp], edi
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
cmp eax, 0
je 0x10004df0
mov ebp, ecx
mov dword [esp + 0x34], edx
jmp 0x10004bc4
call fcn.1000d684
cmp eax, 0
jne 0x10004dfb
mov dword [esp + 0x2c], ebp
jmp 0x10004bd8
call fcn.1000d6bd
mov ecx, dword [esp + 0x2c]
mov dword [ecx], edi
mov ecx, edi
xor ecx, 0xffffffff
mov ebp, dword [esp + 0x34]
add ebp, ecx
add ebp, 1
cmp eax, 0
je 0x10004bd8
jmp 0x10004bf8
call fcn.10006630
cmp eax, 0
jne 0x10004e03
call fcn.1000d6e6
mov ecx, dword [ebx + 0x2c]
mov dword [ecx], ebp
cmp eax, 0
je 0x10004e03
jmp 0x10004c1b
mov ebx, dword [esp + 0x10]
jmp 0x10004c21
cmp ebx, 0x1000
mov ebp, dword [esp + 0x58]
jb 0x10004cc0
mov dword [esp + 0x10], ebx
mov edi, dword [esi]
call fcn.1000d71b
cmp eax, 0
mov dword [esp + 0x24], edi
je 0x10004e0d
call fcn.10006630
mov edi, eax
mov ebp, dword [esp + 0x14]
mov dword [esp], ebp
mov dword [esp + 4], 1
mov dword [esp + 8], 0xfff
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
call fcn.1001a602
mov ebx, eax
add ebp, ebx
cmp edi, 0
jne 0x10004e0d
jmp 0x10004c83
call fcn.1000d738
cmp eax, 0
je 0x10004e36
jmp 0x10004c93
call fcn.1000d776
mov edi, dword [esp + 0x10]
sub edi, ebx
cmp ebx, 0xfff
sete cl
cmp eax, 0
jne 0x10004c93
test cl, 1
mov ebx, edi
mov dword [esp + 0x14], ebp
jne 0x10004c21
jmp 0x10004d90
call fcn.1000d7ab
cmp eax, 0
mov edi, dword [esp + 0x54]
jne 0x10004e3b
call fcn.1000d808
cmp ebx, 0
sete dl
cmp eax, 0
je 0x10004e3b
jmp 0x10004ce8
xor ecx, ecx
test dl, 1
jne 0x10004d85
jmp 0x10004cf5
mov dword [esp + 0x10], ebx
call fcn.1000d828
cmp eax, 0
je 0x10004e40
call fcn.1000d869
mov ebx, dword [esi]
cmp eax, 0
je 0x10004e40
jmp 0x10004d19
call fcn.1000d89b
cmp eax, 0
jne 0x10004e45
call fcn.1000d8bf
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], 1
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
call fcn.1001a602
mov esi, eax
cmp edi, 0
jne 0x10004e45
jmp 0x10004d5b
call fcn.1000d8ee
cmp eax, 0
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
jne 0x10004e6a
call fcn.1000d914
mov ecx, ebx
sub ecx, esi
cmp eax, 0
jne 0x10004e6a
jmp 0x10004d85
sub edi, ecx
sbb ebp, 0
mov eax, edi
mov edx, ebp
jmp 0x10004dbe
call fcn.1000d93b
cmp eax, 0
mov esi, dword [esp + 0x58]
jne 0x10004e6f
jmp 0x10004da4
call fcn.1000d963
xor ecx, ecx
cmp eax, 0
je 0x10004da4
jmp 0x10004db2
mov eax, dword [esp + 0x54]
sub eax, edi
sbb esi, ecx
mov edx, esi
jmp 0x10004dbe
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
jmp 0x1000491b
jmp 0x1000493c
jmp 0x100049e8
mov ecx, ebx
call dword [ebp + 0x1c]
jmp 0x10004a06
jmp 0x10004a8a
jmp 0x10004b36
jmp 0x10004b6f
mov eax, dword [ebx + 0x50]
mov dword [ebp], eax
jmp 0x10004b9f
mov dword [ebp], edi
jmp 0x10004bd2
mov eax, dword [ebx + 0x2c]
mov dword [eax], ebp
jmp 0x10004c06
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 0xfff
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
call fcn.1001a602
jmp 0x10004c49
jmp 0x10004c91
jmp 0x10004cd2
jmp 0x10004d07
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], 1
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
call fcn.1001a602
jmp 0x10004d27
jmp 0x10004d71
jmp 0x10004da2