40ad0c:	68 04 40 40 00       	push   $0x404004
40ad11:	50                   	push   %eax
40ad12:	8b 71 08             	mov    0x8(%ecx),%esi
40ad15:	e8 6d a6 ff ff       	call   0x405387
40ad1a:	39 30                	cmp    %esi,(%eax)
40ad1c:	75 3f                	jne    0x40ad5d
40ad1e:	8b 4f 08             	mov    0x8(%edi),%ecx
40ad21:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ad24:	68 c4 40 40 00       	push   $0x4040c4
40ad29:	68 50 2f 40 00       	push   $0x402f50
40ad2e:	50                   	push   %eax
40ad2f:	8b 71 08             	mov    0x8(%ecx),%esi
40ad32:	e8 50 a6 ff ff       	call   0x405387
40ad37:	39 30                	cmp    %esi,(%eax)
40ad39:	75 22                	jne    0x40ad5d
40ad3b:	8b 4f 08             	mov    0x8(%edi),%ecx
40ad3e:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ad41:	68 e8 40 40 00       	push   $0x4040e8
40ad46:	68 cc 40 40 00       	push   $0x4040cc
40ad4b:	50                   	push   %eax
40ad4c:	8b 71 08             	mov    0x8(%ecx),%esi
40ad4f:	e8 33 a6 ff ff       	call   0x405387
40ad54:	39 30                	cmp    %esi,(%eax)
40ad56:	75 05                	jne    0x40ad5d
40ad58:	5f                   	pop    %edi
40ad59:	5e                   	pop    %esi
40ad5a:	5b                   	pop    %ebx
40ad5b:	c9                   	leave
40ad5c:	c3                   	ret
40ad5d:	6a 21                	push   $0x21
40ad5f:	5a                   	pop    %edx
40ad60:	6a 57                	push   $0x57
40ad62:	59                   	pop    %ecx
40ad63:	e8 7b c8 ff ff       	call   0x4075e3
40ad68:	cc                   	int3
40ad69:	6a 18                	push   $0x18
40ad6b:	b8 82 f1 40 00       	mov    $0x40f182,%eax
40ad70:	e8 d9 38 00 00       	call   0x40e64e
40ad75:	33 db                	xor    %ebx,%ebx
40ad77:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40ad7a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ad7d:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40ad80:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40ad83:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ad86:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ad89:	8d 55 dc             	lea    -0x24(%ebp),%edx
40ad8c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40ad90:	e8 25 28 00 00       	call   0x40d5ba
40ad95:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40ad98:	8d 55 e8             	lea    -0x18(%ebp),%edx
40ad9b:	e8 d4 cc ff ff       	call   0x407a74
40ada0:	85 c0                	test   %eax,%eax
40ada2:	0f 88 52 01 00 00    	js     0x40aefa
40ada8:	0f 85 48 01 00 00    	jne    0x40aef6
40adae:	8b 75 e8             	mov    -0x18(%ebp),%esi
40adb1:	ff 75 0c             	push   0xc(%ebp)
40adb4:	56                   	push   %esi
40adb5:	8b 06                	mov    (%esi),%eax
40adb7:	8b b8 b4 00 00 00    	mov    0xb4(%eax),%edi
40adbd:	8b cf                	mov    %edi,%ecx
40adbf:	ff 15 10 22 41 00    	call   *0x412210
40adc5:	ff d7                	call   *%edi
40adc7:	85 c0                	test   %eax,%eax
40adc9:	0f 88 36 01 00 00    	js     0x40af05
40adcf:	0f 85 21 01 00 00    	jne    0x40aef6
40add5:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40add8:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40addb:	8b 45 0c             	mov    0xc(%ebp),%eax
40adde:	8d 55 ec             	lea    -0x14(%ebp),%edx
40ade1:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40ade5:	52                   	push   %edx
40ade6:	8b 00                	mov    (%eax),%eax
40ade8:	50                   	push   %eax
40ade9:	8b 08                	mov    (%eax),%ecx
40adeb:	8b 79 1c             	mov    0x1c(%ecx),%edi
40adee:	8b cf                	mov    %edi,%ecx
40adf0:	ff 15 10 22 41 00    	call   *0x412210
40adf6:	ff d7                	call   *%edi
40adf8:	85 c0                	test   %eax,%eax
40adfa:	79 07                	jns    0x40ae03
40adfc:	6a 03                	push   $0x3
40adfe:	e9 04 01 00 00       	jmp    0x40af07
40ae03:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ae06:	b9 b4 41 40 00       	mov    $0x4041b4,%ecx
40ae0b:	66 8b 10             	mov    (%eax),%dx
40ae0e:	66 3b 11             	cmp    (%ecx),%dx
40ae11:	75 1e                	jne    0x40ae31
40ae13:	66 85 d2             	test   %dx,%dx
40ae16:	74 15                	je     0x40ae2d
40ae18:	66 8b 50 02          	mov    0x2(%eax),%dx
40ae1c:	66 3b 51 02          	cmp    0x2(%ecx),%dx
40ae20:	75 0f                	jne    0x40ae31
40ae22:	83 c0 04             	add    $0x4,%eax
40ae25:	83 c1 04             	add    $0x4,%ecx
40ae28:	66 85 d2             	test   %dx,%dx
40ae2b:	75 de                	jne    0x40ae0b
40ae2d:	8b c3                	mov    %ebx,%eax
40ae2f:	eb 05                	jmp    0x40ae36
40ae31:	1b c0                	sbb    %eax,%eax
40ae33:	83 c8 01             	or     $0x1,%eax
40ae36:	85 c0                	test   %eax,%eax
40ae38:	0f 85 ae 00 00 00    	jne    0x40aeec
40ae3e:	8b 45 0c             	mov    0xc(%ebp),%eax
40ae41:	8d 55 f0             	lea    -0x10(%ebp),%edx
40ae44:	52                   	push   %edx
40ae45:	8b 00                	mov    (%eax),%eax
40ae47:	50                   	push   %eax
40ae48:	8b 08                	mov    (%eax),%ecx
40ae4a:	8b b9 9c 00 00 00    	mov    0x9c(%ecx),%edi
40ae50:	8b cf                	mov    %edi,%ecx
40ae52:	ff 15 10 22 41 00    	call   *0x412210
40ae58:	ff d7                	call   *%edi
40ae5a:	85 c0                	test   %eax,%eax
40ae5c:	78 9e                	js     0x40adfc
40ae5e:	83 f8 01             	cmp    $0x1,%eax
40ae61:	0f 84 85 00 00 00    	je     0x40aeec
40ae67:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40ae6b:	74 7f                	je     0x40aeec
40ae6d:	ff 75 f0             	push   -0x10(%ebp)
40ae70:	ff 15 04 40 41 00    	call   *0x414004
40ae76:	85 c0                	test   %eax,%eax
40ae78:	74 72                	je     0x40aeec
40ae7a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ae7d:	b9 d0 41 40 00       	mov    $0x4041d0,%ecx
40ae82:	6a 04                	push   $0x4
40ae84:	5f                   	pop    %edi
40ae85:	66 8b 10             	mov    (%eax),%dx
40ae88:	66 3b 11             	cmp    (%ecx),%dx
40ae8b:	75 1a                	jne    0x40aea7
40ae8d:	66 85 d2             	test   %dx,%dx
40ae90:	74 1a                	je     0x40aeac
40ae92:	66 8b 50 02          	mov    0x2(%eax),%dx
40ae96:	66 3b 51 02          	cmp    0x2(%ecx),%dx
40ae9a:	75 0b                	jne    0x40aea7
40ae9c:	03 c7                	add    %edi,%eax
40ae9e:	03 cf                	add    %edi,%ecx
40aea0:	66 85 d2             	test   %dx,%dx
40aea3:	75 e0                	jne    0x40ae85
40aea5:	eb 05                	jmp    0x40aeac
40aea7:	1b db                	sbb    %ebx,%ebx
40aea9:	83 cb 01             	or     $0x1,%ebx
40aeac:	85 db                	test   %ebx,%ebx
40aeae:	75 3c                	jne    0x40aeec
40aeb0:	ff 75 f0             	push   -0x10(%ebp)
40aeb3:	ff 15 0c 40 41 00    	call   *0x41400c
40aeb9:	ff 75 ec             	push   -0x14(%ebp)
40aebc:	ff 15 0c 40 41 00    	call   *0x41400c
40aec2:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40aec5:	74 0a                	je     0x40aed1
40aec7:	ff 75 dc             	push   -0x24(%ebp)
40aeca:	ff 15 e4 21 41 00    	call   *0x4121e4
40aed0:	59                   	pop    %ecx
40aed1:	89 7d fc             	mov    %edi,-0x4(%ebp)
40aed4:	8b 06                	mov    (%esi),%eax
40aed6:	56                   	push   %esi
40aed7:	8b 70 08             	mov    0x8(%eax),%esi
40aeda:	8b ce                	mov    %esi,%ecx
40aedc:	ff 15 10 22 41 00    	call   *0x412210
40aee2:	ff d6                	call   *%esi
40aee4:	e8 33 37 00 00       	call   0x40e61c
40aee9:	c2 08 00             	ret    $0x8
40aeec:	6a 24                	push   $0x24
40aeee:	5a                   	pop    %edx
40aeef:	b9 57 00 07 80       	mov    $0x80070057,%ecx
40aef4:	eb 14                	jmp    0x40af0a
40aef6:	6a 04                	push   $0x4
40aef8:	eb f4                	jmp    0x40aeee
40aefa:	ff 75 08             	push   0x8(%ebp)
40aefd:	6a 03                	push   $0x3
40aeff:	50                   	push   %eax
40af00:	e8 10 c7 ff ff       	call   0x407615
40af05:	6a 04                	push   $0x4
40af07:	5a                   	pop    %edx
40af08:	8b c8                	mov    %eax,%ecx
40af0a:	e8 d4 c6 ff ff       	call   0x4075e3
40af0f:	cc                   	int3
40af10:	6a 08                	push   $0x8
40af12:	b8 a5 f1 40 00       	mov    $0x40f1a5,%eax
40af17:	e8 32 37 00 00       	call   0x40e64e
40af1c:	33 db                	xor    %ebx,%ebx
40af1e:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40af21:	8d 45 f3             	lea    -0xd(%ebp),%eax
40af24:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40af27:	8b 49 08             	mov    0x8(%ecx),%ecx
40af2a:	be 7c 24 40 00       	mov    $0x40247c,%esi
40af2f:	50                   	push   %eax
40af30:	56                   	push   %esi
40af31:	ff 75 0c             	push   0xc(%ebp)
40af34:	88 5d f3             	mov    %bl,-0xd(%ebp)
40af37:	ff 75 08             	push   0x8(%ebp)
40af3a:	e8 0b ba ff ff       	call   0x40694a
40af3f:	8b 4d 18             	mov    0x18(%ebp),%ecx
40af42:	50                   	push   %eax
40af43:	e8 59 b5 ff ff       	call   0x4064a1
40af48:	38 5d f3             	cmp    %bl,-0xd(%ebp)
40af4b:	74 04                	je     0x40af51
40af4d:	b3 01                	mov    $0x1,%bl
40af4f:	eb 20                	jmp    0x40af71
40af51:	8b 4d 10             	mov    0x10(%ebp),%ecx
40af54:	85 c9                	test   %ecx,%ecx
40af56:	74 54                	je     0x40afac
40af58:	8b 55 14             	mov    0x14(%ebp),%edx
40af5b:	85 d2                	test   %edx,%edx
40af5d:	74 4d                	je     0x40afac
40af5f:	8d 45 ec             	lea    -0x14(%ebp),%eax
40af62:	50                   	push   %eax
40af63:	e8 de cc ff ff       	call   0x407c46
40af68:	85 c0                	test   %eax,%eax
40af6a:	78 53                	js     0x40afbf
40af6c:	83 f8 01             	cmp    $0x1,%eax
40af6f:	75 0d                	jne    0x40af7e
40af71:	ff 75 ec             	push   -0x14(%ebp)
40af74:	ff 15 0c 40 41 00    	call   *0x41400c
40af7a:	8a c3                	mov    %bl,%al
40af7c:	eb 39                	jmp    0x40afb7
40af7e:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40af82:	74 12                	je     0x40af96
40af84:	ff 75 ec             	push   -0x14(%ebp)
40af87:	ff 15 04 40 41 00    	call   *0x414004
40af8d:	85 c0                	test   %eax,%eax
40af8f:	74 05                	je     0x40af96
40af91:	ff 75 ec             	push   -0x14(%ebp)
40af94:	eb 01                	jmp    0x40af97
40af96:	56                   	push   %esi
40af97:	8b 4d 18             	mov    0x18(%ebp),%ecx
40af9a:	e8 02 b5 ff ff       	call   0x4064a1
40af9f:	ff 75 ec             	push   -0x14(%ebp)
40afa2:	ff 15 0c 40 41 00    	call   *0x41400c
40afa8:	b0 01                	mov    $0x1,%al
40afaa:	eb 0b                	jmp    0x40afb7
40afac:	ff 75 ec             	push   -0x14(%ebp)
40afaf:	ff 15 0c 40 41 00    	call   *0x41400c
40afb5:	32 c0                	xor    %al,%al
40afb7:	e8 60 36 00 00       	call   0x40e61c
40afbc:	c2 14 00             	ret    $0x14
40afbf:	6a 05                	push   $0x5
40afc1:	5a                   	pop    %edx
40afc2:	8b c8                	mov    %eax,%ecx
40afc4:	e8 1a c6 ff ff       	call   0x4075e3
40afc9:	cc                   	int3
40afca:	6a 08                	push   $0x8
40afcc:	b8 a5 f1 40 00       	mov    $0x40f1a5,%eax
40afd1:	e8 78 36 00 00       	call   0x40e64e
40afd6:	33 db                	xor    %ebx,%ebx
40afd8:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40afdb:	8d 45 f3             	lea    -0xd(%ebp),%eax
40afde:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40afe1:	8b 49 08             	mov    0x8(%ecx),%ecx
40afe4:	bf 7c 24 40 00       	mov    $0x40247c,%edi
40afe9:	50                   	push   %eax
40afea:	57                   	push   %edi
40afeb:	ff 75 0c             	push   0xc(%ebp)
40afee:	88 5d f3             	mov    %bl,-0xd(%ebp)
40aff1:	ff 75 08             	push   0x8(%ebp)
40aff4:	e8 51 b9 ff ff       	call   0x40694a
40aff9:	8b 4d 18             	mov    0x18(%ebp),%ecx
40affc:	50                   	push   %eax
40affd:	e8 9f b4 ff ff       	call   0x4064a1
40b002:	38 5d f3             	cmp    %bl,-0xd(%ebp)
40b005:	74 0b                	je     0x40b012
40b007:	53                   	push   %ebx
40b008:	ff 15 0c 40 41 00    	call   *0x41400c
40b00e:	b0 01                	mov    $0x1,%al
40b010:	eb 50                	jmp    0x40b062
40b012:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b015:	85 c9                	test   %ecx,%ecx
40b017:	74 40                	je     0x40b059
40b019:	8b 55 14             	mov    0x14(%ebp),%edx
40b01c:	85 d2                	test   %edx,%edx
40b01e:	74 39                	je     0x40b059
40b020:	8d 45 ec             	lea    -0x14(%ebp),%eax
40b023:	50                   	push   %eax
40b024:	51                   	push   %ecx
40b025:	e8 7f cc ff ff       	call   0x407ca9
40b02a:	85 c0                	test   %eax,%eax
40b02c:	78 3c                	js     0x40b06a
40b02e:	83 f8 01             	cmp    $0x1,%eax
40b031:	75 05                	jne    0x40b038
40b033:	ff 75 ec             	push   -0x14(%ebp)
40b036:	eb 22                	jmp    0x40b05a
40b038:	8b 75 ec             	mov    -0x14(%ebp),%esi
40b03b:	85 f6                	test   %esi,%esi
40b03d:	74 0e                	je     0x40b04d
40b03f:	56                   	push   %esi
40b040:	ff 15 04 40 41 00    	call   *0x414004
40b046:	85 c0                	test   %eax,%eax
40b048:	74 03                	je     0x40b04d
40b04a:	56                   	push   %esi
40b04b:	eb 01                	jmp    0x40b04e
40b04d:	57                   	push   %edi
40b04e:	8b 4d 18             	mov    0x18(%ebp),%ecx
40b051:	e8 4b b4 ff ff       	call   0x4064a1
40b056:	56                   	push   %esi
40b057:	eb af                	jmp    0x40b008
40b059:	53                   	push   %ebx
40b05a:	ff 15 0c 40 41 00    	call   *0x41400c
40b060:	32 c0                	xor    %al,%al
40b062:	e8 b5 35 00 00       	call   0x40e61c
40b067:	c2 14 00             	ret    $0x14
40b06a:	6a 05                	push   $0x5
40b06c:	5a                   	pop    %edx
40b06d:	8b c8                	mov    %eax,%ecx
40b06f:	e8 6f c5 ff ff       	call   0x4075e3
40b074:	cc                   	int3
40b075:	6a 3c                	push   $0x3c
40b077:	b8 c8 f1 40 00       	mov    $0x40f1c8,%eax
40b07c:	e8 00 36 00 00       	call   0x40e681
40b081:	8b f1                	mov    %ecx,%esi
40b083:	8b 45 08             	mov    0x8(%ebp),%eax
40b086:	33 c9                	xor    %ecx,%ecx
40b088:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b08b:	8b 5d 10             	mov    0x10(%ebp),%ebx
40b08e:	89 45 c8             	mov    %eax,-0x38(%ebp)
40b091:	8b 45 14             	mov    0x14(%ebp),%eax
40b094:	89 45 cc             	mov    %eax,-0x34(%ebp)
40b097:	8b 45 18             	mov    0x18(%ebp),%eax
40b09a:	89 45 d0             	mov    %eax,-0x30(%ebp)
40b09d:	33 c0                	xor    %eax,%eax
40b09f:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b0a6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40b0a9:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40b0ad:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b0b0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b0b3:	50                   	push   %eax
40b0b4:	6a 01                	push   $0x1
40b0b6:	53                   	push   %ebx
40b0b7:	88 4d d7             	mov    %cl,-0x29(%ebp)
40b0ba:	8b 4e 08             	mov    0x8(%esi),%ecx
40b0bd:	57                   	push   %edi
40b0be:	e8 e8 b8 ff ff       	call   0x4069ab
40b0c3:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)
40b0c7:	74 0c                	je     0x40b0d5
40b0c9:	33 c9                	xor    %ecx,%ecx
40b0cb:	84 c0                	test   %al,%al
40b0cd:	0f 95 c1             	setne  %cl
40b0d0:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40b0d3:	eb 71                	jmp    0x40b146
40b0d5:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b0d8:	8b ce                	mov    %esi,%ecx
40b0da:	50                   	push   %eax
40b0db:	ff 75 d0             	push   -0x30(%ebp)
40b0de:	ff 75 cc             	push   -0x34(%ebp)
40b0e1:	53                   	push   %ebx
40b0e2:	57                   	push   %edi
40b0e3:	e8 28 fe ff ff       	call   0x40af10
40b0e8:	84 c0                	test   %al,%al
40b0ea:	0f 84 82 00 00 00    	je     0x40b172
40b0f0:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b0f4:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b0f7:	73 03                	jae    0x40b0fc