Function at 0x4df190
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x49734]
mov byte [esi + 0x4974c], 0
test dword [ecx + 0x8c], 0x40000
je 0x4df3a9
xor eax, eax
mov edx, 0x4949
cmp word [esi], dx
setne al
push eax
push ecx
call fcn.004525a0
push dword [esi + 0x49734]
call fcn.004525d0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4df230
lea edi, [esi + 0x211]
mov dword [edx], 0x2010f
mov ecx, edi
mov dword [edx + 4], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4df200
sub ecx, dword [ebp - 0x10]
lea eax, [ecx + 1]
push eax
mov dword [edx + 0x10], eax
mov dword [edx + 8], eax
call fcn.00593e38
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ecx + 0x14], eax
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4df222
push dword [esi + 0x49734]
call fcn.004525d0
mov edx, eax
add esp, 4
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4df292
lea edi, [esi + 0x251]
mov dword [edx], 0x20110
mov ecx, edi
mov dword [edx + 4], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4df262
sub ecx, dword [ebp - 0x10]
lea eax, [ecx + 1]
push eax
mov dword [edx + 0x10], eax
mov dword [edx + 8], eax
call fcn.00593e38
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ecx + 0x14], eax
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4df284
push dword [esi + 0x49734]
call fcn.004525d0
mov edx, eax
add esp, 4
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4df2f4
lea edi, [esi + 0x49738]
mov dword [edx], 0x20132
mov ecx, edi
mov dword [edx + 4], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4df2c4
sub ecx, dword [ebp - 0x10]
lea eax, [ecx + 1]
push eax
mov dword [edx + 0x10], eax
mov dword [edx + 8], eax
call fcn.00593e38
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ecx + 0x14], eax
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4df2e6
cmp byte [esi + 0x2d1], 0
lea edi, [esi + 0x2d1]
je 0x4df360
push dword [esi + 0x49734]
call fcn.004525d0
mov edx, eax
add esp, 4
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4df360
mov ecx, edi
mov dword [edx], 0x2013b
mov dword [edx + 4], 1
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4df330
sub ecx, dword [ebp - 0x10]
lea eax, [ecx + 1]
push eax
mov dword [edx + 0x10], eax
mov dword [edx + 8], eax
call fcn.00593e38
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ecx + 0x14], eax
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4df352
movss xmm0, dword [esi + 0x364]
comiss xmm0, dword [0x62d38c]
jbe 0x4df3a9
push dword [esi + 0x49734]
call fcn.004525d0
mov edi, eax
add esp, 4
test edi, edi
je 0x4df3a9
mov dword [edi], 0x38827
mov dword [edi + 4], 2
mov dword [edi + 8], 1
movss xmm0, dword [esi + 0x364]
call fcn.00597120
mov dword [edi + 0xc], eax
push 7
lea eax, [esi + 0x211]
push str.EASTMAN
push eax
call fcn.00596360
add esp, 0xc
test eax, eax
jne 0x4df3d3
cmp dword [esi + 0x3c8], 3
mov dword [ebp - 0xc], 1
jb 0x4df3da
mov dword [ebp - 0xc], 0
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
test eax, eax
je 0x4df6fa
lea esp, [esp]
dec eax
mov ecx, esi
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 8]
call fcn.004ec550
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
cmp edi, 0x927c
je 0x4df4f7
mov ecx, dword [esi + 0x49734]
test dword [ecx + 0x8c], 0x40000
je 0x4df4f7
cmp eax, 0xc
ja 0x4df4f7
cmp dword [ebp - 0x10], 0x7d00
jae 0x4df4f7
push ecx
call fcn.004525d0
mov ecx, eax
add esp, 4
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x4df4f4
push dword [esi + 0x4fa58]
call fcn.005960c7
mov edx, dword [ebp - 4]
add esp, 4
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov word [eax], di
mov dword [eax + 4], 2
mov word [eax + 2], dx
mov dword [eax + 8], ecx
mov eax, dword [edx*4 + 0x5de888]
imul eax, ecx
mov dword [ebp - 0x18], eax
cmp eax, 4
jle 0x4df4c5
push eax
call fcn.00593e38
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], edx
push dword [esi + 0x4fa58]
push 1
push edx
push eax
call fcn.00595b79
add esp, 0x14
jmp 0x4df4e1
mov ecx, esi
cmp eax, 2
jne 0x4df4d6
call fcn.004d29d0
movzx eax, ax
jmp 0x4df4db
call fcn.004d2a10
mov ecx, dword [ebp - 8]
mov dword [ecx + 0xc], eax
push 0
push dword [ebp - 0x1c]
push dword [esi + 0x4fa58]
call fcn.00595cb4
add esp, 0xc
mov eax, dword [ebp - 4]
cmp edi, 0x9202
ja 0x4df628
je 0x4df5f4
cmp edi, 0x8827
ja 0x4df586
je 0x4df568
sub edi, 0x829a
je 0x4df537
sub edi, 3
jne 0x4df6dc
push eax
mov ecx, esi
call fcn.004d3030
fstp dword [esi + 0x36c]
jmp 0x4df6dc
push eax
mov ecx, esi
call fcn.004d3030
fstp dword [ebp - 0x1c]
movss xmm0, dword [ebp - 0x1c]
mov eax, dword [esi + 0x3c8]
movss dword [esi + 0x368], xmm0
lea eax, [eax + eax*2]
add eax, eax
movss dword [esi + eax*8 + 0x4f850], xmm0
jmp 0x4df6dc
mov ecx, esi
call fcn.004d29d0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x364], xmm0
jmp 0x4df6dc
cmp edi, 0x9003
jb 0x4df6dc
cmp edi, 0x9004
jbe 0x4df5e6
cmp edi, 0x9201
jne 0x4df6dc
push eax
mov ecx, esi
call fcn.004d3030
movsd xmm0, qword [0x5d4e70]
fstp qword [ebp - 0x20]
movsd xmm1, qword [ebp - 0x20]
xorpd xmm1, xmmword [0x5c36d0]
comisd xmm0, xmm1
jbe 0x4df6dc
movsd xmm0, qword [0x5c3640]
call fcn.005949c0
cvtsd2ss xmm0, xmm0
jmp 0x4df547
push 0
mov ecx, esi
call fcn.004d2df0
jmp 0x4df6dc
push eax
mov ecx, esi
call fcn.004d3030
fmul qword [0x5c3638]
movsd xmm0, qword [0x5c3640]
fstp qword [ebp - 0x20]
movsd xmm1, qword [ebp - 0x20]
call fcn.005949c0
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x36c], xmm0
jmp 0x4df6dc
cmp edi, 0xa002
ja 0x4df679
je 0x4df663
sub edi, 0x920a
je 0x4df653
sub edi, 0x72
jne 0x4df6dc
push edi
push dword [ebp + 8]
mov ecx, esi
call fcn.004e0680
jmp 0x4df6dc
push eax
mov ecx, esi
call fcn.004d3030
fstp dword [esi + 0x370]
jmp 0x4df6dc
cmp dword [ebp - 0xc], 0
je 0x4df6dc
mov ecx, esi
call fcn.004d2a10
mov word [esi + 0x44a6], ax
jmp 0x4df6dc
cmp edi, 0xa003
je 0x4df6c8
cmp edi, 0xa302
jne 0x4df6dc
mov ecx, esi
call fcn.004d2a10
cmp eax, 0x20002
jne 0x4df6dc
xor edi, edi
mov dword [esi + 0x38c], edi
nop
push dword [esi + 0x4fa58]
call fcn.00597fff
imul eax, eax, 0x1010101
mov ecx, edi
add edi, 2
add esp, 4
shl eax, cl
or dword [esi + 0x38c], eax
cmp edi, 8
jb 0x4df6a0
jmp 0x4df6dc
cmp dword [ebp - 0xc], 0
je 0x4df6dc
mov ecx, esi
call fcn.004d2a10
mov word [esi + 0x44a4], ax
push 0
push dword [ebp - 0x24]
push dword [esi + 0x4fa58]
call fcn.00595cb4
mov eax, dword [ebp - 0x28]
add esp, 0xc
test eax, eax
jne 0x4df3f0
cmp byte [esi + 0x4974c], 0
lea edi, [esi + 0x4974c]
je 0x4df76e
mov eax, dword [esi + 0x49734]
test dword [eax + 0x8c], 0x40000
je 0x4df76e
push eax
call fcn.004525d0
mov esi, eax
add esp, 4
test esi, esi
je 0x4df76e
mov ecx, edi
mov dword [esi], 0x2013b
mov dword [esi + 4], 1
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4df740
sub ecx, edx
lea eax, [ecx + 1]
push eax
mov dword [esi + 0x10], eax
mov dword [esi + 8], eax
call fcn.00593e38
add esp, 4
mov dword [esi + 0x14], eax
mov edi, edi
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4df760
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4