40a9fc:	8b df                	mov    %edi,%ebx
40a9fe:	8b d7                	mov    %edi,%edx
40aa00:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40aa04:	89 54 24 20          	mov    %edx,0x20(%esp)
40aa08:	0f b7 04 51          	movzwl (%ecx,%edx,2),%eax
40aa0c:	66 85 c0             	test   %ax,%ax
40aa0f:	0f 84 a5 00 00 00    	je     0x40aaba
40aa15:	39 7c 24 0c          	cmp    %edi,0xc(%esp)
40aa19:	74 7e                	je     0x40aa99
40aa1b:	8d 8c 24 98 02 00 00 	lea    0x298(%esp),%ecx
40aa22:	51                   	push   %ecx
40aa23:	50                   	push   %eax
40aa24:	ff 15 bc 30 43 00    	call   *0x4330bc
40aa2a:	8d 84 24 98 02 00 00 	lea    0x298(%esp),%eax
40aa31:	50                   	push   %eax
40aa32:	ff 15 dc 33 43 00    	call   *0x4333dc
40aa38:	8b 44 24 10          	mov    0x10(%esp),%eax
40aa3c:	8b df                	mov    %edi,%ebx
40aa3e:	59                   	pop    %ecx
40aa3f:	85 c0                	test   %eax,%eax
40aa41:	7e 48                	jle    0x40aa8b
40aa43:	8d 8c 24 98 04 00 00 	lea    0x498(%esp),%ecx
40aa4a:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40aa4e:	51                   	push   %ecx
40aa4f:	8d 84 24 9c 02 00 00 	lea    0x29c(%esp),%eax
40aa56:	50                   	push   %eax
40aa57:	ff 15 ec 33 43 00    	call   *0x4333ec
40aa5d:	59                   	pop    %ecx
40aa5e:	85 c0                	test   %eax,%eax
40aa60:	8b 44 24 10          	mov    0x10(%esp),%eax
40aa64:	59                   	pop    %ecx
40aa65:	74 10                	je     0x40aa77
40aa67:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40aa6b:	43                   	inc    %ebx
40aa6c:	83 c1 40             	add    $0x40,%ecx
40aa6f:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40aa73:	3b d8                	cmp    %eax,%ebx
40aa75:	7c d7                	jl     0x40aa4e
40aa77:	3b d8                	cmp    %eax,%ebx
40aa79:	7d 10                	jge    0x40aa8b
40aa7b:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40aa81:	8b 54 24 20          	mov    0x20(%esp),%edx
40aa85:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40aa89:	eb 1b                	jmp    0x40aaa6
40aa8b:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40aa91:	8b 54 24 20          	mov    0x20(%esp),%edx
40aa95:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40aa99:	66 8b 04 51          	mov    (%ecx,%edx,2),%ax
40aa9d:	66 89 04 59          	mov    %ax,(%ecx,%ebx,2)
40aaa1:	43                   	inc    %ebx
40aaa2:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40aaa6:	0f b7 05 38 13 41 00 	movzwl 0x411338,%eax
40aaad:	42                   	inc    %edx
40aaae:	89 54 24 20          	mov    %edx,0x20(%esp)
40aab2:	3b d0                	cmp    %eax,%edx
40aab4:	0f 8e 4e ff ff ff    	jle    0x40aa08
40aaba:	33 c0                	xor    %eax,%eax
40aabc:	89 35 78 26 43 00    	mov    %esi,0x432678
40aac2:	66 89 04 59          	mov    %ax,(%ecx,%ebx,2)
40aac6:	8d 43 ff             	lea    -0x1(%ebx),%eax
40aac9:	66 a3 38 13 41 00    	mov    %ax,0x411338
40aacf:	b8 00 01 00 00       	mov    $0x100,%eax
40aad4:	50                   	push   %eax
40aad5:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
40aadc:	89 35 74 26 43 00    	mov    %esi,0x432674
40aae2:	50                   	push   %eax
40aae3:	68 95 01 00 00       	push   $0x195
40aae8:	ff 35 0c 19 41 00    	push   0x41190c
40aaee:	ff 15 20 33 43 00    	call   *0x433320
40aaf4:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
40aafb:	50                   	push   %eax
40aafc:	68 85 00 00 00       	push   $0x85
40ab01:	ff 35 10 19 43 00    	push   0x431910
40ab07:	ff 15 10 32 43 00    	call   *0x433210
40ab0d:	8b 9c 24 88 00 00 00 	mov    0x88(%esp),%ebx
40ab14:	56                   	push   %esi
40ab15:	68 85 00 00 00       	push   $0x85
40ab1a:	53                   	push   %ebx
40ab1b:	ff 15 14 33 43 00    	call   *0x433314
40ab21:	50                   	push   %eax
40ab22:	ff 15 14 32 43 00    	call   *0x433214
40ab28:	8b 0d 14 19 43 00    	mov    0x431914,%ecx
40ab2e:	ba 70 1f 43 00       	mov    $0x431f70,%edx
40ab33:	e8 3b 31 00 00       	call   0x40dc73
40ab38:	33 c0                	xor    %eax,%eax
40ab3a:	33 d2                	xor    %edx,%edx
40ab3c:	8b cb                	mov    %ebx,%ecx
40ab3e:	66 a3 c4 1f 43 00    	mov    %ax,0x431fc4
40ab44:	e8 fe 2a 00 00       	call   0x40d647
40ab49:	ff 35 10 19 43 00    	push   0x431910
40ab4f:	ff 15 f0 32 43 00    	call   *0x4332f0
40ab55:	8b 15 c4 1f 43 00    	mov    0x431fc4,%edx
40ab5b:	33 db                	xor    %ebx,%ebx
40ab5d:	8b f0                	mov    %eax,%esi
40ab5f:	43                   	inc    %ebx
40ab60:	53                   	push   %ebx
40ab61:	8b ce                	mov    %esi,%ecx
40ab63:	e8 b6 27 00 00       	call   0x40d31e
40ab68:	53                   	push   %ebx
40ab69:	57                   	push   %edi
40ab6a:	ff 35 14 19 43 00    	push   0x431914
40ab70:	ff 15 fc 31 43 00    	call   *0x4331fc
40ab76:	56                   	push   %esi
40ab77:	ff 35 10 19 43 00    	push   0x431910
40ab7d:	ff 15 08 33 43 00    	call   *0x433308
40ab83:	e9 d7 06 00 00       	jmp    0x40b25f
40ab88:	ff 15 b0 32 43 00    	call   *0x4332b0
40ab8e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40ab92:	3b c8                	cmp    %eax,%ecx
40ab94:	0f 85 c5 06 00 00    	jne    0x40b25f
40ab9a:	33 f6                	xor    %esi,%esi
40ab9c:	46                   	inc    %esi
40ab9d:	39 35 78 26 43 00    	cmp    %esi,0x432678
40aba3:	75 06                	jne    0x40abab
40aba5:	89 35 74 26 43 00    	mov    %esi,0x432674
40abab:	bf 00 01 00 00       	mov    $0x100,%edi
40abb0:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
40abb7:	57                   	push   %edi
40abb8:	50                   	push   %eax
40abb9:	51                   	push   %ecx
40abba:	ff 15 50 32 43 00    	call   *0x433250
40abc0:	57                   	push   %edi
40abc1:	8d 84 24 9c 02 00 00 	lea    0x29c(%esp),%eax
40abc8:	50                   	push   %eax
40abc9:	8d 84 24 a0 00 00 00 	lea    0xa0(%esp),%eax
40abd0:	68 2c 18 40 00       	push   $0x40182c
40abd5:	50                   	push   %eax
40abd6:	ff 15 e0 33 43 00    	call   *0x4333e0
40abdc:	83 c4 10             	add    $0x10,%esp
40abdf:	85 c0                	test   %eax,%eax
40abe1:	7e 4d                	jle    0x40ac30
40abe3:	83 3d 78 26 43 00 00 	cmpl   $0x0,0x432678
40abea:	75 44                	jne    0x40ac30
40abec:	57                   	push   %edi
40abed:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
40abf4:	50                   	push   %eax
40abf5:	68 93 01 00 00       	push   $0x193
40abfa:	ff 35 0c 19 41 00    	push   0x41190c
40ac00:	ff 15 20 33 43 00    	call   *0x433320
40ac06:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
40ac0d:	83 c7 85             	add    $0xffffff85,%edi
40ac10:	50                   	push   %eax
40ac11:	57                   	push   %edi
40ac12:	53                   	push   %ebx
40ac13:	ff 15 10 32 43 00    	call   *0x433210
40ac19:	56                   	push   %esi
40ac1a:	57                   	push   %edi
40ac1b:	53                   	push   %ebx
40ac1c:	ff 15 14 33 43 00    	call   *0x433314
40ac22:	50                   	push   %eax
40ac23:	ff 15 14 32 43 00    	call   *0x433214
40ac29:	8b d6                	mov    %esi,%edx
40ac2b:	e9 b1 fb ff ff       	jmp    0x40a7e1
40ac30:	83 3d 74 26 43 00 00 	cmpl   $0x0,0x432674
40ac37:	57                   	push   %edi
40ac38:	75 4b                	jne    0x40ac85
40ac3a:	8d 84 24 9c 00 00 00 	lea    0x9c(%esp),%eax
40ac41:	50                   	push   %eax
40ac42:	68 93 01 00 00       	push   $0x193
40ac47:	ff 35 0c 19 41 00    	push   0x41190c
40ac4d:	ff 15 20 33 43 00    	call   *0x433320
40ac53:	8d 84 24 98 00 00 00 	lea    0x98(%esp),%eax
40ac5a:	bf 85 00 00 00       	mov    $0x85,%edi
40ac5f:	50                   	push   %eax
40ac60:	57                   	push   %edi
40ac61:	53                   	push   %ebx
40ac62:	ff 15 10 32 43 00    	call   *0x433210
40ac68:	33 f6                	xor    %esi,%esi
40ac6a:	56                   	push   %esi
40ac6b:	57                   	push   %edi
40ac6c:	53                   	push   %ebx
40ac6d:	ff 15 14 33 43 00    	call   *0x433314
40ac73:	50                   	push   %eax
40ac74:	ff 15 14 32 43 00    	call   *0x433214
40ac7a:	89 35 78 26 43 00    	mov    %esi,0x432678
40ac80:	e9 5a fb ff ff       	jmp    0x40a7df
40ac85:	8d 84 24 9c 02 00 00 	lea    0x29c(%esp),%eax
40ac8c:	50                   	push   %eax
40ac8d:	68 95 01 00 00       	push   $0x195
40ac92:	ff 35 0c 19 41 00    	push   0x41190c
40ac98:	ff 15 20 33 43 00    	call   *0x433320
40ac9e:	8d 84 24 98 02 00 00 	lea    0x298(%esp),%eax
40aca5:	bf 85 00 00 00       	mov    $0x85,%edi
40acaa:	50                   	push   %eax
40acab:	57                   	push   %edi
40acac:	53                   	push   %ebx
40acad:	ff 15 10 32 43 00    	call   *0x433210
40acb3:	56                   	push   %esi
40acb4:	57                   	push   %edi
40acb5:	53                   	push   %ebx
40acb6:	ff 15 14 33 43 00    	call   *0x433314
40acbc:	50                   	push   %eax
40acbd:	ff 15 14 32 43 00    	call   *0x433214
40acc3:	83 25 74 26 43 00 00 	andl   $0x0,0x432674
40acca:	89 35 78 26 43 00    	mov    %esi,0x432678
40acd0:	e9 8a 05 00 00       	jmp    0x40b25f
40acd5:	c1 ef 10             	shr    $0x10,%edi
40acd8:	66 83 ff 01          	cmp    $0x1,%di
40acdc:	0f 85 7d 05 00 00    	jne    0x40b25f
40ace2:	8b 0d 14 19 43 00    	mov    0x431914,%ecx
40ace8:	ba 70 1f 43 00       	mov    $0x431f70,%edx
40aced:	e8 81 2f 00 00       	call   0x40dc73
40acf2:	56                   	push   %esi
40acf3:	33 c0                	xor    %eax,%eax
40acf5:	53                   	push   %ebx
40acf6:	66 a3 c4 1f 43 00    	mov    %ax,0x431fc4
40acfc:	ff 15 14 33 43 00    	call   *0x433314
40ad02:	85 c0                	test   %eax,%eax
40ad04:	0f 84 55 05 00 00    	je     0x40b25f
40ad0a:	8b c8                	mov    %eax,%ecx
40ad0c:	e8 ca 90 ff ff       	call   0x403ddb
40ad11:	8b f8                	mov    %eax,%edi
40ad13:	85 ff                	test   %edi,%edi
40ad15:	0f 84 44 05 00 00    	je     0x40b25f
40ad1b:	33 f6                	xor    %esi,%esi
40ad1d:	33 d2                	xor    %edx,%edx
40ad1f:	56                   	push   %esi
40ad20:	8b cf                	mov    %edi,%ecx
40ad22:	e8 b6 c0 ff ff       	call   0x406ddd
40ad27:	85 c0                	test   %eax,%eax
40ad29:	0f 84 30 05 00 00    	je     0x40b25f
40ad2f:	51                   	push   %ecx
40ad30:	56                   	push   %esi
40ad31:	56                   	push   %esi
40ad32:	56                   	push   %esi
40ad33:	8b d0                	mov    %eax,%edx
40ad35:	33 c9                	xor    %ecx,%ecx
40ad37:	e8 90 91 ff ff       	call   0x403ecc
40ad3c:	a3 48 26 43 00       	mov    %eax,0x432648
40ad41:	85 c0                	test   %eax,%eax
40ad43:	0f 84 16 05 00 00    	je     0x40b25f
40ad49:	ff 35 44 26 43 00    	push   0x432644
40ad4f:	8b d0                	mov    %eax,%edx
40ad51:	8b cf                	mov    %edi,%ecx
40ad53:	e8 85 c0 ff ff       	call   0x406ddd
40ad58:	ff 35 48 26 43 00    	push   0x432648
40ad5e:	ff 15 a8 31 43 00    	call   *0x4331a8
40ad64:	56                   	push   %esi
40ad65:	48                   	dec    %eax
40ad66:	bf 11 01 00 00       	mov    $0x111,%edi
40ad6b:	68 69 00 01 00       	push   $0x10069
40ad70:	66 a3 38 13 41 00    	mov    %ax,0x411338
40ad76:	33 c0                	xor    %eax,%eax
40ad78:	57                   	push   %edi
40ad79:	53                   	push   %ebx
40ad7a:	66 a3 c4 1f 43 00    	mov    %ax,0x431fc4
40ad80:	ff 15 10 33 43 00    	call   *0x433310
40ad86:	33 d2                	xor    %edx,%edx
40ad88:	8b cb                	mov    %ebx,%ecx
40ad8a:	e8 fc 36 00 00       	call   0x40e48b
40ad8f:	39 35 74 26 43 00    	cmp    %esi,0x432674
40ad95:	75 0c                	jne    0x40ada3
40ad97:	39 35 78 26 43 00    	cmp    %esi,0x432678
40ad9d:	0f 84 bc 04 00 00    	je     0x40b25f
40ada3:	56                   	push   %esi
40ada4:	68 85 00 00 00       	push   $0x85
40ada9:	57                   	push   %edi
40adaa:	ff 35 10 19 43 00    	push   0x431910
40adb0:	ff 15 10 33 43 00    	call   *0x433310
40adb6:	e9 a4 04 00 00       	jmp    0x40b25f
40adbb:	6a 6f                	push   $0x6f
40adbd:	ff 35 0c 19 41 00    	push   0x41190c
40adc3:	ff 15 94 32 43 00    	call   *0x433294
40adc9:	50                   	push   %eax
40adca:	6a 01                	push   $0x1
40adcc:	68 80 00 00 00       	push   $0x80
40add1:	53                   	push   %ebx
40add2:	ff 15 10 33 43 00    	call   *0x433310
40add8:	56                   	push   %esi
40add9:	68 a0 9e 40 00       	push   $0x409ea0
40adde:	53                   	push   %ebx
40addf:	ff 15 98 32 43 00    	call   *0x433298
40ade5:	56                   	push   %esi
40ade6:	ff 35 0c 19 41 00    	push   0x41190c
40adec:	68 cc 00 00 00       	push   $0xcc
40adf1:	53                   	push   %ebx
40adf2:	56                   	push   %esi
40adf3:	56                   	push   %esi
40adf4:	56                   	push   %esi
40adf5:	56                   	push   %esi
40adf6:	68 01 00 00 50       	push   $0x50000001
40adfb:	56                   	push   %esi
40adfc:	68 10 15 40 00       	push   $0x401510
40ae01:	56                   	push   %esi
40ae02:	ff 15 e8 31 43 00    	call   *0x4331e8
40ae08:	8d 44 24 28          	lea    0x28(%esp),%eax
40ae0c:	50                   	push   %eax
40ae0d:	53                   	push   %ebx
40ae0e:	ff 15 f0 31 43 00    	call   *0x4331f0
40ae14:	8b 7c 24 30          	mov    0x30(%esp),%edi
40ae18:	b9 68 01 00 00       	mov    $0x168,%ecx
40ae1d:	8b c7                	mov    %edi,%eax
40ae1f:	c7 84 24 88 00 00 00 	movl   $0xa,0x88(%esp)
40ae26:	0a 00 00 00
40ae2a:	99                   	cltd
40ae2b:	f7 f9                	idiv   %ecx
40ae2d:	8b 4c 24 34          	mov    0x34(%esp),%ecx
40ae31:	6b f0 09             	imul   $0x9,%eax,%esi
40ae34:	8b c1                	mov    %ecx,%eax
40ae36:	99                   	cltd
40ae37:	f7 bc 24 88 00 00 00 	idivl  0x88(%esp)
40ae3e:	6a 00                	push   $0x0
40ae40:	ff 35 0c 19 41 00    	push   0x41190c
40ae46:	6b c0 03             	imul   $0x3,%eax,%eax
40ae49:	2b fe                	sub    %esi,%edi
40ae4b:	6a 6c                	push   $0x6c
40ae4d:	53                   	push   %ebx
40ae4e:	33 f6                	xor    %esi,%esi
40ae50:	2b c8                	sub    %eax,%ecx
40ae52:	51                   	push   %ecx
40ae53:	57                   	push   %edi
40ae54:	56                   	push   %esi
40ae55:	56                   	push   %esi
40ae56:	68 00 00 01 50       	push   $0x50010000
40ae5b:	56                   	push   %esi
40ae5c:	68 74 17 40 00       	push   $0x401774
40ae61:	56                   	push   %esi
40ae62:	ff 15 e8 31 43 00    	call   *0x4331e8
40ae68:	a3 14 19 43 00       	mov    %eax,0x431914
40ae6d:	85 c0                	test   %eax,%eax
40ae6f:	75 0c                	jne    0x40ae7d
40ae71:	53                   	push   %ebx
40ae72:	ff 15 00 33 43 00    	call   *0x433300
40ae78:	e9 e2 03 00 00       	jmp    0x40b25f
40ae7d:	8d 4c 24 78          	lea    0x78(%esp),%ecx
40ae81:	51                   	push   %ecx
40ae82:	50                   	push   %eax
40ae83:	ff 15 e0 31 43 00    	call   *0x4331e0
40ae89:	8b 84 24 80 00 00 00 	mov    0x80(%esp),%eax
40ae90:	89 44 24 20          	mov    %eax,0x20(%esp)
40ae94:	8b 44 24 7c          	mov    0x7c(%esp),%eax
40ae98:	89 44 24 24          	mov    %eax,0x24(%esp)
40ae9c:	8d 44 24 20          	lea    0x20(%esp),%eax
40aea0:	50                   	push   %eax
40aea1:	53                   	push   %ebx
40aea2:	ff 15 9c 32 43 00    	call   *0x43329c
40aea8:	8b cb                	mov    %ebx,%ecx
40aeaa:	e8 0c e8 ff ff       	call   0x4096bb
40aeaf:	8b cb                	mov    %ebx,%ecx
40aeb1:	e8 09 2e 00 00       	call   0x40dcbf
40aeb6:	a1 50 26 43 00       	mov    0x432650,%eax
40aebb:	8b ce                	mov    %esi,%ecx
40aebd:	89 8c 24 88 00 00 00 	mov    %ecx,0x88(%esp)
40aec4:	85 c0                	test   %eax,%eax
40aec6:	74 30                	je     0x40aef8
40aec8:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40aecc:	c7 44 24 10 04 00 00 	movl   $0x4,0x10(%esp)
40aed3:	00
40aed4:	51                   	push   %ecx
40aed5:	8d 8c 24 8c 00 00 00 	lea    0x8c(%esp),%ecx