40fedf:	85 c0                	test   %eax,%eax
40fee1:	75 d7                	jne    0x40feba
40fee3:	56                   	push   %esi
40fee4:	ff 15 00 22 41 00    	call   *0x412200
40feea:	33 c0                	xor    %eax,%eax
40feec:	5f                   	pop    %edi
40feed:	5e                   	pop    %esi
40feee:	c9                   	leave
40feef:	c3                   	ret
40fef0:	8b 85 e0 fe ff ff    	mov    -0x120(%ebp),%eax
40fef6:	eb f4                	jmp    0x40feec
40fef8:	55                   	push   %ebp
40fef9:	8b ec                	mov    %esp,%ebp
40fefb:	83 e4 f8             	and    $0xfffffff8,%esp
40fefe:	83 ec 44             	sub    $0x44,%esp
40ff01:	8b 55 24             	mov    0x24(%ebp),%edx
40ff04:	33 c0                	xor    %eax,%eax
40ff06:	53                   	push   %ebx
40ff07:	40                   	inc    %eax
40ff08:	c7 44 24 20 28 00 00 	movl   $0x28,0x20(%esp)
40ff0f:	00
40ff10:	56                   	push   %esi
40ff11:	8b 75 28             	mov    0x28(%ebp),%esi
40ff14:	8b d9                	mov    %ecx,%ebx
40ff16:	57                   	push   %edi
40ff17:	66 89 44 24 34       	mov    %ax,0x34(%esp)
40ff1c:	33 c9                	xor    %ecx,%ecx
40ff1e:	6a 18                	push   $0x18
40ff20:	58                   	pop    %eax
40ff21:	66 89 44 24 36       	mov    %ax,0x36(%esp)
40ff26:	8b c6                	mov    %esi,%eax
40ff28:	0f af c2             	imul   %edx,%eax
40ff2b:	6a 0e                	push   $0xe
40ff2d:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40ff31:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40ff35:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
40ff39:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40ff3d:	6b c0 03             	imul   $0x3,%eax,%eax
40ff40:	89 54 24 30          	mov    %edx,0x30(%esp)
40ff44:	89 74 24 34          	mov    %esi,0x34(%esp)
40ff48:	c7 44 24 26 36 00 00 	movl   $0x36,0x26(%esp)
40ff4f:	00
40ff50:	89 44 24 40          	mov    %eax,0x40(%esp)
40ff54:	8d 42 01             	lea    0x1(%edx),%eax
40ff57:	6b f8 03             	imul   $0x3,%eax,%edi
40ff5a:	b8 42 4d 00 00       	mov    $0x4d42,%eax
40ff5f:	66 89 44 24 1c       	mov    %ax,0x1c(%esp)
40ff64:	83 e7 fc             	and    $0xfffffffc,%edi
40ff67:	0f af fe             	imul   %esi,%edi
40ff6a:	8d 47 36             	lea    0x36(%edi),%eax
40ff6d:	89 44 24 1e          	mov    %eax,0x1e(%esp)
40ff71:	33 c0                	xor    %eax,%eax
40ff73:	89 44 24 22          	mov    %eax,0x22(%esp)
40ff77:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40ff7b:	50                   	push   %eax
40ff7c:	e8 40 2e ff ff       	call   0x402dc1
40ff81:	6a 28                	push   $0x28
40ff83:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40ff87:	50                   	push   %eax
40ff88:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40ff8c:	e8 30 2e ff ff       	call   0x402dc1
40ff91:	57                   	push   %edi
40ff92:	ff 75 08             	push   0x8(%ebp)
40ff95:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40ff99:	e8 23 2e ff ff       	call   0x402dc1
40ff9e:	8b 4b 04             	mov    0x4(%ebx),%ecx
40ffa1:	8d 44 24 10          	lea    0x10(%esp),%eax
40ffa5:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40ffa9:	8d 44 24 18          	lea    0x18(%esp),%eax
40ffad:	50                   	push   %eax
40ffae:	c7 44 24 1c e4 27 41 	movl   $0x4127e4,0x1c(%esp)
40ffb5:	00
40ffb6:	e8 98 4b ff ff       	call   0x404b53
40ffbb:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40ffbf:	e8 a2 2e ff ff       	call   0x402e66
40ffc4:	8d 4d 14             	lea    0x14(%ebp),%ecx
40ffc7:	e8 55 0d 00 00       	call   0x410d21
40ffcc:	5f                   	pop    %edi
40ffcd:	5e                   	pop    %esi
40ffce:	5b                   	pop    %ebx
40ffcf:	8b e5                	mov    %ebp,%esp
40ffd1:	5d                   	pop    %ebp
40ffd2:	c2 28 00             	ret    $0x28
40ffd5:	56                   	push   %esi
40ffd6:	8b f1                	mov    %ecx,%esi
40ffd8:	51                   	push   %ecx
40ffd9:	8b 4e 08             	mov    0x8(%esi),%ecx
40ffdc:	c7 06 c4 47 41 00    	movl   $0x4147c4,(%esi)
40ffe2:	e8 68 0a 00 00       	call   0x410a4f
40ffe7:	8b 4e 08             	mov    0x8(%esi),%ecx
40ffea:	85 c9                	test   %ecx,%ecx
40ffec:	74 05                	je     0x40fff3
40ffee:	e8 be 09 00 00       	call   0x4109b1
40fff3:	8d 4e 10             	lea    0x10(%esi),%ecx
40fff6:	5e                   	pop    %esi
40fff7:	e9 25 e2 ff ff       	jmp    0x40e221
40fffc:	55                   	push   %ebp
40fffd:	8b ec                	mov    %esp,%ebp
40ffff:	8b 45 08             	mov    0x8(%ebp),%eax
410002:	83 ec 38             	sub    $0x38,%esp
410005:	83 60 08 00          	andl   $0x0,0x8(%eax)
410009:	53                   	push   %ebx
41000a:	56                   	push   %esi
41000b:	57                   	push   %edi
41000c:	6a 05                	push   $0x5
41000e:	59                   	pop    %ecx
41000f:	89 48 0c             	mov    %ecx,0xc(%eax)
410012:	89 48 04             	mov    %ecx,0x4(%eax)
410015:	8b c8                	mov    %eax,%ecx
410017:	e8 b8 14 ff ff       	call   0x4014d4
41001c:	a1 6c 6d 41 00       	mov    0x416d6c,%eax
410021:	85 c0                	test   %eax,%eax
410023:	75 1d                	jne    0x410042
410025:	6a 38                	push   $0x38
410027:	59                   	pop    %ecx
410028:	e8 ae 5a ff ff       	call   0x405adb
41002d:	85 c0                	test   %eax,%eax
41002f:	74 0a                	je     0x41003b
410031:	51                   	push   %ecx
410032:	8b c8                	mov    %eax,%ecx
410034:	e8 59 0c 00 00       	call   0x410c92
410039:	eb 02                	jmp    0x41003d
41003b:	33 c0                	xor    %eax,%eax
41003d:	a3 6c 6d 41 00       	mov    %eax,0x416d6c
410042:	8d 4d c8             	lea    -0x38(%ebp),%ecx
410045:	51                   	push   %ecx
410046:	8b c8                	mov    %eax,%ecx
410048:	e8 b0 09 00 00       	call   0x4109fd
41004d:	33 f6                	xor    %esi,%esi
41004f:	89 75 f0             	mov    %esi,-0x10(%ebp)
410052:	39 75 d0             	cmp    %esi,-0x30(%ebp)
410055:	0f 86 c0 00 00 00    	jbe    0x41011b
41005b:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
41005f:	3b 75 d0             	cmp    -0x30(%ebp),%esi
410062:	0f 92 c3             	setb   %bl
410065:	8a cb                	mov    %bl,%cl
410067:	88 5d fb             	mov    %bl,-0x5(%ebp)
41006a:	e8 bc 57 ff ff       	call   0x40582b
41006f:	8b 7d c8             	mov    -0x38(%ebp),%edi
410072:	8d 4d f4             	lea    -0xc(%ebp),%ecx
410075:	51                   	push   %ecx
410076:	8d 4d ec             	lea    -0x14(%ebp),%ecx
410079:	8b 04 b7             	mov    (%edi,%esi,4),%eax
41007c:	ff 30                	push   (%eax)
41007e:	e8 69 31 ff ff       	call   0x4031ec
410083:	8b c8                	mov    %eax,%ecx
410085:	e8 40 2e ff ff       	call   0x402eca
41008a:	50                   	push   %eax
41008b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41008e:	e8 d1 31 ff ff       	call   0x403264
410093:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410096:	e8 92 59 ff ff       	call   0x405a2d
41009b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41009e:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4100a2:	e8 86 59 ff ff       	call   0x405a2d
4100a7:	8a cb                	mov    %bl,%cl
4100a9:	e8 7d 57 ff ff       	call   0x40582b
4100ae:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4100b1:	8a cb                	mov    %bl,%cl
4100b3:	8b 40 08             	mov    0x8(%eax),%eax
4100b6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4100b9:	89 45 dc             	mov    %eax,-0x24(%ebp)
4100bc:	e8 6a 57 ff ff       	call   0x40582b
4100c1:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4100c4:	8a 4d fb             	mov    -0x5(%ebp),%cl
4100c7:	8b 58 10             	mov    0x10(%eax),%ebx
4100ca:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4100cd:	e8 59 57 ff ff       	call   0x40582b
4100d2:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4100d5:	83 ec 10             	sub    $0x10,%esp
4100d8:	8b f4                	mov    %esp,%esi
4100da:	8b ce                	mov    %esi,%ecx
4100dc:	8b 78 14             	mov    0x14(%eax),%edi
4100df:	8d 45 d8             	lea    -0x28(%ebp),%eax
4100e2:	50                   	push   %eax
4100e3:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4100e6:	e8 6f 33 ff ff       	call   0x40345a
4100eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
4100ee:	8b 4d 08             	mov    0x8(%ebp),%ecx
4100f1:	89 46 04             	mov    %eax,0x4(%esi)
4100f4:	89 5e 08             	mov    %ebx,0x8(%esi)
4100f7:	89 7e 0c             	mov    %edi,0xc(%esi)
4100fa:	e8 d4 12 ff ff       	call   0x4013d3
4100ff:	8b 4d d8             	mov    -0x28(%ebp),%ecx
410102:	e8 26 59 ff ff       	call   0x405a2d
410107:	8b 75 f0             	mov    -0x10(%ebp),%esi
41010a:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
41010e:	46                   	inc    %esi
41010f:	89 75 f0             	mov    %esi,-0x10(%ebp)
410112:	3b 75 d0             	cmp    -0x30(%ebp),%esi
410115:	0f 82 40 ff ff ff    	jb     0x41005b
41011b:	8b 45 08             	mov    0x8(%ebp),%eax
41011e:	5f                   	pop    %edi
41011f:	5e                   	pop    %esi
410120:	5b                   	pop    %ebx
410121:	c9                   	leave
410122:	c2 04 00             	ret    $0x4
410125:	b9 74 6d 41 00       	mov    $0x416d74,%ecx
41012a:	e8 de e0 ff ff       	call   0x40e20d
41012f:	83 3d 70 6d 41 00 00 	cmpl   $0x0,0x416d70
410136:	74 17                	je     0x41014f
410138:	8b 0d 6c 6d 41 00    	mov    0x416d6c,%ecx
41013e:	85 c9                	test   %ecx,%ecx
410140:	74 0d                	je     0x41014f
410142:	51                   	push   %ecx
410143:	e8 07 09 00 00       	call   0x410a4f
410148:	83 25 70 6d 41 00 00 	andl   $0x0,0x416d70
41014f:	ff 35 74 6d 41 00    	push   0x416d74
410155:	ff 15 50 21 41 00    	call   *0x412150
41015b:	c3                   	ret
41015c:	55                   	push   %ebp
41015d:	8b ec                	mov    %esp,%ebp
41015f:	b9 74 6d 41 00       	mov    $0x416d74,%ecx
410164:	e8 a4 e0 ff ff       	call   0x40e20d
410169:	83 3d 70 6d 41 00 00 	cmpl   $0x0,0x416d70
410170:	75 44                	jne    0x4101b6
410172:	8b 0d 6c 6d 41 00    	mov    0x416d6c,%ecx
410178:	85 c9                	test   %ecx,%ecx
41017a:	75 20                	jne    0x41019c
41017c:	6a 38                	push   $0x38
41017e:	59                   	pop    %ecx
41017f:	e8 57 59 ff ff       	call   0x405adb
410184:	85 c0                	test   %eax,%eax
410186:	74 0c                	je     0x410194
410188:	51                   	push   %ecx
410189:	8b c8                	mov    %eax,%ecx
41018b:	e8 02 0b 00 00       	call   0x410c92
410190:	8b c8                	mov    %eax,%ecx
410192:	eb 02                	jmp    0x410196
410194:	33 c9                	xor    %ecx,%ecx
410196:	89 0d 6c 6d 41 00    	mov    %ecx,0x416d6c
41019c:	8b 45 08             	mov    0x8(%ebp),%eax
41019f:	ff 75 0c             	push   0xc(%ebp)
4101a2:	a3 68 6d 41 00       	mov    %eax,0x416d68
4101a7:	c7 05 70 6d 41 00 01 	movl   $0x1,0x416d70
4101ae:	00 00 00
4101b1:	e8 12 09 00 00       	call   0x410ac8
4101b6:	ff 35 74 6d 41 00    	push   0x416d74
4101bc:	ff 15 50 21 41 00    	call   *0x412150
4101c2:	5d                   	pop    %ebp
4101c3:	c2 08 00             	ret    $0x8
4101c6:	51                   	push   %ecx
4101c7:	b9 74 6d 41 00       	mov    $0x416d74,%ecx
4101cc:	c7 05 64 6d 41 00 c4 	movl   $0x4147c4,0x416d64
4101d3:	47 41 00
4101d6:	e8 5b e0 ff ff       	call   0x40e236
4101db:	6a 38                	push   $0x38
4101dd:	59                   	pop    %ecx
4101de:	e8 f8 58 ff ff       	call   0x405adb
4101e3:	85 c0                	test   %eax,%eax
4101e5:	74 0a                	je     0x4101f1
4101e7:	51                   	push   %ecx
4101e8:	8b c8                	mov    %eax,%ecx
4101ea:	e8 a3 0a 00 00       	call   0x410c92
4101ef:	eb 02                	jmp    0x4101f3
4101f1:	33 c0                	xor    %eax,%eax
4101f3:	83 25 70 6d 41 00 00 	andl   $0x0,0x416d70
4101fa:	a3 6c 6d 41 00       	mov    %eax,0x416d6c
4101ff:	b8 64 6d 41 00       	mov    $0x416d64,%eax
410204:	c3                   	ret
410205:	55                   	push   %ebp
410206:	8b ec                	mov    %esp,%ebp
410208:	83 ec 0c             	sub    $0xc,%esp
41020b:	56                   	push   %esi
41020c:	57                   	push   %edi
41020d:	33 ff                	xor    %edi,%edi
41020f:	57                   	push   %edi
410210:	8b f7                	mov    %edi,%esi
410212:	ff 15 30 23 41 00    	call   *0x412330
410218:	8d 45 f8             	lea    -0x8(%ebp),%eax
41021b:	89 7d f8             	mov    %edi,-0x8(%ebp)
41021e:	50                   	push   %eax
41021f:	68 50 25 41 00       	push   $0x412550
410224:	6a 01                	push   $0x1
410226:	57                   	push   %edi
410227:	68 a0 25 41 00       	push   $0x4125a0
41022c:	ff 15 28 23 41 00    	call   *0x412328
410232:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410235:	85 c9                	test   %ecx,%ecx
410237:	74 64                	je     0x41029d
410239:	8b 01                	mov    (%ecx),%eax
41023b:	8d 55 fc             	lea    -0x4(%ebp),%edx
41023e:	57                   	push   %edi
41023f:	52                   	push   %edx
410240:	68 90 25 41 00       	push   $0x412590
410245:	51                   	push   %ecx
410246:	ff 50 0c             	call   *0xc(%eax)
410249:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41024c:	85 c9                	test   %ecx,%ecx
41024e:	74 3d                	je     0x41028d
410250:	8b 01                	mov    (%ecx),%eax
410252:	51                   	push   %ecx
410253:	ff 50 14             	call   *0x14(%eax)
410256:	eb 11                	jmp    0x410269
410258:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41025b:	46                   	inc    %esi
41025c:	85 c9                	test   %ecx,%ecx
41025e:	74 09                	je     0x410269
410260:	8b 01                	mov    (%ecx),%eax
410262:	51                   	push   %ecx
410263:	ff 50 08             	call   *0x8(%eax)
410266:	89 7d f4             	mov    %edi,-0xc(%ebp)
410269:	8b 45 fc             	mov    -0x4(%ebp),%eax
41026c:	8d 55 f4             	lea    -0xc(%ebp),%edx
41026f:	57                   	push   %edi
410270:	52                   	push   %edx
410271:	6a 01                	push   $0x1
410273:	8b 08                	mov    (%eax),%ecx
410275:	50                   	push   %eax
410276:	ff 51 0c             	call   *0xc(%ecx)
410279:	85 c0                	test   %eax,%eax
41027b:	74 db                	je     0x410258
41027d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410280:	85 c9                	test   %ecx,%ecx
410282:	74 09                	je     0x41028d
410284:	8b 01                	mov    (%ecx),%eax
410286:	51                   	push   %ecx
410287:	ff 50 08             	call   *0x8(%eax)
41028a:	89 7d fc             	mov    %edi,-0x4(%ebp)
41028d:	8b 55 f8             	mov    -0x8(%ebp),%edx
410290:	85 d2                	test   %edx,%edx
410292:	74 09                	je     0x41029d
410294:	8b 0a                	mov    (%edx),%ecx
410296:	52                   	push   %edx
410297:	ff 51 08             	call   *0x8(%ecx)
41029a:	89 7d f8             	mov    %edi,-0x8(%ebp)
41029d:	ff 15 24 23 41 00    	call   *0x412324
4102a3:	5f                   	pop    %edi
4102a4:	8b c6                	mov    %esi,%eax
4102a6:	5e                   	pop    %esi
4102a7:	c9                   	leave
4102a8:	c3                   	ret
4102a9:	56                   	push   %esi
4102aa:	8b f1                	mov    %ecx,%esi
4102ac:	57                   	push   %edi
4102ad:	33 ff                	xor    %edi,%edi
4102af:	39 7e 40             	cmp    %edi,0x40(%esi)
4102b2:	74 0f                	je     0x4102c3
4102b4:	ff 76 44             	push   0x44(%esi)
4102b7:	ff 15 2c 23 41 00    	call   *0x41232c
4102bd:	89 7e 40             	mov    %edi,0x40(%esi)
4102c0:	89 7e 44             	mov    %edi,0x44(%esi)
4102c3:	8b 4e 3c             	mov    0x3c(%esi),%ecx
4102c6:	85 c9                	test   %ecx,%ecx
4102c8:	74 09                	je     0x4102d3
4102ca:	8b 01                	mov    (%ecx),%eax
4102cc:	51                   	push   %ecx
4102cd:	ff 50 08             	call   *0x8(%eax)
4102d0:	89 7e 3c             	mov    %edi,0x3c(%esi)
4102d3:	5f                   	pop    %edi