Function at 0x42c100
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x54ead9
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
mov eax, dword [0x57f7c4]
xor eax, esp
push eax
lea eax, [esp + 0x24]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x20], 0xffffffff
push 0x100
push 0x8010
push esi
mov dword [esp + 0x38], 0
call fcn.0051e8fb
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x20], ebp
test ebp, ebp
jge 0x42c191
mov eax, dword [0x587970]
push esi
add eax, 0xe0
push str._s_map_open_failed
push eax
call fcn.004efdc0
add esp, 0xc
cmp ebp, 0xffffffff
je 0x42c17c
push ebp
call fcn.0051fa6c
add esp, 4
xor al, al
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
push 4
lea esi, [edi + 4]
push esi
push ebp
call fcn.0051ef73
add esp, 0xc
cmp eax, 4
jne 0x42c16e
mov ecx, dword [esi]
imul ecx, ecx
lea esi, [edi + 8]
call fcn.0042bc40
test al, al
je 0x42c16e
mov ebx, dword [edi + 0x10]
mov esi, dword [esi]
push ebx
push esi
push ebp
call fcn.0051ef73
add esp, 0xc
cmp eax, ebx
jne 0x42c16e
push 4
lea ebx, [edi + 0x68]
push ebx
push ebp
call fcn.0051ef73
mov esi, dword [ebx]
add esp, 0xc
test esi, esi
jle 0x42c251
xor ecx, ecx
mov eax, esi
mov edx, 0x14
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
add esp, 4
cmp dword [ebx], 0
mov dword [edi + 0x6c], eax
mov dword [esp + 0x18], 0
jle 0x42c251
xor esi, esi
lea esp, [esp]
mov eax, dword [edi + 0x6c]
add eax, esi
push 0xc
push eax
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x6c]
lea eax, [esi + eax + 0xc]
push 4
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x6c]
lea eax, [esi + ecx + 0x10]
push 4
push eax
push ebp
call fcn.0051ef73
mov eax, dword [esp + 0x3c]
inc eax
add esp, 0x24
add esi, 0x14
cmp eax, dword [ebx]
mov dword [esp + 0x18], eax
jl 0x42c210
push 4
lea esi, [edi + 0x60]
push esi
push ebp
call fcn.0051ef73
mov eax, dword [esi]
add esp, 0xc
test eax, eax
jle 0x42c2ad
xor ecx, ecx
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
xor ebx, ebx
add esp, 4
cmp dword [esi], ebx
mov dword [edi + 0x64], eax
jle 0x42c2ad
mov dword [esp + 0x14], ebx
lea esp, [esp]
mov eax, dword [edi + 0x64]
add eax, dword [esp + 0x14]
push 0xc
push eax
push ebp
call fcn.0051ef73
add dword [esp + 0x20], 0xc
inc ebx
add esp, 0xc
cmp ebx, dword [esi]
jl 0x42c290
push 4
lea ebx, [edi + 0x14]
push ebx
push ebp
call fcn.0051ef73
mov esi, dword [ebx]
add esp, 0xc
test esi, esi
jle 0x42c4da
xor ecx, ecx
mov eax, esi
mov edx, 0x28
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0051a8b3
add esp, 4
mov dword [esp + 0x18], eax
mov byte [esp + 0x2c], 1
test eax, eax
je 0x42c31c
push 0x41ba90
push 0x4231e0
push esi
mov dword [eax], esi
add eax, 4
push 0x28
push eax
mov dword [esp + 0x30], eax
call fcn.0051ab52
mov eax, dword [esp + 0x1c]
jmp 0x42c31e
xor eax, eax
mov byte [esp + 0x2c], 0
cmp dword [ebx], 0
mov dword [edi + 0x18], eax
mov dword [esp + 0x14], 0
jle 0x42c4da
xor esi, esi
lea esp, [esp]
mov eax, dword [edi + 0x18]
add eax, esi
push 0x18
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x18]
lea eax, [esi + ecx + 0x20]
push 4
push eax
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x18]
fld dword [esi + edx + 0xc]
lea ebx, [esi + edx]
fsub dword [ebx]
add esp, 0x18
call fcn.005250c0
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x18]
fld dword [esi + eax + 0x14]
lea ebx, [esi + eax]
fsub dword [ebx + 8]
call fcn.005250c0
mov dword [ebx + 0x1c], eax
mov ecx, dword [edi + 0x18]
cmp dword [esi + ecx + 0x18], 0
lea eax, [esi + ecx + 0x18]
jg 0x42c39e
mov dword [eax], 1
mov edx, dword [edi + 0x18]
cmp dword [esi + edx + 0x1c], 0
lea eax, [esi + edx + 0x1c]
jg 0x42c3b2
mov dword [eax], 1
mov eax, dword [edi + 0x18]
mov dword [esi + eax + 0x24], 0
mov ecx, dword [edi + 0x18]
mov ebx, dword [esi + ecx + 0x20]
test ebx, ebx
jle 0x42c4c5
xor ecx, ecx
mov eax, ebx
mov edx, 0x24
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
mov ecx, eax
xor eax, eax
add esp, 4
mov dword [esp + 0x1c], ecx
cmp ecx, eax
je 0x42c41e
lea edx, [ebx - 1]
cmp edx, eax
jl 0x42c420
add ecx, 0x18
lea ecx, [ecx]
mov dword [ecx - 8], eax
mov dword [ecx], eax
mov byte [ecx - 4], 0
mov dword [ecx + 8], eax
mov byte [ecx + 4], 0
add ecx, 0x24
sub edx, 1
jns 0x42c400
mov ecx, dword [esp + 0x1c]
jmp 0x42c420
xor ecx, ecx
mov edx, dword [edi + 0x18]
mov dword [esi + edx + 0x24], ecx
mov ecx, dword [edi + 0x18]
cmp dword [esi + ecx + 0x20], eax
mov dword [esp + 0x18], eax
jle 0x42c4c5
xor ebx, ebx
lea ebx, [ebx]
mov edx, dword [edi + 0x18]
mov eax, dword [esi + edx + 0x24]
add eax, ebx
push 4
push eax
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x18]
mov ecx, dword [esi + eax + 0x24]
lea eax, [ecx + ebx + 4]
push 4
push eax
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x18]
mov eax, dword [esi + edx + 0x24]
lea edx, [eax + ebx]
mov eax, dword [edx]
add esp, 0x18
test eax, eax
jl 0x42c4a7
cmp eax, dword [0x1009674]
jge 0x42c4a7
mov ecx, dword [0x1009678]
imul eax, eax, 0x10c
add eax, ecx
cmp word [eax], 0
je 0x42c4a7
cmp dword [eax + 0x30], 0
je 0x42c4a7
movzx ecx, word [eax + 0x22]
neg ecx
sbb ecx, ecx
and ecx, eax
jmp 0x42c4a9
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov dword [edx + 0x10], ecx
mov edx, dword [edi + 0x18]
inc eax
add ebx, 0x24
cmp eax, dword [esi + edx + 0x20]
mov dword [esp + 0x18], eax
jl 0x42c440
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x28
cmp eax, dword [edi + 0x14]
mov dword [esp + 0x14], eax
jl 0x42c340
push 4
lea ebx, [edi + 0x40]
push ebx
push ebp
call fcn.0051ef73
mov esi, dword [ebx]
add esp, 0xc
test esi, esi
jle 0x42c6ce
xor ecx, ecx
mov eax, esi
mov edx, 0x14
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0051a8b3
add esp, 4
mov dword [esp + 0x18], eax
mov byte [esp + 0x2c], 2
test eax, eax
je 0x42c549
push 0x4244e0
push 0x4244d0
push esi
mov dword [eax], esi
add eax, 4
push 0x14
push eax
mov dword [esp + 0x30], eax
call fcn.0051ab52
mov eax, dword [esp + 0x1c]
jmp 0x42c54b
xor eax, eax
mov byte [esp + 0x2c], 0
cmp dword [ebx], 0
mov dword [edi + 0x44], eax
mov dword [esp + 0x1c], 0
jle 0x42c6ce
xor esi, esi
mov eax, dword [edi + 0x44]
add eax, esi
push 4
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x44]
lea eax, [esi + ecx + 4]
push 4
push eax
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x44]
lea eax, [esi + edx + 8]
push 4
push eax
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x44]
xor ecx, ecx
mov dword [esi + eax + 0xc], ecx
mov edx, dword [edi + 0x44]
mov dword [esi + edx + 0x10], ecx
mov eax, dword [edi + 0x44]
mov eax, dword [esi + eax + 8]
add esp, 0x24
cmp eax, ecx
jle 0x42c6b9
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
mov ecx, dword [edi + 0x44]
mov dword [esi + ecx + 0xc], eax
mov edx, dword [edi + 0x44]
lea eax, [esi + edx]
add esp, 4
cmp dword [eax + 0xc], 0
je 0x42c16e
mov eax, dword [eax + 8]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
mov ecx, dword [edi + 0x44]
mov dword [esi + ecx + 0x10], eax
mov edx, dword [edi + 0x44]
lea eax, [esi + edx]
add esp, 4
cmp dword [eax + 0x10], 0
je 0x42c16e
cmp dword [eax + 8], 0
mov dword [esp + 0x14], 0
jle 0x42c6b9
mov dword [esp + 0x18], 0
mov eax, dword [edi + 0x44]
mov eax, dword [esi + eax + 0xc]
add eax, dword [esp + 0x18]
push 0xc
push eax
push ebp
call fcn.0051ef73
mov ebx, dword [esp + 0x20]
mov ecx, dword [edi + 0x44]
mov eax, dword [esi + ecx + 0x10]
add ebx, ebx
add ebx, ebx
add eax, ebx
push 4
push eax
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x44]
mov eax, dword [esi + edx + 0x10]
fld dword [eax + ebx]
add eax, ebx
fchs
add esp, 0x18
fmul qword [0x574150]
fstp dword [eax]
mov ecx, dword [edi + 0x44]
fldz
mov edx, dword [esi + ecx + 0x10]
fcomp dword [ebx + edx]
lea ecx, [esi + ecx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x42c69e
mov eax, edx
fld dword [eax + ebx]
add eax, ebx
fadd qword [0x574148]
fstp dword [eax]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x44]
add dword [esp + 0x18], 0xc
inc eax
cmp eax, dword [esi + ecx + 8]
mov dword [esp + 0x14], eax
jl 0x42c631
mov eax, dword [esp + 0x1c]
inc eax
add esi, 0x14
cmp eax, dword [edi + 0x40]
mov dword [esp + 0x1c], eax
jl 0x42c566
push 4
lea ebx, [edi + 0x50]
push ebx
push ebp
call fcn.0051ef73
mov eax, dword [ebx]
add esp, 0xc
test eax, eax
jle 0x42c7fb
xor ecx, ecx
mov edx, 0x30
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
add esp, 4
cmp dword [ebx], 0
mov dword [edi + 0x54], eax
mov dword [esp + 0x1c], 0
jle 0x42c7fb
xor esi, esi
mov eax, dword [edi + 0x54]
lea eax, [esi + eax + 4]
push 0xc
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x54]
lea eax, [esi + ecx + 0x14]
push 4
push eax
push ebp
call fcn.0051ef73
push 2
lea edx, [esp + 0x2c]
push edx
push ebp
call fcn.0051ef73
movzx eax, word [esp + 0x34]
mov ecx, dword [edi + 0x54]
push 2
lea edx, [esp + 0x38]
push edx
push ebp
mov dword [esi + ecx + 0x18], eax
call fcn.0051ef73
mov eax, dword [esp + 0x40]
add esp, 0x30
cmp ax, 0x3c
jne 0x42c772
mov eax, 0x46
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x54]
movzx eax, ax
mov dword [esi + ecx + 0x1c], eax
mov edx, dword [edi + 0x54]
lea eax, [esi + edx + 0x20]
push 4
push eax
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x54]
lea eax, [esi + eax + 0x24]
push 4
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x54]
lea eax, [esi + ecx + 0x28]
push 4
push eax
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x54]
lea eax, [esi + edx + 0x2c]
push 4
push eax
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x54]
mov ecx, dword [eax + esi + 0x14]
add eax, esi
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x54]
lea eax, [esi + edx]
add esp, 0x30
cmp dword [eax + 0x14], 0x3e8
jle 0x42c7e1
mov ecx, dword [eax + 0x14]
mov dword [eax], ecx
jmp 0x42c7e7
mov dword [eax], 0xffffffff
mov eax, dword [esp + 0x1c]
inc eax
add esi, 0x30
cmp eax, dword [ebx]
mov dword [esp + 0x1c], eax
jl 0x42c716
push 4
lea esi, [edi + 0x58]
push esi
push ebp
call fcn.0051ef73
mov esi, dword [esi]
add esp, 0xc
test esi, esi
jle 0x42c910
xor ecx, ecx
mov eax, esi
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0051a8b3
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x2c], 3
test eax, eax
je 0x42c862
push 0x42bc10
push 0x42bc00
push esi
lea ebx, [eax + 4]
push 0x10
push ebx
mov dword [eax], esi
call fcn.0051ab52
jmp 0x42c864
xor ebx, ebx
mov byte [esp + 0x2c], 0
mov dword [edi + 0x5c], ebx
xor ebx, ebx
cmp dword [edi + 0x58], ebx
jle 0x42c910
xor esi, esi
lea esp, [esp]
mov ecx, dword [edi + 0x5c]
push 4
add ecx, esi
push ecx
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x5c]
push 4
lea eax, [edx + esi + 4]
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x5c]
push 4
lea edx, [ecx + esi + 8]
push edx
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x5c]
mov dword [eax + esi + 0xc], 0
mov ecx, dword [edi + 0x5c]
mov eax, dword [esi + ecx]
add esp, 0x24
test eax, eax
jle 0x42c903
xor ecx, ecx
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
mov ecx, dword [edi + 0x5c]
mov dword [ecx + esi + 0xc], eax
mov edx, dword [edi + 0x5c]
mov ecx, dword [edx + esi]
lea eax, [edx + esi]
mov edx, dword [eax + 0xc]
lea ecx, [ecx + ecx*2]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
push edx
push ebp
call fcn.0051ef73
add esp, 0x10
inc ebx
add esi, 0x10
cmp ebx, dword [edi + 0x58]
jl 0x42c880
push 4
lea esi, [edi + 0x70]
push esi
push ebp
call fcn.0051ef73
mov eax, dword [esi]
add esp, 0xc
test eax, eax
jle 0x42c9aa
xor ecx, ecx
mov edx, 0x28
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051a8b3
xor ebx, ebx
add esp, 4
cmp dword [edi + 0x70], ebx
mov dword [edi + 0x74], eax
jle 0x42c9aa
xor esi, esi
mov edi, edi
mov eax, dword [edi + 0x74]
push 0x18
add eax, esi
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x74]
push 4
lea edx, [ecx + esi + 0x18]
push edx
push ebp
call fcn.0051ef73
mov eax, dword [edi + 0x74]
push 1
lea ecx, [eax + esi + 0x1c]
push ecx
push ebp
call fcn.0051ef73
mov edx, dword [edi + 0x74]
push 1
lea eax, [edx + esi + 0x20]
push eax
push ebp
call fcn.0051ef73
mov ecx, dword [edi + 0x74]
push 2
lea edx, [ecx + esi + 0x24]
push edx
push ebp
call fcn.0051ef73
inc ebx
add esp, 0x3c
add esi, 0x28
cmp ebx, dword [edi + 0x70]
jl 0x42c950
cmp ebp, 0xffffffff
je 0x42c9b8
push ebp
call fcn.0051fa6c
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
add esp, 0x20
ret