40acfd:	0f 8c 60 fe ff ff    	jl     0x40ab63
40ad03:	39 5f 14             	cmp    %ebx,0x14(%edi)
40ad06:	75 17                	jne    0x40ad1f
40ad08:	33 c0                	xor    %eax,%eax
40ad0a:	83 3d ac 53 41 00 02 	cmpl   $0x2,0x4153ac
40ad11:	0f 94 c0             	sete   %al
40ad14:	50                   	push   %eax
40ad15:	68 08 01 00 00       	push   $0x108
40ad1a:	e8 dc 80 00 00       	call   0x412dfb
40ad1f:	5f                   	pop    %edi
40ad20:	5e                   	pop    %esi
40ad21:	5b                   	pop    %ebx
40ad22:	8b e5                	mov    %ebp,%esp
40ad24:	5d                   	pop    %ebp
40ad25:	c3                   	ret
40ad26:	84 ab 40 00 90 ab    	test   %ch,-0x546fffc0(%ebx)
40ad2c:	40                   	inc    %eax
40ad2d:	00 9c ab 40 00 a8 ab 	add    %bl,-0x5457ffc0(%ebx,%ebp,4)
40ad34:	40                   	inc    %eax
40ad35:	00 c5                	add    %al,%ch
40ad37:	ab                   	stos   %eax,%es:(%edi)
40ad38:	40                   	inc    %eax
40ad39:	00 d7                	add    %dl,%bh
40ad3b:	ab                   	stos   %eax,%es:(%edi)
40ad3c:	40                   	inc    %eax
40ad3d:	00 e9                	add    %ch,%cl
40ad3f:	ab                   	stos   %eax,%es:(%edi)
40ad40:	40                   	inc    %eax
40ad41:	00 02                	add    %al,(%edx)
40ad43:	ac                   	lods   %ds:(%esi),%al
40ad44:	40                   	inc    %eax
40ad45:	00 b3 ab 40 00 22    	add    %dh,0x220040ab(%ebx)
40ad4b:	ac                   	lods   %ds:(%esi),%al
40ad4c:	40                   	inc    %eax
40ad4d:	00 2e                	add    %ch,(%esi)
40ad4f:	ac                   	lods   %ds:(%esi),%al
40ad50:	40                   	inc    %eax
40ad51:	00 46 ac             	add    %al,-0x54(%esi)
40ad54:	40                   	inc    %eax
40ad55:	00 58 ac             	add    %bl,-0x54(%eax)
40ad58:	40                   	inc    %eax
40ad59:	00 6a ac             	add    %ch,-0x54(%edx)
40ad5c:	40                   	inc    %eax
40ad5d:	00 73 ac             	add    %dh,-0x54(%ebx)
40ad60:	40                   	inc    %eax
40ad61:	00 82 ac 40 00 97    	add    %al,-0x68ffbf54(%edx)
40ad67:	ac                   	lods   %ds:(%esi),%al
40ad68:	40                   	inc    %eax
40ad69:	00 a6 ac 40 00 cd    	add    %ah,-0x32ffbf54(%esi)
40ad6f:	ac                   	lods   %ds:(%esi),%al
40ad70:	40                   	inc    %eax
40ad71:	00 e2                	add    %ah,%dl
40ad73:	ac                   	lods   %ds:(%esi),%al
40ad74:	40                   	inc    %eax
40ad75:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
40ad7b:	51                   	push   %ecx
40ad7c:	56                   	push   %esi
40ad7d:	57                   	push   %edi
40ad7e:	ff 75 0c             	push   0xc(%ebp)
40ad81:	33 ff                	xor    %edi,%edi
40ad83:	ff 71 04             	push   0x4(%ecx)
40ad86:	89 7d fc             	mov    %edi,-0x4(%ebp)
40ad89:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40ad8f:	8b f0                	mov    %eax,%esi
40ad91:	85 f6                	test   %esi,%esi
40ad93:	74 4e                	je     0x40ade3
40ad95:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ad98:	85 c9                	test   %ecx,%ecx
40ad9a:	74 37                	je     0x40add3
40ad9c:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ad9f:	e8 41 4c 00 00       	call   0x40f9e5
40ada4:	85 c0                	test   %eax,%eax
40ada6:	74 3b                	je     0x40ade3
40ada8:	8b 7d fc             	mov    -0x4(%ebp),%edi
40adab:	85 ff                	test   %edi,%edi
40adad:	74 34                	je     0x40ade3
40adaf:	57                   	push   %edi
40adb0:	56                   	push   %esi
40adb1:	ff 15 50 b2 41 00    	call   *0x41b250
40adb7:	6a 01                	push   $0x1
40adb9:	56                   	push   %esi
40adba:	ff 15 dc b1 41 00    	call   *0x41b1dc
40adc0:	6a 05                	push   $0x5
40adc2:	56                   	push   %esi
40adc3:	ff 15 34 b2 41 00    	call   *0x41b234
40adc9:	57                   	push   %edi
40adca:	ff 15 24 b3 41 00    	call   *0x41b324
40add0:	59                   	pop    %ecx
40add1:	eb 10                	jmp    0x40ade3
40add3:	57                   	push   %edi
40add4:	56                   	push   %esi
40add5:	ff 15 dc b1 41 00    	call   *0x41b1dc
40addb:	57                   	push   %edi
40addc:	56                   	push   %esi
40addd:	ff 15 34 b2 41 00    	call   *0x41b234
40ade3:	5f                   	pop    %edi
40ade4:	5e                   	pop    %esi
40ade5:	c9                   	leave
40ade6:	c2 08 00             	ret    $0x8
40ade9:	8b ff                	mov    %edi,%edi
40adeb:	55                   	push   %ebp
40adec:	8b ec                	mov    %esp,%ebp
40adee:	83 ec 5c             	sub    $0x5c,%esp
40adf1:	8b 45 08             	mov    0x8(%ebp),%eax
40adf4:	53                   	push   %ebx
40adf5:	33 db                	xor    %ebx,%ebx
40adf7:	c7 45 a4 04 00 00 00 	movl   $0x4,-0x5c(%ebp)
40adfe:	56                   	push   %esi
40adff:	8b f1                	mov    %ecx,%esi
40ae01:	83 f8 ff             	cmp    $0xffffffff,%eax
40ae04:	75 10                	jne    0x40ae16
40ae06:	53                   	push   %ebx
40ae07:	53                   	push   %ebx
40ae08:	68 42 10 00 00       	push   $0x1042
40ae0d:	ff 76 0c             	push   0xc(%esi)
40ae10:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ae16:	89 45 a8             	mov    %eax,-0x58(%ebp)
40ae19:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40ae1c:	83 f8 ff             	cmp    $0xffffffff,%eax
40ae1f:	0f 84 18 06 00 00    	je     0x40b43d
40ae25:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40ae28:	50                   	push   %eax
40ae29:	53                   	push   %ebx
40ae2a:	68 4b 10 00 00       	push   $0x104b
40ae2f:	ff 76 0c             	push   0xc(%esi)
40ae32:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ae38:	85 c0                	test   %eax,%eax
40ae3a:	0f 84 fd 05 00 00    	je     0x40b43d
40ae40:	57                   	push   %edi
40ae41:	8b 7d c4             	mov    -0x3c(%ebp),%edi
40ae44:	68 02 04 00 00       	push   $0x402
40ae49:	ff 76 04             	push   0x4(%esi)
40ae4c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40ae4f:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40ae55:	68 59 04 00 00       	push   $0x459
40ae5a:	ff 76 04             	push   0x4(%esi)
40ae5d:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ae60:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40ae66:	68 5a 04 00 00       	push   $0x45a
40ae6b:	ff 76 04             	push   0x4(%esi)
40ae6e:	8b d8                	mov    %eax,%ebx
40ae70:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40ae76:	6b ff 3c             	imul   $0x3c,%edi,%edi
40ae79:	8b ce                	mov    %esi,%ecx
40ae7b:	68 4f 04 00 00       	push   $0x44f
40ae80:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ae83:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ae86:	ff b7 04 52 41 00    	push   0x415204(%edi)
40ae8c:	e8 e5 fe ff ff       	call   0x40ad76
40ae91:	83 bf 14 52 41 00 00 	cmpl   $0x0,0x415214(%edi)
40ae98:	8b 0d 18 98 41 00    	mov    0x419818,%ecx
40ae9e:	74 20                	je     0x40aec0
40aea0:	81 f9 22 00 10 00    	cmp    $0x100022,%ecx
40aea6:	74 40                	je     0x40aee8
40aea8:	81 f9 23 00 10 00    	cmp    $0x100023,%ecx
40aeae:	74 38                	je     0x40aee8
40aeb0:	81 f9 24 00 10 00    	cmp    $0x100024,%ecx
40aeb6:	74 30                	je     0x40aee8
40aeb8:	81 f9 31 00 00 04    	cmp    $0x4000031,%ecx
40aebe:	74 28                	je     0x40aee8
40aec0:	83 7d fc 04          	cmpl   $0x4,-0x4(%ebp)
40aec4:	75 09                	jne    0x40aecf
40aec6:	83 3d 10 98 41 00 00 	cmpl   $0x0,0x419810
40aecd:	75 19                	jne    0x40aee8
40aecf:	83 bf 18 52 41 00 00 	cmpl   $0x0,0x415218(%edi)
40aed6:	0f 84 93 00 00 00    	je     0x40af6f
40aedc:	81 f9 14 00 02 00    	cmp    $0x20014,%ecx
40aee2:	0f 85 87 00 00 00    	jne    0x40af6f
40aee8:	68 4c 04 00 00       	push   $0x44c
40aeed:	33 ff                	xor    %edi,%edi
40aeef:	8b ce                	mov    %esi,%ecx
40aef1:	57                   	push   %edi
40aef2:	e8 7f fe ff ff       	call   0x40ad76
40aef7:	68 4d 04 00 00       	push   $0x44d
40aefc:	57                   	push   %edi
40aefd:	8b ce                	mov    %esi,%ecx
40aeff:	e8 72 fe ff ff       	call   0x40ad76
40af04:	68 4e 04 00 00       	push   $0x44e
40af09:	57                   	push   %edi
40af0a:	8b ce                	mov    %esi,%ecx
40af0c:	e8 65 fe ff ff       	call   0x40ad76
40af11:	68 67 04 00 00       	push   $0x467
40af16:	57                   	push   %edi
40af17:	8b ce                	mov    %esi,%ecx
40af19:	e8 58 fe ff ff       	call   0x40ad76
40af1e:	68 6b 04 00 00       	push   $0x46b
40af23:	57                   	push   %edi
40af24:	8b ce                	mov    %esi,%ecx
40af26:	e8 4b fe ff ff       	call   0x40ad76
40af2b:	8b 75 e8             	mov    -0x18(%ebp),%esi
40af2e:	85 f6                	test   %esi,%esi
40af30:	74 10                	je     0x40af42
40af32:	57                   	push   %edi
40af33:	56                   	push   %esi
40af34:	ff 15 dc b1 41 00    	call   *0x41b1dc
40af3a:	57                   	push   %edi
40af3b:	56                   	push   %esi
40af3c:	ff 15 34 b2 41 00    	call   *0x41b234
40af42:	85 db                	test   %ebx,%ebx
40af44:	74 10                	je     0x40af56
40af46:	57                   	push   %edi
40af47:	53                   	push   %ebx
40af48:	ff 15 dc b1 41 00    	call   *0x41b1dc
40af4e:	57                   	push   %edi
40af4f:	53                   	push   %ebx
40af50:	ff 15 34 b2 41 00    	call   *0x41b234
40af56:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40af59:	85 db                	test   %ebx,%ebx
40af5b:	0f 84 db 04 00 00    	je     0x40b43c
40af61:	57                   	push   %edi
40af62:	53                   	push   %ebx
40af63:	ff 15 dc b1 41 00    	call   *0x41b1dc
40af69:	57                   	push   %edi
40af6a:	e9 c6 04 00 00       	jmp    0x40b435
40af6f:	68 4c 04 00 00       	push   $0x44c
40af74:	ff b7 ec 51 41 00    	push   0x4151ec(%edi)
40af7a:	8b ce                	mov    %esi,%ecx
40af7c:	e8 f5 fd ff ff       	call   0x40ad76
40af81:	68 4d 04 00 00       	push   $0x44d
40af86:	ff b7 f0 51 41 00    	push   0x4151f0(%edi)
40af8c:	8b ce                	mov    %esi,%ecx
40af8e:	e8 e3 fd ff ff       	call   0x40ad76
40af93:	68 4e 04 00 00       	push   $0x44e
40af98:	ff b7 f4 51 41 00    	push   0x4151f4(%edi)
40af9e:	8b ce                	mov    %esi,%ecx
40afa0:	e8 d1 fd ff ff       	call   0x40ad76
40afa5:	68 67 04 00 00       	push   $0x467
40afaa:	ff b7 f8 51 41 00    	push   0x4151f8(%edi)
40afb0:	8b ce                	mov    %esi,%ecx
40afb2:	e8 bf fd ff ff       	call   0x40ad76
40afb7:	68 6b 04 00 00       	push   $0x46b
40afbc:	ff b7 fc 51 41 00    	push   0x4151fc(%edi)
40afc2:	8b ce                	mov    %esi,%ecx
40afc4:	e8 ad fd ff ff       	call   0x40ad76
40afc9:	8b 45 fc             	mov    -0x4(%ebp),%eax
40afcc:	83 f8 0d             	cmp    $0xd,%eax
40afcf:	75 6c                	jne    0x40b03d
40afd1:	8b 0d 18 98 41 00    	mov    0x419818,%ecx
40afd7:	81 f9 13 00 02 00    	cmp    $0x20013,%ecx
40afdd:	74 0c                	je     0x40afeb
40afdf:	81 f9 11 00 02 00    	cmp    $0x20011,%ecx
40afe5:	0f 85 ae 01 00 00    	jne    0x40b199
40afeb:	6a 01                	push   $0x1
40afed:	68 4c 04 00 00       	push   $0x44c
40aff2:	8b ce                	mov    %esi,%ecx
40aff4:	e8 03 1d 00 00       	call   0x40ccfc
40aff9:	6a 00                	push   $0x0
40affb:	68 4d 04 00 00       	push   $0x44d
40b000:	8b ce                	mov    %esi,%ecx
40b002:	e8 f5 1c 00 00       	call   0x40ccfc
40b007:	6a 00                	push   $0x0
40b009:	68 4e 04 00 00       	push   $0x44e
40b00e:	8b ce                	mov    %esi,%ecx
40b010:	e8 e7 1c 00 00       	call   0x40ccfc
40b015:	6a 00                	push   $0x0
40b017:	68 67 04 00 00       	push   $0x467
40b01c:	8b ce                	mov    %esi,%ecx
40b01e:	e8 d9 1c 00 00       	call   0x40ccfc
40b023:	6a 00                	push   $0x0
40b025:	68 6b 04 00 00       	push   $0x46b
40b02a:	8b ce                	mov    %esi,%ecx
40b02c:	e8 cb 1c 00 00       	call   0x40ccfc
40b031:	6a 00                	push   $0x0
40b033:	68 4d 04 00 00       	push   $0x44d
40b038:	e9 cb 02 00 00       	jmp    0x40b308
40b03d:	33 c9                	xor    %ecx,%ecx
40b03f:	83 f8 10             	cmp    $0x10,%eax
40b042:	75 49                	jne    0x40b08d
40b044:	39 8e f0 03 00 00    	cmp    %ecx,0x3f0(%esi)
40b04a:	75 0d                	jne    0x40b059
40b04c:	83 3d ac 53 41 00 02 	cmpl   $0x2,0x4153ac
40b053:	0f 85 42 01 00 00    	jne    0x40b19b
40b059:	51                   	push   %ecx
40b05a:	68 4c 04 00 00       	push   $0x44c
40b05f:	8b ce                	mov    %esi,%ecx
40b061:	e8 96 1c 00 00       	call   0x40ccfc
40b066:	6a 01                	push   $0x1
40b068:	68 4d 04 00 00       	push   $0x44d
40b06d:	8b ce                	mov    %esi,%ecx
40b06f:	e8 88 1c 00 00       	call   0x40ccfc
40b074:	6a 00                	push   $0x0
40b076:	68 4c 04 00 00       	push   $0x44c
40b07b:	ff 76 04             	push   0x4(%esi)
40b07e:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b084:	50                   	push   %eax
40b085:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b08b:	eb a4                	jmp    0x40b031
40b08d:	83 f8 0f             	cmp    $0xf,%eax
40b090:	0f 85 ba 00 00 00    	jne    0x40b150
40b096:	39 8e f0 03 00 00    	cmp    %ecx,0x3f0(%esi)
40b09c:	0f 84 f9 00 00 00    	je     0x40b19b
40b0a2:	6a 01                	push   $0x1
40b0a4:	68 4c 04 00 00       	push   $0x44c
40b0a9:	8b ce                	mov    %esi,%ecx
40b0ab:	e8 4c 1c 00 00       	call   0x40ccfc
40b0b0:	6a 00                	push   $0x0
40b0b2:	68 4d 04 00 00       	push   $0x44d
40b0b7:	8b ce                	mov    %esi,%ecx
40b0b9:	e8 3e 1c 00 00       	call   0x40ccfc
40b0be:	6a 00                	push   $0x0
40b0c0:	68 4e 04 00 00       	push   $0x44e
40b0c5:	8b ce                	mov    %esi,%ecx
40b0c7:	e8 30 1c 00 00       	call   0x40ccfc
40b0cc:	6a 00                	push   $0x0
40b0ce:	68 67 04 00 00       	push   $0x467
40b0d3:	8b ce                	mov    %esi,%ecx
40b0d5:	e8 22 1c 00 00       	call   0x40ccfc
40b0da:	6a 00                	push   $0x0
40b0dc:	68 6b 04 00 00       	push   $0x46b
40b0e1:	8b ce                	mov    %esi,%ecx
40b0e3:	e8 14 1c 00 00       	call   0x40ccfc
40b0e8:	6a 00                	push   $0x0
40b0ea:	68 4c 04 00 00       	push   $0x44c
40b0ef:	ff 76 04             	push   0x4(%esi)
40b0f2:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b0f8:	50                   	push   %eax
40b0f9:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b0ff:	6a 00                	push   $0x0
40b101:	68 4d 04 00 00       	push   $0x44d
40b106:	ff 76 04             	push   0x4(%esi)
40b109:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b10f:	50                   	push   %eax
40b110:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b116:	6a 00                	push   $0x0
40b118:	68 4e 04 00 00       	push   $0x44e
40b11d:	ff 76 04             	push   0x4(%esi)
40b120:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b126:	50                   	push   %eax
40b127:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b12d:	6a 00                	push   $0x0
40b12f:	68 67 04 00 00       	push   $0x467
40b134:	ff 76 04             	push   0x4(%esi)
40b137:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b13d:	50                   	push   %eax
40b13e:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b144:	6a 00                	push   $0x0
40b146:	68 6b 04 00 00       	push   $0x46b
40b14b:	e9 b8 01 00 00       	jmp    0x40b308
40b150:	83 f8 07             	cmp    $0x7,%eax
40b153:	75 46                	jne    0x40b19b
40b155:	83 3d ac 53 41 00 02 	cmpl   $0x2,0x4153ac
40b15c:	75 3d                	jne    0x40b19b
40b15e:	39 4e 14             	cmp    %ecx,0x14(%esi)
40b161:	74 38                	je     0x40b19b
40b163:	6a 01                	push   $0x1
40b165:	68 4c 04 00 00       	push   $0x44c
40b16a:	8b ce                	mov    %esi,%ecx
40b16c:	e8 8b 1b 00 00       	call   0x40ccfc
40b171:	6a 00                	push   $0x0
40b173:	68 4d 04 00 00       	push   $0x44d