40ff64:	52                   	push   %edx
40ff65:	50                   	push   %eax
40ff66:	ff 15 78 10 45 00    	call   *0x451078
40ff6c:	8b d8                	mov    %eax,%ebx
40ff6e:	85 db                	test   %ebx,%ebx
40ff70:	0f 84 8a 91 01 00    	je     0x429100
40ff76:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ff79:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40ff7c:	53                   	push   %ebx
40ff7d:	51                   	push   %ecx
40ff7e:	56                   	push   %esi
40ff7f:	8b 38                	mov    (%eax),%edi
40ff81:	50                   	push   %eax
40ff82:	8b 7f 28             	mov    0x28(%edi),%edi
40ff85:	8b cf                	mov    %edi,%ecx
40ff87:	ff 15 c4 12 45 00    	call   *0x4512c4
40ff8d:	ff d7                	call   *%edi
40ff8f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ff92:	85 c0                	test   %eax,%eax
40ff94:	0f 88 5c 91 01 00    	js     0x4290f6
40ff9a:	8b c6                	mov    %esi,%eax
40ff9c:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40ffa3:	f7 d8                	neg    %eax
40ffa5:	53                   	push   %ebx
40ffa6:	1b c0                	sbb    %eax,%eax
40ffa8:	25 40 6a 40 00       	and    $0x406a40,%eax
40ffad:	50                   	push   %eax
40ffae:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ffb1:	ff 30                	push   (%eax)
40ffb3:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ffb6:	50                   	push   %eax
40ffb7:	6a 03                	push   $0x3
40ffb9:	e8 c2 00 00 00       	call   0x410080
40ffbe:	83 c4 14             	add    $0x14,%esp
40ffc1:	8b cb                	mov    %ebx,%ecx
40ffc3:	8b f8                	mov    %eax,%edi
40ffc5:	e8 46 00 00 00       	call   0x410010
40ffca:	85 ff                	test   %edi,%edi
40ffcc:	8b 7d fc             	mov    -0x4(%ebp),%edi
40ffcf:	75 28                	jne    0x40fff9
40ffd1:	8b 0f                	mov    (%edi),%ecx
40ffd3:	e8 38 00 00 00       	call   0x410010
40ffd8:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ffdb:	89 07                	mov    %eax,(%edi)
40ffdd:	46                   	inc    %esi
40ffde:	3b 75 f0             	cmp    -0x10(%ebp),%esi
40ffe1:	73 08                	jae    0x40ffeb
40ffe3:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40ffe6:	e9 25 ff ff ff       	jmp    0x40ff10
40ffeb:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ffee:	85 c0                	test   %eax,%eax
40fff0:	78 10                	js     0x410002
40fff2:	5f                   	pop    %edi
40fff3:	5e                   	pop    %esi
40fff4:	5b                   	pop    %ebx
40fff5:	8b e5                	mov    %ebp,%esp
40fff7:	5d                   	pop    %ebp
40fff8:	c3                   	ret
40fff9:	c7 45 f8 06 10 04 80 	movl   $0x80041006,-0x8(%ebp)
410000:	eb db                	jmp    0x40ffdd
410002:	8b 5d f8             	mov    -0x8(%ebp),%ebx
410005:	e9 0b 91 01 00       	jmp    0x429115
41000a:	cc                   	int3
41000b:	cc                   	int3
41000c:	cc                   	int3
41000d:	cc                   	int3
41000e:	cc                   	int3
41000f:	cc                   	int3
410010:	8b ff                	mov    %edi,%edi
410012:	55                   	push   %ebp
410013:	8b ec                	mov    %esp,%ebp
410015:	6a ff                	push   $0xffffffff
410017:	68 00 34 42 00       	push   $0x423400
41001c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
410022:	50                   	push   %eax
410023:	a1 54 02 45 00       	mov    0x450254,%eax
410028:	33 c5                	xor    %ebp,%eax
41002a:	50                   	push   %eax
41002b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41002e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
410034:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
41003b:	85 c9                	test   %ecx,%ecx
41003d:	74 1a                	je     0x410059
41003f:	a1 80 0b 45 00       	mov    0x450b80,%eax
410044:	8b 40 04             	mov    0x4(%eax),%eax
410047:	85 c0                	test   %eax,%eax
410049:	74 0e                	je     0x410059
41004b:	51                   	push   %ecx
41004c:	6a 00                	push   $0x0
41004e:	50                   	push   %eax
41004f:	ff 15 70 10 45 00    	call   *0x451070
410055:	85 c0                	test   %eax,%eax
410057:	74 16                	je     0x41006f
410059:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
410060:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410063:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41006a:	59                   	pop    %ecx
41006b:	8b e5                	mov    %ebp,%esp
41006d:	5d                   	pop    %ebp
41006e:	c3                   	ret
41006f:	ff 15 54 10 45 00    	call   *0x451054
410075:	eb e2                	jmp    0x410059
410077:	cc                   	int3
410078:	cc                   	int3
410079:	cc                   	int3
41007a:	cc                   	int3
41007b:	cc                   	int3
41007c:	cc                   	int3
41007d:	cc                   	int3
41007e:	cc                   	int3
41007f:	cc                   	int3
410080:	8b ff                	mov    %edi,%edi
410082:	55                   	push   %ebp
410083:	8b ec                	mov    %esp,%ebp
410085:	83 ec 0c             	sub    $0xc,%esp
410088:	53                   	push   %ebx
410089:	56                   	push   %esi
41008a:	8b 75 08             	mov    0x8(%ebp),%esi
41008d:	33 db                	xor    %ebx,%ebx
41008f:	57                   	push   %edi
410090:	85 f6                	test   %esi,%esi
410092:	74 26                	je     0x4100ba
410094:	8d 55 0c             	lea    0xc(%ebp),%edx
410097:	8b 42 04             	mov    0x4(%edx),%eax
41009a:	8d 52 04             	lea    0x4(%edx),%edx
41009d:	85 c0                	test   %eax,%eax
41009f:	74 14                	je     0x4100b5
4100a1:	8d 78 02             	lea    0x2(%eax),%edi
4100a4:	66 8b 08             	mov    (%eax),%cx
4100a7:	83 c0 02             	add    $0x2,%eax
4100aa:	66 85 c9             	test   %cx,%cx
4100ad:	75 f5                	jne    0x4100a4
4100af:	2b c7                	sub    %edi,%eax
4100b1:	d1 f8                	sar    $1,%eax
4100b3:	03 d8                	add    %eax,%ebx
4100b5:	83 ee 01             	sub    $0x1,%esi
4100b8:	75 dd                	jne    0x410097
4100ba:	a1 80 0b 45 00       	mov    0x450b80,%eax
4100bf:	8d 53 01             	lea    0x1(%ebx),%edx
4100c2:	89 55 fc             	mov    %edx,-0x4(%ebp)
4100c5:	8b 70 08             	mov    0x8(%eax),%esi
4100c8:	8b 78 04             	mov    0x4(%eax),%edi
4100cb:	83 e6 05             	and    $0x5,%esi
4100ce:	83 ce 08             	or     $0x8,%esi
4100d1:	85 ff                	test   %edi,%edi
4100d3:	0f 84 53 90 01 00    	je     0x42912c
4100d9:	33 c9                	xor    %ecx,%ecx
4100db:	8b c2                	mov    %edx,%eax
4100dd:	ba 02 00 00 00       	mov    $0x2,%edx
4100e2:	f7 e2                	mul    %edx
4100e4:	0f 90 c1             	seto   %cl
4100e7:	f7 d9                	neg    %ecx
4100e9:	0b c8                	or     %eax,%ecx
4100eb:	51                   	push   %ecx
4100ec:	56                   	push   %esi
4100ed:	57                   	push   %edi
4100ee:	ff 15 78 10 45 00    	call   *0x451078
4100f4:	85 c0                	test   %eax,%eax
4100f6:	0f 84 27 90 01 00    	je     0x429123
4100fc:	8b 55 fc             	mov    -0x4(%ebp),%edx
4100ff:	8b 75 0c             	mov    0xc(%ebp),%esi
410102:	89 06                	mov    %eax,(%esi)
410104:	85 c0                	test   %eax,%eax
410106:	0f 84 37 90 01 00    	je     0x429143
41010c:	8b 7d 08             	mov    0x8(%ebp),%edi
41010f:	33 db                	xor    %ebx,%ebx
410111:	89 5d f8             	mov    %ebx,-0x8(%ebp)
410114:	85 ff                	test   %edi,%edi
410116:	0f 84 90 00 00 00    	je     0x4101ac
41011c:	8d 45 0c             	lea    0xc(%ebp),%eax
41011f:	90                   	nop
410120:	8b 48 04             	mov    0x4(%eax),%ecx
410123:	83 c0 04             	add    $0x4,%eax
410126:	89 45 f4             	mov    %eax,-0xc(%ebp)
410129:	85 c9                	test   %ecx,%ecx
41012b:	74 70                	je     0x41019d
41012d:	8b 06                	mov    (%esi),%eax
41012f:	8d 34 58             	lea    (%eax,%ebx,2),%esi
410132:	2b d3                	sub    %ebx,%edx
410134:	0f 84 fc 8f 01 00    	je     0x429136
41013a:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
410140:	0f 87 f0 8f 01 00    	ja     0x429136
410146:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
41014b:	8b d9                	mov    %ecx,%ebx
41014d:	2b fa                	sub    %edx,%edi
41014f:	2b de                	sub    %esi,%ebx
410151:	8d 04 17             	lea    (%edi,%edx,1),%eax
410154:	85 c0                	test   %eax,%eax
410156:	74 19                	je     0x410171
410158:	0f b7 04 33          	movzwl (%ebx,%esi,1),%eax
41015c:	66 85 c0             	test   %ax,%ax
41015f:	74 10                	je     0x410171
410161:	66 89 06             	mov    %ax,(%esi)
410164:	83 c6 02             	add    $0x2,%esi
410167:	83 ea 01             	sub    $0x1,%edx
41016a:	75 e5                	jne    0x410151
41016c:	83 ee 02             	sub    $0x2,%esi
41016f:	eb 04                	jmp    0x410175
410171:	85 d2                	test   %edx,%edx
410173:	74 f7                	je     0x41016c
410175:	8b 5d f8             	mov    -0x8(%ebp),%ebx
410178:	8b 7d 08             	mov    0x8(%ebp),%edi
41017b:	33 c0                	xor    %eax,%eax
41017d:	66 89 06             	mov    %ax,(%esi)
410180:	8d 51 02             	lea    0x2(%ecx),%edx
410183:	66 8b 01             	mov    (%ecx),%ax
410186:	83 c1 02             	add    $0x2,%ecx
410189:	66 85 c0             	test   %ax,%ax
41018c:	75 f5                	jne    0x410183
41018e:	8b 45 f4             	mov    -0xc(%ebp),%eax
410191:	2b ca                	sub    %edx,%ecx
410193:	8b 75 0c             	mov    0xc(%ebp),%esi
410196:	d1 f9                	sar    $1,%ecx
410198:	03 d9                	add    %ecx,%ebx
41019a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41019d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4101a0:	83 ef 01             	sub    $0x1,%edi
4101a3:	89 7d 08             	mov    %edi,0x8(%ebp)
4101a6:	0f 85 74 ff ff ff    	jne    0x410120
4101ac:	8b 0e                	mov    (%esi),%ecx
4101ae:	33 d2                	xor    %edx,%edx
4101b0:	33 c0                	xor    %eax,%eax
4101b2:	66 89 14 59          	mov    %dx,(%ecx,%ebx,2)
4101b6:	5f                   	pop    %edi
4101b7:	5e                   	pop    %esi
4101b8:	5b                   	pop    %ebx
4101b9:	8b e5                	mov    %ebp,%esp
4101bb:	5d                   	pop    %ebp
4101bc:	c3                   	ret
4101bd:	cc                   	int3
4101be:	cc                   	int3
4101bf:	cc                   	int3
4101c0:	8b ff                	mov    %edi,%edi
4101c2:	55                   	push   %ebp
4101c3:	8b ec                	mov    %esp,%ebp
4101c5:	83 ec 1c             	sub    $0x1c,%esp
4101c8:	53                   	push   %ebx
4101c9:	56                   	push   %esi
4101ca:	89 55 e8             	mov    %edx,-0x18(%ebp)
4101cd:	8b d1                	mov    %ecx,%edx
4101cf:	57                   	push   %edi
4101d0:	bf d4 03 45 00       	mov    $0x4503d4,%edi
4101d5:	89 55 ec             	mov    %edx,-0x14(%ebp)
4101d8:	8b f2                	mov    %edx,%esi
4101da:	2b f7                	sub    %edi,%esi
4101dc:	8d 64 24 00          	lea    0x0(%esp),%esp
4101e0:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
4101e4:	66 85 c0             	test   %ax,%ax
4101e7:	0f 84 60 8f 01 00    	je     0x42914d
4101ed:	8b c8                	mov    %eax,%ecx
4101ef:	83 f9 7f             	cmp    $0x7f,%ecx
4101f2:	0f 87 76 8f 01 00    	ja     0x42916e
4101f8:	8d 41 bf             	lea    -0x41(%ecx),%eax
4101fb:	66 83 f8 19          	cmp    $0x19,%ax
4101ff:	0f 87 62 8f 01 00    	ja     0x429167
410205:	8d 41 20             	lea    0x20(%ecx),%eax
410208:	0f b7 d8             	movzwl %ax,%ebx
41020b:	0f b7 0f             	movzwl (%edi),%ecx
41020e:	83 f9 7f             	cmp    $0x7f,%ecx
410211:	0f 87 90 8f 01 00    	ja     0x4291a7
410217:	8d 41 bf             	lea    -0x41(%ecx),%eax
41021a:	66 83 f8 19          	cmp    $0x19,%ax
41021e:	0f 87 7c 8f 01 00    	ja     0x4291a0
410224:	8d 41 20             	lea    0x20(%ecx),%eax
410227:	0f b7 c0             	movzwl %ax,%eax
41022a:	0f b7 c0             	movzwl %ax,%eax
41022d:	0f b7 cb             	movzwl %bx,%ecx
410230:	2b c8                	sub    %eax,%ecx
410232:	0f 84 a1 8f 01 00    	je     0x4291d9
410238:	8b 75 ec             	mov    -0x14(%ebp),%esi
41023b:	bf b0 03 45 00       	mov    $0x4503b0,%edi
410240:	2b f7                	sub    %edi,%esi
410242:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
410246:	66 85 c0             	test   %ax,%ax
410249:	0f 84 92 8f 01 00    	je     0x4291e1
41024f:	8b c8                	mov    %eax,%ecx
410251:	83 f9 7f             	cmp    $0x7f,%ecx
410254:	0f 87 a8 8f 01 00    	ja     0x429202
41025a:	8d 41 bf             	lea    -0x41(%ecx),%eax
41025d:	66 83 f8 19          	cmp    $0x19,%ax
410261:	0f 87 94 8f 01 00    	ja     0x4291fb
410267:	8d 41 20             	lea    0x20(%ecx),%eax
41026a:	0f b7 d8             	movzwl %ax,%ebx
41026d:	0f b7 0f             	movzwl (%edi),%ecx
410270:	83 f9 7f             	cmp    $0x7f,%ecx
410273:	0f 87 c2 8f 01 00    	ja     0x42923b
410279:	8d 41 bf             	lea    -0x41(%ecx),%eax
41027c:	66 83 f8 19          	cmp    $0x19,%ax
410280:	0f 87 ae 8f 01 00    	ja     0x429234
410286:	8d 41 20             	lea    0x20(%ecx),%eax
410289:	0f b7 c0             	movzwl %ax,%eax
41028c:	0f b7 c0             	movzwl %ax,%eax
41028f:	0f b7 cb             	movzwl %bx,%ecx
410292:	2b c8                	sub    %eax,%ecx
410294:	0f 84 d3 8f 01 00    	je     0x42926d
41029a:	8b 75 ec             	mov    -0x14(%ebp),%esi
41029d:	bf 9c 03 45 00       	mov    $0x45039c,%edi
4102a2:	2b f7                	sub    %edi,%esi
4102a4:	eb 0a                	jmp    0x4102b0
4102a6:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4102ad:	8d 49 00             	lea    0x0(%ecx),%ecx
4102b0:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
4102b4:	66 85 c0             	test   %ax,%ax
4102b7:	0f 84 b8 8f 01 00    	je     0x429275
4102bd:	8b c8                	mov    %eax,%ecx
4102bf:	83 f9 7f             	cmp    $0x7f,%ecx
4102c2:	0f 87 ce 8f 01 00    	ja     0x429296
4102c8:	8d 41 bf             	lea    -0x41(%ecx),%eax
4102cb:	66 83 f8 19          	cmp    $0x19,%ax
4102cf:	0f 87 ba 8f 01 00    	ja     0x42928f
4102d5:	8d 41 20             	lea    0x20(%ecx),%eax
4102d8:	0f b7 d8             	movzwl %ax,%ebx
4102db:	0f b7 0f             	movzwl (%edi),%ecx
4102de:	83 f9 7f             	cmp    $0x7f,%ecx
4102e1:	0f 87 e8 8f 01 00    	ja     0x4292cf
4102e7:	8d 41 bf             	lea    -0x41(%ecx),%eax
4102ea:	66 83 f8 19          	cmp    $0x19,%ax
4102ee:	0f 87 d4 8f 01 00    	ja     0x4292c8
4102f4:	8d 41 20             	lea    0x20(%ecx),%eax
4102f7:	0f b7 c0             	movzwl %ax,%eax
4102fa:	0f b7 c0             	movzwl %ax,%eax
4102fd:	0f b7 cb             	movzwl %bx,%ecx
410300:	2b c8                	sub    %eax,%ecx
410302:	0f 84 f9 8f 01 00    	je     0x429301
410308:	8b 75 ec             	mov    -0x14(%ebp),%esi
41030b:	bf 80 03 45 00       	mov    $0x450380,%edi
410310:	bb 0d 00 00 00       	mov    $0xd,%ebx
410315:	2b f7                	sub    %edi,%esi
410317:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
41031b:	4b                   	dec    %ebx
41031c:	66 85 c0             	test   %ax,%ax
41031f:	0f 84 e4 8f 01 00    	je     0x429309
410325:	8b c8                	mov    %eax,%ecx
410327:	83 f9 7f             	cmp    $0x7f,%ecx
41032a:	0f 87 ef 8f 01 00    	ja     0x42931f
410330:	8d 41 bf             	lea    -0x41(%ecx),%eax
410333:	66 83 f8 19          	cmp    $0x19,%ax
410337:	0f 87 db 8f 01 00    	ja     0x429318
41033d:	8d 41 20             	lea    0x20(%ecx),%eax
410340:	0f b7 c0             	movzwl %ax,%eax
410343:	0f b7 0f             	movzwl (%edi),%ecx
410346:	89 45 e4             	mov    %eax,-0x1c(%ebp)
410349:	83 f9 7f             	cmp    $0x7f,%ecx
41034c:	0f 87 06 90 01 00    	ja     0x429358
410352:	8d 41 bf             	lea    -0x41(%ecx),%eax
410355:	66 83 f8 19          	cmp    $0x19,%ax
410359:	0f 87 f2 8f 01 00    	ja     0x429351
41035f:	8d 41 20             	lea    0x20(%ecx),%eax
410362:	0f b7 c0             	movzwl %ax,%eax
410365:	8b 4d e4             	mov    -0x1c(%ebp),%ecx