56c04c:	89 55 f0             	mov    %edx,-0x10(%ebp)
56c04f:	8b 75 08             	mov    0x8(%ebp),%esi
56c052:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
56c059:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
56c05d:	89 56 10             	mov    %edx,0x10(%esi)
56c060:	72 04                	jb     0x56c066
56c062:	8b 06                	mov    (%esi),%eax
56c064:	eb 02                	jmp    0x56c068
56c066:	8b c6                	mov    %esi,%eax
56c068:	33 c9                	xor    %ecx,%ecx
56c06a:	66 89 08             	mov    %cx,(%eax)
56c06d:	8b 7d 0c             	mov    0xc(%ebp),%edi
56c070:	33 db                	xor    %ebx,%ebx
56c072:	43                   	inc    %ebx
56c073:	89 55 fc             	mov    %edx,-0x4(%ebp)
56c076:	89 5d f0             	mov    %ebx,-0x10(%ebp)
56c079:	39 4f 10             	cmp    %ecx,0x10(%edi)
56c07c:	74 6b                	je     0x56c0e9
56c07e:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
56c082:	72 04                	jb     0x56c088
56c084:	8b 07                	mov    (%edi),%eax
56c086:	eb 02                	jmp    0x56c08a
56c088:	8b c7                	mov    %edi,%eax
56c08a:	52                   	push   %edx
56c08b:	52                   	push   %edx
56c08c:	ff 77 10             	push   0x10(%edi)
56c08f:	50                   	push   %eax
56c090:	52                   	push   %edx
56c091:	68 e9 fd 00 00       	push   $0xfde9
56c096:	ff 15 fc 20 68 00    	call   *0x6820fc
56c09c:	85 c0                	test   %eax,%eax
56c09e:	74 49                	je     0x56c0e9
56c0a0:	50                   	push   %eax
56c0a1:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
56c0a4:	e8 52 ff ff ff       	call   0x56bffb
56c0a9:	8b 47 10             	mov    0x10(%edi),%eax
56c0ac:	89 5d fc             	mov    %ebx,-0x4(%ebp)
56c0af:	8b 5d e8             	mov    -0x18(%ebp),%ebx
56c0b2:	2b 5d e4             	sub    -0x1c(%ebp),%ebx
56c0b5:	d1 fb                	sar    $1,%ebx
56c0b7:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
56c0bb:	72 02                	jb     0x56c0bf
56c0bd:	8b 3f                	mov    (%edi),%edi
56c0bf:	53                   	push   %ebx
56c0c0:	ff 75 e4             	push   -0x1c(%ebp)
56c0c3:	50                   	push   %eax
56c0c4:	57                   	push   %edi
56c0c5:	6a 00                	push   $0x0
56c0c7:	68 e9 fd 00 00       	push   $0xfde9
56c0cc:	ff 15 fc 20 68 00    	call   *0x6820fc
56c0d2:	85 c0                	test   %eax,%eax
56c0d4:	74 0b                	je     0x56c0e1
56c0d6:	53                   	push   %ebx
56c0d7:	ff 75 e4             	push   -0x1c(%ebp)
56c0da:	8b ce                	mov    %esi,%ecx
56c0dc:	e8 0f c7 ec ff       	call   0x4387f0
56c0e1:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
56c0e4:	e8 6b 01 00 00       	call   0x56c254
56c0e9:	8b c6                	mov    %esi,%eax
56c0eb:	e8 a5 5e 07 00       	call   0x5e1f95
56c0f0:	c3                   	ret
56c0f1:	6a 10                	push   $0x10
56c0f3:	b8 81 c4 65 00       	mov    $0x65c481,%eax
56c0f8:	e8 be 5e 07 00       	call   0x5e1fbb
56c0fd:	33 c9                	xor    %ecx,%ecx
56c0ff:	89 4d f0             	mov    %ecx,-0x10(%ebp)
56c102:	8b 75 08             	mov    0x8(%ebp),%esi
56c105:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
56c10c:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
56c110:	89 4e 10             	mov    %ecx,0x10(%esi)
56c113:	72 04                	jb     0x56c119
56c115:	8b 06                	mov    (%esi),%eax
56c117:	eb 02                	jmp    0x56c11b
56c119:	8b c6                	mov    %esi,%eax
56c11b:	88 08                	mov    %cl,(%eax)
56c11d:	8b 7d 0c             	mov    0xc(%ebp),%edi
56c120:	33 db                	xor    %ebx,%ebx
56c122:	43                   	inc    %ebx
56c123:	89 4d fc             	mov    %ecx,-0x4(%ebp)
56c126:	89 5d f0             	mov    %ebx,-0x10(%ebp)
56c129:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
56c12d:	74 6a                	je     0x56c199
56c12f:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
56c133:	72 04                	jb     0x56c139
56c135:	8b 07                	mov    (%edi),%eax
56c137:	eb 02                	jmp    0x56c13b
56c139:	8b c7                	mov    %edi,%eax
56c13b:	51                   	push   %ecx
56c13c:	51                   	push   %ecx
56c13d:	51                   	push   %ecx
56c13e:	51                   	push   %ecx
56c13f:	ff 77 10             	push   0x10(%edi)
56c142:	50                   	push   %eax
56c143:	51                   	push   %ecx
56c144:	68 e9 fd 00 00       	push   $0xfde9
56c149:	ff 15 b4 21 68 00    	call   *0x6821b4
56c14f:	50                   	push   %eax
56c150:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
56c153:	e8 6c fe ff ff       	call   0x56bfc4
56c158:	8b 47 10             	mov    0x10(%edi),%eax
56c15b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
56c15e:	8b 5d e8             	mov    -0x18(%ebp),%ebx
56c161:	2b 5d e4             	sub    -0x1c(%ebp),%ebx
56c164:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
56c168:	72 02                	jb     0x56c16c
56c16a:	8b 3f                	mov    (%edi),%edi
56c16c:	33 c9                	xor    %ecx,%ecx
56c16e:	51                   	push   %ecx
56c16f:	51                   	push   %ecx
56c170:	53                   	push   %ebx
56c171:	ff 75 e4             	push   -0x1c(%ebp)
56c174:	50                   	push   %eax
56c175:	57                   	push   %edi
56c176:	51                   	push   %ecx
56c177:	68 e9 fd 00 00       	push   $0xfde9
56c17c:	ff 15 b4 21 68 00    	call   *0x6821b4
56c182:	85 c0                	test   %eax,%eax
56c184:	74 0b                	je     0x56c191
56c186:	53                   	push   %ebx
56c187:	ff 75 e4             	push   -0x1c(%ebp)
56c18a:	8b ce                	mov    %esi,%ecx
56c18c:	e8 ff c9 ec ff       	call   0x438b90
56c191:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
56c194:	e8 95 00 00 00       	call   0x56c22e
56c199:	8b c6                	mov    %esi,%eax
56c19b:	e8 f5 5d 07 00       	call   0x5e1f95
56c1a0:	c3                   	ret
56c1a1:	55                   	push   %ebp
56c1a2:	8b ec                	mov    %esp,%ebp
56c1a4:	56                   	push   %esi
56c1a5:	8b f1                	mov    %ecx,%esi
56c1a7:	33 c0                	xor    %eax,%eax
56c1a9:	89 06                	mov    %eax,(%esi)
56c1ab:	89 46 04             	mov    %eax,0x4(%esi)
56c1ae:	89 46 08             	mov    %eax,0x8(%esi)
56c1b1:	39 45 08             	cmp    %eax,0x8(%ebp)
56c1b4:	75 04                	jne    0x56c1ba
56c1b6:	32 c0                	xor    %al,%al
56c1b8:	eb 1e                	jmp    0x56c1d8
56c1ba:	6a 01                	push   $0x1
56c1bc:	6a 01                	push   $0x1
56c1be:	ff 75 08             	push   0x8(%ebp)
56c1c1:	e8 da b5 ec ff       	call   0x4377a0
56c1c6:	89 06                	mov    %eax,(%esi)
56c1c8:	83 c4 0c             	add    $0xc,%esp
56c1cb:	89 46 04             	mov    %eax,0x4(%esi)
56c1ce:	b0 01                	mov    $0x1,%al
56c1d0:	8b 0e                	mov    (%esi),%ecx
56c1d2:	03 4d 08             	add    0x8(%ebp),%ecx
56c1d5:	89 4e 08             	mov    %ecx,0x8(%esi)
56c1d8:	5e                   	pop    %esi
56c1d9:	5d                   	pop    %ebp
56c1da:	c2 04 00             	ret    $0x4
56c1dd:	55                   	push   %ebp
56c1de:	8b ec                	mov    %esp,%ebp
56c1e0:	56                   	push   %esi
56c1e1:	8b f1                	mov    %ecx,%esi
56c1e3:	33 c0                	xor    %eax,%eax
56c1e5:	57                   	push   %edi
56c1e6:	8b 7d 08             	mov    0x8(%ebp),%edi
56c1e9:	89 06                	mov    %eax,(%esi)
56c1eb:	89 46 04             	mov    %eax,0x4(%esi)
56c1ee:	89 46 08             	mov    %eax,0x8(%esi)
56c1f1:	85 ff                	test   %edi,%edi
56c1f3:	75 04                	jne    0x56c1f9
56c1f5:	32 c0                	xor    %al,%al
56c1f7:	eb 24                	jmp    0x56c21d
56c1f9:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
56c1ff:	77 22                	ja     0x56c223
56c201:	6a 01                	push   $0x1
56c203:	6a 02                	push   $0x2
56c205:	57                   	push   %edi
56c206:	e8 95 b5 ec ff       	call   0x4377a0
56c20b:	89 06                	mov    %eax,(%esi)
56c20d:	83 c4 0c             	add    $0xc,%esp
56c210:	89 46 04             	mov    %eax,0x4(%esi)
56c213:	b0 01                	mov    $0x1,%al
56c215:	8b 0e                	mov    (%esi),%ecx
56c217:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
56c21a:	89 4e 08             	mov    %ecx,0x8(%esi)
56c21d:	5f                   	pop    %edi
56c21e:	5e                   	pop    %esi
56c21f:	5d                   	pop    %ebp
56c220:	c2 04 00             	ret    $0x4
56c223:	68 50 59 6e 00       	push   $0x6e5950
56c228:	e8 5d 21 06 00       	call   0x5ce38a
56c22d:	cc                   	int3
56c22e:	56                   	push   %esi
56c22f:	8b f1                	mov    %ecx,%esi
56c231:	83 3e 00             	cmpl   $0x0,(%esi)
56c234:	74 1c                	je     0x56c252
56c236:	8b 46 08             	mov    0x8(%esi),%eax
56c239:	2b 06                	sub    (%esi),%eax
56c23b:	6a 01                	push   $0x1
56c23d:	50                   	push   %eax
56c23e:	ff 36                	push   (%esi)
56c240:	e8 bb b5 ec ff       	call   0x437800
56c245:	83 c4 0c             	add    $0xc,%esp
56c248:	33 c0                	xor    %eax,%eax
56c24a:	89 06                	mov    %eax,(%esi)
56c24c:	89 46 04             	mov    %eax,0x4(%esi)
56c24f:	89 46 08             	mov    %eax,0x8(%esi)
56c252:	5e                   	pop    %esi
56c253:	c3                   	ret
56c254:	56                   	push   %esi
56c255:	8b f1                	mov    %ecx,%esi
56c257:	83 3e 00             	cmpl   $0x0,(%esi)
56c25a:	74 1e                	je     0x56c27a
56c25c:	8b 46 08             	mov    0x8(%esi),%eax
56c25f:	2b 06                	sub    (%esi),%eax
56c261:	6a 02                	push   $0x2
56c263:	d1 f8                	sar    $1,%eax
56c265:	50                   	push   %eax
56c266:	ff 36                	push   (%esi)
56c268:	e8 93 b5 ec ff       	call   0x437800
56c26d:	83 c4 0c             	add    $0xc,%esp
56c270:	33 c0                	xor    %eax,%eax
56c272:	89 06                	mov    %eax,(%esi)
56c274:	89 46 04             	mov    %eax,0x4(%esi)
56c277:	89 46 08             	mov    %eax,0x8(%esi)
56c27a:	5e                   	pop    %esi
56c27b:	c3                   	ret
56c27c:	cc                   	int3
56c27d:	cc                   	int3
56c27e:	cc                   	int3
56c27f:	cc                   	int3
56c280:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56c284:	8b 44 24 08          	mov    0x8(%esp),%eax
56c288:	f7 d0                	not    %eax
56c28a:	21 41 1c             	and    %eax,0x1c(%ecx)
56c28d:	c3                   	ret
56c28e:	cc                   	int3
56c28f:	cc                   	int3
56c290:	53                   	push   %ebx
56c291:	8b 5c 24 08          	mov    0x8(%esp),%ebx
56c295:	57                   	push   %edi
56c296:	85 db                	test   %ebx,%ebx
56c298:	0f 84 22 01 00 00    	je     0x56c3c0
56c29e:	8b 7c 24 10          	mov    0x10(%esp),%edi
56c2a2:	85 ff                	test   %edi,%edi
56c2a4:	0f 84 16 01 00 00    	je     0x56c3c0
56c2aa:	8b 47 04             	mov    0x4(%edi),%eax
56c2ad:	56                   	push   %esi
56c2ae:	85 c0                	test   %eax,%eax
56c2b0:	74 3b                	je     0x56c2ed
56c2b2:	50                   	push   %eax
56c2b3:	e8 68 4d f2 ff       	call   0x491020
56c2b8:	8b f0                	mov    %eax,%esi
56c2ba:	83 c4 04             	add    $0x4,%esp
56c2bd:	8b 43 04             	mov    0x4(%ebx),%eax
56c2c0:	85 c0                	test   %eax,%eax
56c2c2:	74 09                	je     0x56c2cd
56c2c4:	50                   	push   %eax
56c2c5:	e8 96 f5 00 00       	call   0x57b860
56c2ca:	83 c4 04             	add    $0x4,%esp
56c2cd:	56                   	push   %esi
56c2ce:	e8 dd f7 00 00       	call   0x57bab0
56c2d3:	83 c4 04             	add    $0x4,%esp
56c2d6:	89 43 04             	mov    %eax,0x4(%ebx)
56c2d9:	85 c0                	test   %eax,%eax
56c2db:	74 78                	je     0x56c355
56c2dd:	ff 77 04             	push   0x4(%edi)
56c2e0:	50                   	push   %eax
56c2e1:	e8 0a f3 00 00       	call   0x57b5f0
56c2e6:	83 c4 08             	add    $0x8,%esp
56c2e9:	85 c0                	test   %eax,%eax
56c2eb:	74 68                	je     0x56c355
56c2ed:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
56c2f1:	74 38                	je     0x56c32b
56c2f3:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
56c2f7:	74 32                	je     0x56c32b
56c2f9:	8b 43 08             	mov    0x8(%ebx),%eax
56c2fc:	85 c0                	test   %eax,%eax
56c2fe:	74 09                	je     0x56c309
56c300:	50                   	push   %eax
56c301:	e8 da fc 00 00       	call   0x57bfe0
56c306:	83 c4 04             	add    $0x4,%esp
56c309:	ff 77 04             	push   0x4(%edi)
56c30c:	e8 df ff 00 00       	call   0x57c2f0
56c311:	83 c4 04             	add    $0x4,%esp
56c314:	89 43 08             	mov    %eax,0x8(%ebx)
56c317:	85 c0                	test   %eax,%eax
56c319:	74 3a                	je     0x56c355
56c31b:	ff 77 08             	push   0x8(%edi)
56c31e:	50                   	push   %eax
56c31f:	e8 8c fb 00 00       	call   0x57beb0
56c324:	83 c4 08             	add    $0x8,%esp
56c327:	85 c0                	test   %eax,%eax
56c329:	74 2a                	je     0x56c355
56c32b:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
56c32f:	74 2a                	je     0x56c35b
56c331:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
56c335:	75 0c                	jne    0x56c343
56c337:	e8 d4 6f f4 ff       	call   0x4b3310
56c33c:	89 43 0c             	mov    %eax,0xc(%ebx)
56c33f:	85 c0                	test   %eax,%eax
56c341:	74 12                	je     0x56c355
56c343:	ff 77 0c             	push   0xc(%edi)
56c346:	ff 73 0c             	push   0xc(%ebx)
56c349:	e8 82 6d f4 ff       	call   0x4b30d0
56c34e:	83 c4 08             	add    $0x8,%esp
56c351:	85 c0                	test   %eax,%eax
56c353:	75 06                	jne    0x56c35b
56c355:	5e                   	pop    %esi
56c356:	5f                   	pop    %edi
56c357:	33 c0                	xor    %eax,%eax
56c359:	5b                   	pop    %ebx
56c35a:	c3                   	ret
56c35b:	55                   	push   %ebp
56c35c:	8d 6b 20             	lea    0x20(%ebx),%ebp
56c35f:	55                   	push   %ebp
56c360:	e8 3b ee 00 00       	call   0x57b1a0
56c365:	8b 77 20             	mov    0x20(%edi),%esi
56c368:	83 c4 04             	add    $0x4,%esp
56c36b:	85 f6                	test   %esi,%esi
56c36d:	74 2d                	je     0x56c39c
56c36f:	90                   	nop
56c370:	ff 76 04             	push   0x4(%esi)
56c373:	8b 46 08             	mov    0x8(%esi),%eax
56c376:	ff d0                	call   *%eax
56c378:	83 c4 04             	add    $0x4,%esp
56c37b:	85 c0                	test   %eax,%eax
56c37d:	74 3a                	je     0x56c3b9
56c37f:	ff 76 10             	push   0x10(%esi)
56c382:	ff 76 0c             	push   0xc(%esi)
56c385:	ff 76 08             	push   0x8(%esi)
56c388:	50                   	push   %eax
56c389:	55                   	push   %ebp
56c38a:	e8 f1 ee 00 00       	call   0x57b280
56c38f:	83 c4 14             	add    $0x14,%esp
56c392:	85 c0                	test   %eax,%eax
56c394:	74 23                	je     0x56c3b9
56c396:	8b 36                	mov    (%esi),%esi
56c398:	85 f6                	test   %esi,%esi
56c39a:	75 d4                	jne    0x56c370
56c39c:	8b 4f 10             	mov    0x10(%edi),%ecx
56c39f:	8b c3                	mov    %ebx,%eax
56c3a1:	89 4b 10             	mov    %ecx,0x10(%ebx)
56c3a4:	8b 4f 14             	mov    0x14(%edi),%ecx
56c3a7:	89 4b 14             	mov    %ecx,0x14(%ebx)
56c3aa:	8b 0f                	mov    (%edi),%ecx
56c3ac:	5d                   	pop    %ebp
56c3ad:	89 0b                	mov    %ecx,(%ebx)
56c3af:	8b 4f 1c             	mov    0x1c(%edi),%ecx
56c3b2:	5e                   	pop    %esi
56c3b3:	5f                   	pop    %edi
56c3b4:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
56c3b7:	5b                   	pop    %ebx
56c3b8:	c3                   	ret
56c3b9:	5d                   	pop    %ebp