Function at 0x40c450
Capabilities:
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1bc
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 8]
test ebx, ebx
jle 0x40d815
mov ecx, dword [eax + 0x14]
xor edx, edx
mov dword [ebp - 0x130], 0
mov eax, dword [ecx + edx*4]
add edx, 1
mov esi, dword [eax + 4]
add dword [ebp - 0x130], esi
cmp edx, ebx
jl 0x40c479
mov edi, dword [ebp + 0xc]
mov edx, 0xfffffffe
mov dword [ebp - 0x148], 0xffffffff
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x12c], 0
add edi, 0x18
mov dword [ebp - 0x160], edi
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0xf4], 0
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x128], ecx
add ecx, 0x131c
add eax, 1
imul eax, eax, 0x64
mov dword [ebp - 0x15c], ecx
mov dword [ebp - 0xf8], eax
mov esi, dword [ebp - 0x128]
mov edi, dword [ebp - 0x144]
cmp edi, dword [esi + 4]
jge 0x40d838
mov ecx, dword [ebp - 0x128]
mov ebx, dword [ebp - 0xf4]
add ebx, dword [ecx + 0x18]
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x124], ebx
cmp esi, edx
mov dword [ebp - 0x13c], esi
je 0x40c5b2
cmp dword [ebp - 0x148], 0xffffffff
je 0x40c553
mov edi, dword [ebp - 0x148]
mov dword [esp], edi
call sub.cygwin1.dll_close
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x40c5b2
cmp dword [ebp - 0x13c], 0xffffffff
je 0x40d78d
mov ebx, dword [ebp - 0x13c]
lea edi, [ebp - 0xdb]
mov esi, dword [ebp + 8]
mov dword [esp + 4], str._s__d.VOB
mov dword [esp], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
call sub.cygwin1.dll_sprintf
lea eax, [ebp - 0xdb]
mov dword [esp + 4], 0x10001
mov dword [esp], eax
call sub.cygwin1.dll__open64
test eax, eax
mov dword [ebp - 0x148], eax
js 0x40d855
mov ecx, dword [ebp - 0x124]
xor ebx, ebx
mov edi, 0x44c24d
mov edx, dword [ebp - 0x124]
mov eax, dword [ecx + 0x68]
add edx, 0x68
mov dword [0x44c220], eax
mov eax, dword [edx + 4]
mov dword [0x44c224], eax
mov eax, dword [edx + 8]
mov dword [0x44c228], eax
mov eax, dword [edx + 0xc]
mov dword [0x44c22c], eax
mov eax, dword [edx + 0x10]
mov dword [0x44c230], eax
mov eax, dword [edx + 0x14]
mov dword [0x44c234], eax
mov eax, dword [edx + 0x18]
mov dword [0x44c238], eax
mov eax, dword [edx + 0x1c]
mov dword [0x44c23c], eax
mov eax, dword [edx + 0x20]
mov dword [0x44c240], eax
movzx eax, word [edx + 0x24]
mov dword [esp + 4], 0x1bf
mov dword [esp], 0x44c246
mov word [0x44c244], ax
call fcn.004013c0
mov dword [esp + 4], 0x3d4
mov dword [esp], 0x44c24a
call fcn.004013f0
mov eax, ebx
mov ecx, 0xf4
rep stosd dword es:[edi], eax
mov byte [0x44c24c], 0
mov byte [0x44c61f], 0
mov word [edi], 0
mov edi, 0x44c627
mov dword [esp + 4], 0x1bf
mov dword [esp], 0x44c620
call fcn.004013c0
mov dword [esp + 4], 0x3fa
mov dword [esp], 0x44c624
call fcn.004013f0
mov eax, ebx
mov ecx, 0xfe
rep stosd dword es:[edi], eax
mov eax, 0x44c224
mov byte [0x44c626], 1
call fcn.0040b790
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x180], eax
mov eax, dword [edx]
mov dword [esp], 0x44c24d
mov dword [esp + 4], eax
call fcn.004013c0
mov ecx, dword [ebp - 0x124]
mov eax, dword [ecx + 0x38]
mov dword [esp], 0x44c259
mov dword [esp + 4], eax
call fcn.004013c0
mov ebx, dword [ebp - 0x124]
mov eax, dword [ebx + 0x40]
mov dword [esp], 0x44c25d
mov dword [esp + 4], eax
call fcn.004013c0
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x40c70f
mov eax, dword [ebx + 0x30]
mov dword [esp], 0x44c261
mov dword [esp + 4], eax
call fcn.004013c0
mov esi, dword [ebp - 0x124]
mov edi, dword [ebp - 0x128]
mov ecx, dword [esi + 0x14]
mov ebx, dword [edi + 0x18]
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
lea ecx, [ecx + ecx*8]
mov edi, dword [ebp + 0xc]
shl ecx, 4
sub eax, dword [ebx + ecx + 0x38]
sbb edx, dword [ebx + ecx + 0x3c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004011b0
mov dword [esp], 0x44c265
mov dword [esp + 4], eax
call fcn.004013c0
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x164], eax
mov eax, dword [eax + 4]
test eax, eax
je 0x40c9cc
mov edx, dword [ebp - 0x160]
xor ebx, ebx
mov edi, 1
mov dword [esp], edx
call fcn.00401460
mov dword [esp + 4], 1
mov dword [esp], 0x44c2ad
mov esi, eax
call fcn.004013f0
mov ecx, dword [ebp - 0x128]
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x38]
mov dword [esp], 0x44c2af
mov dword [esp + 4], eax
call fcn.004013c0
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x44c2b3
call fcn.004013c0
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0x44c2b7
call fcn.004013c0
mov dword [esp + 4], 0
mov dword [esp], 0x44c2bb
call fcn.004013f0
mov dword [ebp - 0x120], 0
mov eax, esi
mov ecx, ebx
sar eax, cl
test al, 1
je 0x40c862
cmp dword [ebp - 0x120], 2
jg 0x40d898
mov eax, dword [ebp - 0x120]
mov dword [esp], 0x44c2bb
mov byte [ebp + eax - 0x13], bl
call fcn.00401440
mov ecx, ebx
mov edx, edi
shl edx, cl
mov ecx, 2
sub ecx, dword [ebp - 0x120]
sar edx, 1
mov dword [esp], 0x44c2bb
shl ecx, 2
shl edx, cl
lea eax, [eax + edx + 0x1000]
mov dword [esp + 4], eax
call fcn.004013f0
add dword [ebp - 0x120], 1
add ebx, 1
cmp ebx, 4
jne 0x40c7ff
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x40d7ae
mov ebx, dword [ebp - 0x164]
mov esi, dword [ebp - 0x15c]
mov eax, dword [ebx + 4]
mov byte [0x44c2be], al
mov eax, dword [ebx + 4]
mov byte [0x44c2bf], al
mov eax, dword [esi]
mov dword [0x44c2c3], eax
mov eax, dword [esi + 4]
mov dword [0x44c2c7], eax
mov eax, dword [esi + 8]
mov dword [0x44c2cb], eax
mov eax, dword [esi + 0xc]
mov dword [0x44c2cf], eax
mov eax, dword [esi + 0x10]
mov dword [0x44c2d3], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0xfc], 0
mov dword [0x44c2d7], eax
mov edi, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x164]
movsx eax, byte [ebp + edi - 0x13]
mov edi, dword [edx + 4]
movzx eax, byte [edx + eax + 0x34]
and eax, 0x7f
test edi, edi
mov dword [ebp - 0x114], eax
jle 0x40c9ac
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0xf0], 0
mov eax, edx
sar edx, 0x1f
idiv dword [ebp - 0x120]
lea eax, [eax + eax*8]
lea eax, [eax + eax + 0x44c2db]
mov dword [ebp - 0x118], eax
lea esi, [esi]
mov ecx, dword [ebp - 0xf0]
xor edx, edx
xor eax, eax
mov ebx, dword [ebp - 0x164]
lea edi, [ecx + ecx*8]
shl edi, 4
add edi, dword [ebx + 0x20]
mov esi, dword [edi + 0x8c]
test esi, esi
jle 0x40c98c
mov eax, dword [ebp - 0x114]
xor edx, edx
mov ecx, edi
cmp dword [edi + 8], eax
mov dword [ebp - 0x10c], 0
jne 0x40c983
jmp 0x40d266
mov eax, dword [ecx + 0x34]
add ecx, 0x2c
cmp eax, dword [ebp - 0x114]
je 0x40d360
add edx, 1
cmp edx, esi
jl 0x40c971
mov eax, edx
cmp edx, esi
jne 0x40d260
mov ebx, dword [ebp - 0x164]
add dword [ebp - 0xf0], 1
mov ecx, dword [ebp - 0xf0]
cmp dword [ebx + 4], ecx
jg 0x40c930
add dword [ebp - 0x11c], 1
mov esi, dword [ebp - 0x120]
add dword [ebp - 0xfc], 0x24
cmp dword [ebp - 0x11c], esi
jl 0x40c8d7
mov edi, dword [ebp - 0x180]
mov dword [esp], 0x44c627
mov dword [esp + 4], edi
call fcn.004013c0
mov edx, dword [ebp - 0x124]
mov eax, dword [edx]
mov dword [esp], 0x44c62b
mov dword [esp + 4], eax
call fcn.004013c0
mov ecx, dword [ebp - 0x124]
mov ecx, dword [ecx + 0x50]
test ecx, ecx
jle 0x40ca6e
mov ebx, 0x44c633
xor esi, esi
mov edi, dword [ebp - 0x124]
mov eax, dword [edi + esi*4 + 0x5c]
add esi, 1
sub eax, dword [edi]
mov dword [esp], ebx
add ebx, 4
mov dword [esp + 4], eax
call fcn.004013c0
mov eax, dword [edi + 0x50]
cmp eax, esi
jg 0x40ca0e
cmp esi, 2
jg 0x40ca6e
lea ebx, [esi*4 + 0x44c633]
jmp 0x40ca4e
mov ecx, dword [ebp - 0x124]
mov si, 2
mov eax, dword [ecx + 0x50]
mov edx, dword [ebp - 0x124]
mov eax, dword [edx + eax*4 + 0x58]
sub eax, dword [edx]
mov dword [esp], ebx
add ebx, 4
mov dword [esp + 4], eax
call fcn.004013c0
cmp esi, 1
je 0x40ca41
mov ebx, dword [ebp - 0x124]
mov eax, dword [ebx + 0x10]
mov dword [esp], 0x44c63f
sar eax, 8
mov dword [esp + 4], eax
call fcn.004013f0
mov eax, dword [ebx + 0x10]
mov dword [esp], 0x44c265
mov byte [0x44c642], al
call fcn.00401410
mov dword [esp], 0x44c643
mov dword [esp + 4], eax
call fcn.004013c0
mov esi, dword [ebp - 0x128]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x38]
mov dword [esp], 0x44c653
mov dword [esp + 4], eax
call fcn.004013c0
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x18]
lea eax, [eax + eax*8 - 9]
shl eax, 4
mov eax, dword [edx + eax + 0x40]
mov dword [esp], 0x44c657
mov dword [esp + 4], eax
call fcn.004013c0
mov edi, dword [ebp - 0x144]
mov ebx, dword [esi + 4]
add edi, 1
cmp ebx, edi
mov dword [ebp - 0xe4], edi
jle 0x40cb43
mov eax, dword [esi + 0x18]
mov ecx, edi
mov edx, dword [ebp - 0xf4]
mov edx, dword [eax + edx + 0xb0]
test edx, edx
jne 0x40cb48
mov ecx, dword [ebp - 0xf4]
lea edx, [eax + ecx + 0x140]
mov ecx, dword [ebp - 0xe4]
jmp 0x40cb3c
mov eax, dword [edx]
add edx, 0x90
test eax, eax
jne 0x40cb48
add ecx, 1
cmp ebx, ecx
jg 0x40cb30
mov ecx, 0xffffffff
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0xbfffffff
mov dword [esp], 0
call fcn.0040b6c0
mov dword [esp], 0x44c711
mov dword [esp + 4], eax
call fcn.004013c0
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0x3fffffff
mov dword [esp], 0
call fcn.0040b6c0
mov dword [esp], 0x44c761
mov dword [esp + 4], eax
call fcn.004013c0
mov ebx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0x3fffffff
sub ebx, 2
mov ecx, ebx
mov dword [esp], 0
call fcn.0040b6c0
mov dword [esp], 0x44c765
mov dword [esp + 4], eax
call fcn.004013c0
cmp ebx, 0xffffffff
je 0x40cc24
mov esi, dword [ebp - 0x128]
mov edi, dword [ebp - 0xf4]
mov eax, dword [esi + 0x18]
lea edx, [eax + edi - 0x100]
mov edi, dword [eax + edi - 0x70]
test edi, edi
je 0x40cc1c
jmp 0x40cc24
mov eax, dword [edx]
sub edx, 0x90
test eax, eax
jne 0x40cc24
sub ebx, 1
cmp ebx, 0xffffffff
jne 0x40cc10
mov edx, dword [ebp - 0x144]
mov ecx, ebx
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0xbfffffff
mov dword [esp], 0
call fcn.0040b6c0
mov dword [esp], 0x44c7b5
mov dword [esp + 4], eax
call fcn.004013c0
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
test esi, esi
jle 0x40cde2
mov dword [ebp - 0x100], 0x44c7b9
mov dword [ebp - 0xec], 0
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00401350
test eax, eax
js 0x40d4f1
mov edx, dword [ebp - 0x124]
imul eax, eax, 0x4c
mov ebx, dword [ebp - 0x124]
mov esi, dword [ebp - 0x124]
mov edi, dword [ebp - 0x124]
mov edx, dword [edx + 0x3c]
mov ebx, dword [ebx + 0x40]
mov esi, dword [esi + 0x44]
mov edi, dword [edi + 0x38]
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x17c], esi
mov dword [ebp - 0x170], edi
add edx, eax
mov eax, dword [edx + 0x20]
mov ebx, eax
sub ebx, 1
js 0x40d4f1
xor ecx, ecx
mov esi, dword [edx + 0x1c]
cmp ebx, ecx
jle 0x40cd5b
lea eax, [ecx + ebx + 1]
mov edi, dword [ebp - 0x174]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
lea eax, [edx + edx*2]
shl eax, 3
cmp edi, dword [eax + esi + 4]
jl 0x40cd54
jg 0x40cd1e
mov edi, dword [ebp - 0x170]
cmp edi, dword [eax + esi]
jb 0x40cd54
lea eax, [ebx + 1]
mov dword [ebp - 0x19c], eax
cmp ebx, edx
mov ecx, edx
jle 0x40cd5b
mov eax, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x174]
add eax, edx
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
lea eax, [edx + edx*2]
shl eax, 3
cmp edi, dword [eax + esi + 4]
jge 0x40d343
lea ebx, [edx - 1]
cmp ebx, ecx
jg 0x40ccf2
lea eax, [ecx + ecx*2]
mov edx, dword [ebp - 0x17c]
lea eax, [esi + eax*8]
cmp edx, dword [eax + 4]
jl 0x40d4f1
jg 0x40cd80
mov ecx, dword [ebp - 0x178]
cmp ecx, dword [eax]
jb 0x40d4f1
mov eax, dword [eax + 0x10]
test eax, eax
js 0x40d4f1
mov esi, dword [ebp - 0x124]
mov ebx, eax
sub ebx, dword [esi]
lea eax, [ebx + 0x1fff]
cmp eax, 0x3ffe
ja 0x40d505
test ebx, ebx
jns 0x40cdaf
neg ebx
or bh, 0x80
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x100]
mov dword [esp], ebx
add ebx, 2
call fcn.004013f0
mov esi, dword [ebp + 0xc]
add dword [ebp - 0xec], 1
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0x100], ebx
cmp dword [esi], edi
jg 0x40cc77
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 4]
test ebx, ebx
jle 0x40d03d
mov dword [ebp - 0x104], 0x44c7c9
mov dword [ebp - 0xe8], 0
mov edx, dword [ebp - 0xe8]
or edx, 0x20
imul eax, edx, 0x4c
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x158], edx
xor edx, edx
mov ecx, dword [eax + 0x20]
test ecx, ecx
mov dword [ebp - 0x154], ecx
je 0x40d00b
mov ebx, dword [ebp - 0x124]
xor edx, edx
mov esi, dword [ebp - 0x124]
mov ebx, dword [ebx + 0x38]
mov esi, dword [esi + 0x3c]
mov dword [ebp - 0x168], ebx
mov ebx, dword [ebp - 0x154]
mov dword [ebp - 0x16c], esi
xor esi, esi
sub ebx, 1
js 0x40d5ab
cmp ebx, esi
mov dword [ebp - 0x184], eax
jle 0x40cedc
mov edi, dword [ebp - 0x184]
lea eax, [esi + ebx + 1]
mov edx, eax
shr edx, 0x1f
add edx, eax
mov ecx, dword [edi + 0x1c]
sar edx, 1
lea eax, [edx + edx*2]
mov edi, dword [ebp - 0x16c]
shl eax, 3
cmp dword [eax + ecx + 4], edi
jg 0x40ced5
jl 0x40ce9f
mov edi, dword [ebp - 0x168]
cmp dword [eax + ecx], edi
ja 0x40ced5
lea eax, [ebx + 1]
mov dword [ebp - 0x19c], eax
cmp edx, ebx
mov esi, edx
jge 0x40cedc
mov eax, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x16c]
add eax, edx
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
lea eax, [edx + edx*2]
shl eax, 3
cmp edi, dword [eax + ecx + 4]
jge 0x40d495
lea ebx, [edx - 1]
cmp ebx, esi
jg 0x40ce6a
test esi, esi
js 0x40d58b
imul eax, dword [ebp - 0x158], 0x4c
mov edx, dword [ebp - 0x128]
mov edi, dword [ebp - 0x124]
mov ebx, dword [edx + eax + 0x1c]
lea eax, [esi + esi*2]
lea edx, [ebx + eax*8]
mov eax, dword [edx + 4]
cmp eax, dword [edi + 0x44]
mov ecx, dword [edx]
jg 0x40d56b
jl 0x40cf1a
cmp ecx, dword [edi + 0x40]
jae 0x40d56b
mov eax, dword [ebp - 0x16c]
cmp eax, dword [edx + 0xc]
jg 0x40d58b
jl 0x40cf3a
mov ecx, dword [ebp - 0x168]
cmp ecx, dword [edx + 8]
ja 0x40d58b
mov ebx, dword [ebp - 0x128]
mov edx, dword [edx + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x150], edx
mov ecx, eax
sub ecx, 1
js 0x40d4fb
mov esi, dword [ebx + 0x18]
xor ebx, ebx
cmp edx, dword [esi]
jl 0x40d4fb
cmp ecx, ebx
jle 0x40cfbe
lea edx, [ecx + ebx + 1]
mov edi, dword [ebp - 0x150]
mov eax, edx
shr eax, 0x1f
lea edx, [eax + edx]
sar edx, 1
lea eax, [edx + edx*8]
shl eax, 4
cmp edi, dword [esi + eax]
jl 0x40cfb7
lea eax, [ecx + 1]
mov dword [ebp - 0x19c], eax
cmp edx, ecx
mov ebx, edx
jge 0x40cfbe
add edx, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x150]
mov eax, edx
shr eax, 0x1f
lea edx, [eax + edx]
sar edx, 1
lea eax, [edx + edx*8]
shl eax, 4
cmp edi, dword [esi + eax]
jge 0x40cf90
lea ecx, [edx - 1]
cmp ecx, ebx
jg 0x40cf68
mov edx, dword [ebp - 0x144]
mov ecx, ebx
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0x7fffffff
mov dword [esp], 0
call fcn.0040b6c0
mov edx, 0x7fffffff
and eax, 0x7fffffff
je 0x40d00b
cmp eax, 0x7fffffff
je 0x40d7a7
cmp ebx, dword [ebp - 0x144]
jge 0x40d7a7
mov edx, eax
or edx, 0x80000000
mov eax, dword [ebp - 0x104]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004013c0
mov edx, dword [ebp + 0xc]
add dword [ebp - 0xe8], 1
mov ecx, dword [ebp - 0xe8]
add dword [ebp - 0x104], 4
cmp dword [edx + 4], ecx
jg 0x40ce04
mov ebx, dword [ebp - 0x124]
xor edi, edi
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
mov dword [esp], 0x44c62f
mov dword [esp + 4], eax
call fcn.004013c0
mov esi, dword [ebp - 0x144]
mov dword [ebp - 0x108], 0x44c75d
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x134], esi
jmp 0x40d130
mov eax, dword [ebp - 0x138]
add eax, 1
cmp dword [ebp - 0x110], eax
jg 0x40d4cb
mov ecx, dword [ebp - 0x110]
mov eax, esi
mov edx, dword [ebp - 0x144]
mov dword [esp + 4], 0x3fffffff
mov dword [esp], 0
call fcn.0040b6c0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x108]
mov dword [esp], eax
call fcn.004013c0
mov eax, dword [ebp - 0x134]
sub eax, 1
cmp ebx, eax
setl al
movzx eax, al
mov edx, dword [ebp - 0x144]
mov ecx, ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0x3fffffff
call fcn.0040b6c0
mov dword [esp + 4], eax
lea eax, [edi*4 + 0x44c769]
add edi, 1
mov dword [esp], eax
call fcn.004013c0
mov edx, dword [ebp - 0x110]
sub dword [ebp - 0x108], 4
cmp edi, 0x13
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x138], edx
je 0x40d66c
mov edx, dword [ebp - 0x124]
mov esi, dword [edi*8 + 0x41b840]
mov ebx, dword [edi*8 + 0x41b844]
mov eax, dword [edx + 0x18]
imul ecx, ebx, 0xafc8
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0xc], eax
mov eax, 0xafc8
mul esi
add edx, ecx
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x190], eax
mov edx, dword [ecx + 0x38]
add dword [ebp - 0x190], edx
mov ecx, dword [ecx + 0x3c]
adc dword [ebp - 0x18c], ecx
mov edx, dword [ebp - 0x18c]
imul ebx, ebx, 0xffff5038
mov eax, dword [ebp - 0x190]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x128]
sub ebx, esi
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.004015a0
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x110], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0xc], eax
mov eax, 0xffff5038
mul esi
add edx, ebx
mov dword [ebp - 0x194], edx
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0x198], eax
mov ecx, dword [ecx + 0x3c]
add dword [ebp - 0x198], edx
adc dword [ebp - 0x194], ecx
mov esi, dword [ebp - 0x194]
mov ebx, dword [ebp - 0x198]
mov dword [esp + 8], esi
mov esi, dword [ebp - 0x128]
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.004015a0
cmp edi, 0xe
mov ebx, eax
jg 0x40d080
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0x3fffffff
mov dword [esp], 0
call fcn.0040b6c0
mov edx, dword [ebp - 0x108]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004013c0
xor eax, eax
jmp 0x40d0da
mov dword [ebp - 0x10c], eax
imul eax, dword [ebp - 0x10c], 0x2c
lea ecx, [edi + eax]
mov esi, dword [ecx + 0xc]
test esi, esi
je 0x40d370
mov edx, dword [ebp - 0x118]
mov byte [edx + 3], 0x40
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x164]
mov dword [esp + 0x18], ebx
mov eax, dword [edi + 4]
mov dword [esp + 0x10], esi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x44be20
mov dword [esp], 0x44be20
mov dword [esp + 0xc], eax
call fcn.00407440
cmp eax, 0x44be28
mov dword [0x44be10], eax
je 0x40d4b0
mov ebx, dword [0x41f02c]
test ebx, ebx
jne 0x40d6f4
movzx eax, byte [ebp - 0xf0]
mov dword [esp + 0x20], 0xd
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
add eax, 1
movzx eax, al
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x118]
mov dword [esp + 0x10], 0xf
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
add eax, 0xa
mov dword [esp + 4], 0x71
mov dword [esp], eax
call fcn.00401380
add dword [ebp - 0x118], 0x12
jmp 0x40c994
jg 0x40cd27
mov edi, dword [ebp - 0x170]
cmp edi, dword [eax + esi]
jb 0x40cd54
jmp 0x40cd27
mov dword [ebp - 0x10c], edx
jmp 0x40d266
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 0x30]
mov ebx, dword [ebp - 0x118]
sar edx, 4
shl eax, 6
or edx, eax
mov byte [ebx], dl
mov edx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x10]
sar edx, 8
shl eax, 4
or edx, eax
mov byte [ebx + 1], dl
mov eax, dword [ecx + 0x18]
mov byte [ebx + 2], al
mov eax, dword [ecx + 0x14]
sar eax, 4
mov byte [ebx + 3], al
mov edx, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x14]
sar edx, 8
shl eax, 4
or edx, eax
mov byte [ebx + 4], dl
mov eax, dword [ecx + 0x1c]
mov byte [ebx + 5], al
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
jne 0x40d3d0
mov esi, dword [ebp - 0x164]
mov ecx, dword [esi + 4]
imul ebx, dword [ebp - 0x10c], 0x2c
mov eax, dword [ebp - 0x164]
lea ebx, [edi + ebx]
mov edx, dword [ebx + 0x20]
call fcn.0040c3f0
mov edx, dword [ebp - 0x118]
mov ecx, 1
mov byte [edx + 6], al
mov edx, dword [ebp - 0x164]
mov esi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf0]
add esi, 1
add eax, 2
cmp dword [edx + 4], esi
mov edx, dword [ebx + 0x24]
cmovne ecx, eax
mov eax, dword [ebp - 0x164]
call fcn.0040c3f0
mov ecx, dword [ebp - 0x118]
mov byte [ecx + 7], al
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
jne 0x40d43e
mov ebx, dword [ebp - 0x164]
mov ecx, dword [ebx + 4]
imul ebx, dword [ebp - 0x10c], 0x2c
mov eax, dword [ebp - 0x164]
lea ebx, [edi + ebx]
mov edx, dword [ebx + 0x28]
call fcn.0040c3f0
mov edx, dword [ebp - 0x118]
mov ecx, 1
mov byte [edx + 8], al
mov edx, dword [ebp - 0x164]
mov eax, dword [ebp - 0xf0]
add eax, 2
cmp dword [edx + 4], esi
mov edx, dword [ebx + 0x2c]
cmovne ecx, eax
mov eax, dword [ebp - 0x164]
call fcn.0040c3f0
mov ecx, dword [ebp - 0x118]
mov byte [ecx + 9], al
jmp 0x40d285
jg 0x40cea8
mov edi, dword [ebp - 0x168]
cmp edi, dword [eax + ecx]
jb 0x40ced5
jmp 0x40cea8
mov eax, dword [0x44be20]
mov edx, dword [ebp - 0x118]
mov dword [edx + 0xa], eax
mov eax, dword [0x44be24]
mov dword [edx + 0xe], eax
jmp 0x40d337
mov dword [esp + 4], 0x3fffffff
mov ecx, dword [ebp - 0x110]
mov dword [esp], 1
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x128]
jmp 0x40d0b2
mov ebx, 0x3fff
jmp 0x40cdaf
mov ebx, 0xffffffff
jmp 0x40cfbe
call sub.cygwin1.dll___getreent
mov edi, dword [ebp - 0x144]
mov dword [esp + 8], ebx
xor ebx, ebx
mov dword [esp + 4], str._nWARN:_audio_sector_out_of_range:__d__vobu__d__pts
mov dword [esp + 0xc], edi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov ecx, dword [ebp - 0x124]
mov eax, dword [ecx + 0x38]
mov edx, dword [ecx + 0x3c]
call fcn.0040b830
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x41b0a5
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
jmp 0x40cdaf
mov eax, dword [ebp - 0x16c]
cmp eax, dword [edx + 0xc]
jg 0x40d58b
jl 0x40d660
mov ecx, dword [ebp - 0x168]
cmp ecx, dword [edx + 8]
jbe 0x40d660
lea eax, [esi + 1]
cmp dword [ebp - 0x154], eax
jne 0x40d5a1
mov ebx, dword [ebp - 0x144]
jmp 0x40cfbe
lea eax, [eax + eax*2]
lea edx, [eax*8]
imul eax, dword [ebp - 0x158], 0x4c
mov ebx, dword [ebp - 0x128]
mov esi, dword [ebp - 0x124]
add edx, dword [ebx + eax + 0x1c]
mov eax, dword [edx + 4]
cmp eax, dword [esi + 0x44]
mov ecx, dword [edx]
jg 0x40d596
jl 0x40d5d3
cmp ecx, dword [esi + 0x40]
jae 0x40d596
mov edi, dword [ebp - 0x128]
mov edx, dword [edx + 0x10]
mov eax, dword [edi + 4]
mov dword [ebp - 0x14c], edx
mov ecx, eax
sub ecx, 1
js 0x40d4fb
mov esi, dword [edi + 0x18]
xor ebx, ebx
cmp edx, dword [esi]
jl 0x40d4fb
cmp ecx, ebx
jle 0x40cfbe
lea edx, [ecx + ebx + 1]
mov edi, dword [ebp - 0x14c]
mov eax, edx
shr eax, 0x1f
lea edx, [eax + edx]
sar edx, 1
lea eax, [edx + edx*8]
shl eax, 4
cmp edi, dword [esi + eax]
jl 0x40d65b
lea eax, [ecx + 1]
mov dword [ebp - 0x19c], eax
lea esi, [esi]
cmp ecx, edx
mov ebx, edx
jle 0x40cfbe
add edx, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x14c]
mov eax, edx
shr eax, 0x1f
lea edx, [eax + edx]
sar edx, 1
lea eax, [edx + edx*8]
shl eax, 4
cmp edi, dword [esi + eax]
jge 0x40d630
lea ecx, [edx - 1]
jmp 0x40d5fd
lea eax, [esi + esi*2 + 3]
lea edx, [ebx + eax*8]
jmp 0x40d5d3
cmp dword [ebp - 0x148], 0xffffffff
je 0x40d6bc
mov ecx, dword [ebp - 0x124]
mov dword [esp + 0xc], 0
mov esi, dword [ebp - 0x148]
mov eax, dword [ecx + 8]
mov dword [esp], esi
shl eax, 0xb
mov ebx, eax
sar ebx, 0x1f
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sub.cygwin1.dll__lseek64
mov dword [esp + 8], 0x800
mov dword [esp + 4], 0x44c220
mov dword [esp], esi
call sub.cygwin1.dll_write
add dword [ebp - 0x12c], 1
test byte [ebp - 0x12c], 0xf
je 0x40d728
mov ebx, dword [ebp - 0xe4]
add dword [ebp - 0xf8], 0x64
add dword [ebp - 0xf4], 0x90
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x144], ebx
jmp 0x40c4fc
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x52
mov dword [esp + 4], 1
mov dword [esp], str.ERR:__Button_command_is_too_complex_to_fit_in_one_instruction__and_allgprmtrue._n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov edi, dword [ebp - 0x124]
mov eax, dword [edi]
test eax, eax
lea ebx, [eax + 0x1ff]
cmovns ebx, eax
call sub.cygwin1.dll___getreent
mov edx, dword [ebp - 0xf8]
sar ebx, 9
mov ecx, dword [ebp - 0x130]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.STAT:_fixing_VOBU_at__dMB___d__d___d____r
mov dword [esp + 0x10], ecx
mov esi, eax
mov eax, edx
sar edx, 0x1f
idiv dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
add edx, 1
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x40d6cc
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0xdb]
mov dword [esp], ecx
mov dword [esp + 4], edx
call sub.cygwin1.dll_strcpy
jmp 0x40c58e
mov edx, eax
jmp 0x40d00b
mov dword [esp + 0xc], str.ng_0
mov dword [esp + 8], str.FixVobus
mov dword [esp + 4], 0x72b
mov dword [esp], str.dvdvob.c
call sub.cygwin1.dll___assert_func
cmp dword [ebp - 0x148], 0xffffffff
je 0x40d7e9
mov esi, dword [ebp - 0x148]
mov dword [esp], esi
call sub.cygwin1.dll_close
mov ecx, dword [ebp - 0x130]
test ecx, ecx
jle 0x40d815
call sub.cygwin1.dll___getreent
mov edi, dword [ebp - 0x130]
mov dword [esp + 4], str.STAT:_fixed__d_VOBUS
mov dword [esp + 8], edi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.cygwin1.dll_fputc
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp + 0xc]
add dword [ebp - 0x140], 1
mov eax, dword [ebp - 0x140]
cmp dword [ecx + 8], eax
jle 0x40d7d2
mov ecx, dword [ecx + 0x14]
jmp 0x40c4bb
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_strerror
mov ebx, eax
call sub.cygwin1.dll___getreent
lea edx, [ebp - 0xdb]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], str._nERR:__Error_opening__s:__s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov dword [esp + 0xc], str.ng_3
mov dword [esp + 8], str.FixVobus
mov dword [esp + 4], 0x726
mov dword [esp], str.dvdvob.c
call sub.cygwin1.dll___assert_func
lea esi, [esi]