40a8f3:	83 c1 02             	add    $0x2,%ecx
40a8f6:	3b f8                	cmp    %eax,%edi
40a8f8:	75 06                	jne    0x40a900
40a8fa:	8b 96 d8 00 00 00    	mov    0xd8(%esi),%edx
40a900:	3b f9                	cmp    %ecx,%edi
40a902:	75 06                	jne    0x40a90a
40a904:	8b 96 dc 00 00 00    	mov    0xdc(%esi),%edx
40a90a:	8d 41 01             	lea    0x1(%ecx),%eax
40a90d:	83 c1 02             	add    $0x2,%ecx
40a910:	3b f8                	cmp    %eax,%edi
40a912:	75 06                	jne    0x40a91a
40a914:	8b 96 e0 00 00 00    	mov    0xe0(%esi),%edx
40a91a:	85 db                	test   %ebx,%ebx
40a91c:	74 0d                	je     0x40a92b
40a91e:	8b c1                	mov    %ecx,%eax
40a920:	41                   	inc    %ecx
40a921:	3b f8                	cmp    %eax,%edi
40a923:	75 06                	jne    0x40a92b
40a925:	8b 96 e4 00 00 00    	mov    0xe4(%esi),%edx
40a92b:	8b c1                	mov    %ecx,%eax
40a92d:	41                   	inc    %ecx
40a92e:	3b f8                	cmp    %eax,%edi
40a930:	75 06                	jne    0x40a938
40a932:	8b 96 e8 00 00 00    	mov    0xe8(%esi),%edx
40a938:	85 db                	test   %ebx,%ebx
40a93a:	5b                   	pop    %ebx
40a93b:	74 0d                	je     0x40a94a
40a93d:	8b c1                	mov    %ecx,%eax
40a93f:	41                   	inc    %ecx
40a940:	3b f8                	cmp    %eax,%edi
40a942:	75 06                	jne    0x40a94a
40a944:	8b 96 ec 00 00 00    	mov    0xec(%esi),%edx
40a94a:	3b f9                	cmp    %ecx,%edi
40a94c:	75 06                	jne    0x40a954
40a94e:	8b 96 f0 00 00 00    	mov    0xf0(%esi),%edx
40a954:	8d 41 01             	lea    0x1(%ecx),%eax
40a957:	83 c1 02             	add    $0x2,%ecx
40a95a:	3b f8                	cmp    %eax,%edi
40a95c:	75 06                	jne    0x40a964
40a95e:	8b 96 f4 00 00 00    	mov    0xf4(%esi),%edx
40a964:	3b f9                	cmp    %ecx,%edi
40a966:	75 06                	jne    0x40a96e
40a968:	8b 96 f8 00 00 00    	mov    0xf8(%esi),%edx
40a96e:	5f                   	pop    %edi
40a96f:	8b c2                	mov    %edx,%eax
40a971:	5e                   	pop    %esi
40a972:	5d                   	pop    %ebp
40a973:	c2 04 00             	ret    $0x4
40a976:	6a 40                	push   $0x40
40a978:	b8 d1 cc 41 00       	mov    $0x41ccd1,%eax
40a97d:	e8 b6 1a 01 00       	call   0x41c438
40a982:	8b f9                	mov    %ecx,%edi
40a984:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a987:	ff 15 40 32 42 00    	call   *0x423240
40a98d:	33 db                	xor    %ebx,%ebx
40a98f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a992:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a995:	6a 3c                	push   $0x3c
40a997:	53                   	push   %ebx
40a998:	50                   	push   %eax
40a999:	e8 83 1c 01 00       	call   0x41c621
40a99e:	83 c4 0c             	add    $0xc,%esp
40a9a1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a9a4:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40a9a7:	75 07                	jne    0x40a9b0
40a9a9:	68 0c 01 00 00       	push   $0x10c
40a9ae:	eb 05                	jmp    0x40a9b5
40a9b0:	68 0b 01 00 00       	push   $0x10b
40a9b5:	ff 15 74 33 42 00    	call   *0x423374
40a9bb:	8b 45 08             	mov    0x8(%ebp),%eax
40a9be:	53                   	push   %ebx
40a9bf:	53                   	push   %ebx
40a9c0:	68 04 10 00 00       	push   $0x1004
40a9c5:	ff b7 84 01 00 00    	push   0x184(%edi)
40a9cb:	c7 45 b4 05 00 00 00 	movl   $0x5,-0x4c(%ebp)
40a9d2:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40a9d5:	ff 15 40 34 42 00    	call   *0x423440
40a9db:	89 45 b8             	mov    %eax,-0x48(%ebp)
40a9de:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a9e1:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a9e4:	8b 40 f8             	mov    -0x8(%eax),%eax
40a9e7:	40                   	inc    %eax
40a9e8:	50                   	push   %eax
40a9e9:	ff 15 78 33 42 00    	call   *0x423378
40a9ef:	8b 8f 84 01 00 00    	mov    0x184(%edi),%ecx
40a9f5:	85 c0                	test   %eax,%eax
40a9f7:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a9fa:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a9fd:	50                   	push   %eax
40a9fe:	53                   	push   %ebx
40a9ff:	68 4d 10 00 00       	push   $0x104d
40aa04:	51                   	push   %ecx
40aa05:	74 15                	je     0x40aa1c
40aa07:	ff 15 40 34 42 00    	call   *0x423440
40aa0d:	6a ff                	push   $0xffffffff
40aa0f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa12:	8b f0                	mov    %eax,%esi
40aa14:	ff 15 7c 33 42 00    	call   *0x42337c
40aa1a:	eb 0f                	jmp    0x40aa2b
40aa1c:	c7 45 c8 34 1f 42 00 	movl   $0x421f34,-0x38(%ebp)
40aa23:	ff 15 40 34 42 00    	call   *0x423440
40aa29:	8b f0                	mov    %eax,%esi
40aa2b:	85 f6                	test   %esi,%esi
40aa2d:	78 51                	js     0x40aa80
40aa2f:	ff 75 10             	push   0x10(%ebp)
40aa32:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa35:	ff 15 74 33 42 00    	call   *0x423374
40aa3b:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aa3e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa41:	8b 40 f8             	mov    -0x8(%eax),%eax
40aa44:	40                   	inc    %eax
40aa45:	50                   	push   %eax
40aa46:	ff 15 78 33 42 00    	call   *0x423378
40aa4c:	89 45 c8             	mov    %eax,-0x38(%ebp)
40aa4f:	85 c0                	test   %eax,%eax
40aa51:	74 2d                	je     0x40aa80
40aa53:	33 c0                	xor    %eax,%eax
40aa55:	89 75 b8             	mov    %esi,-0x48(%ebp)
40aa58:	40                   	inc    %eax
40aa59:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40aa5c:	89 45 bc             	mov    %eax,-0x44(%ebp)
40aa5f:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40aa62:	50                   	push   %eax
40aa63:	53                   	push   %ebx
40aa64:	68 4c 10 00 00       	push   $0x104c
40aa69:	ff b7 84 01 00 00    	push   0x184(%edi)
40aa6f:	ff 15 40 34 42 00    	call   *0x423440
40aa75:	6a ff                	push   $0xffffffff
40aa77:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa7a:	ff 15 7c 33 42 00    	call   *0x42337c
40aa80:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40aa84:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aa87:	ff 15 44 32 42 00    	call   *0x423244
40aa8d:	e8 74 19 01 00       	call   0x41c406
40aa92:	c2 0c 00             	ret    $0xc
40aa95:	6a 40                	push   $0x40
40aa97:	b8 d1 cc 41 00       	mov    $0x41ccd1,%eax
40aa9c:	e8 97 19 01 00       	call   0x41c438
40aaa1:	8b f1                	mov    %ecx,%esi
40aaa3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aaa6:	ff 15 40 32 42 00    	call   *0x423240
40aaac:	33 ff                	xor    %edi,%edi
40aaae:	89 7d fc             	mov    %edi,-0x4(%ebp)
40aab1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aab4:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40aab7:	75 07                	jne    0x40aac0
40aab9:	68 0c 01 00 00       	push   $0x10c
40aabe:	eb 05                	jmp    0x40aac5
40aac0:	68 0b 01 00 00       	push   $0x10b
40aac5:	ff 15 74 33 42 00    	call   *0x423374
40aacb:	6a 3c                	push   $0x3c
40aacd:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40aad0:	57                   	push   %edi
40aad1:	50                   	push   %eax
40aad2:	e8 4a 1b 01 00       	call   0x41c621
40aad7:	8b 45 08             	mov    0x8(%ebp),%eax
40aada:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40aadd:	89 45 b8             	mov    %eax,-0x48(%ebp)
40aae0:	83 c4 0c             	add    $0xc,%esp
40aae3:	8b 45 f0             	mov    -0x10(%ebp),%eax
40aae6:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
40aaed:	89 7d bc             	mov    %edi,-0x44(%ebp)
40aaf0:	8b 40 f8             	mov    -0x8(%eax),%eax
40aaf3:	40                   	inc    %eax
40aaf4:	50                   	push   %eax
40aaf5:	ff 15 78 33 42 00    	call   *0x423378
40aafb:	8b 8e 84 01 00 00    	mov    0x184(%esi),%ecx
40ab01:	85 c0                	test   %eax,%eax
40ab03:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ab06:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40ab09:	50                   	push   %eax
40ab0a:	57                   	push   %edi
40ab0b:	68 4c 10 00 00       	push   $0x104c
40ab10:	51                   	push   %ecx
40ab11:	74 13                	je     0x40ab26
40ab13:	ff 15 40 34 42 00    	call   *0x423440
40ab19:	6a ff                	push   $0xffffffff
40ab1b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ab1e:	ff 15 7c 33 42 00    	call   *0x42337c
40ab24:	eb 0d                	jmp    0x40ab33
40ab26:	c7 45 c8 34 1f 42 00 	movl   $0x421f34,-0x38(%ebp)
40ab2d:	ff 15 40 34 42 00    	call   *0x423440
40ab33:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ab37:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ab3a:	ff 15 44 32 42 00    	call   *0x423244
40ab40:	e8 c1 18 01 00       	call   0x41c406
40ab45:	c2 08 00             	ret    $0x8
40ab48:	cc                   	int3
40ab49:	cc                   	int3
40ab4a:	cc                   	int3
40ab4b:	cc                   	int3
40ab4c:	cc                   	int3
40ab4d:	cc                   	int3
40ab4e:	cc                   	int3
40ab4f:	cc                   	int3
40ab50:	8b ff                	mov    %edi,%edi
40ab52:	55                   	push   %ebp
40ab53:	8b ec                	mov    %esp,%ebp
40ab55:	81 ec 14 04 00 00    	sub    $0x414,%esp
40ab5b:	a1 e4 05 42 00       	mov    0x4205e4,%eax
40ab60:	33 c5                	xor    %ebp,%eax
40ab62:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ab65:	56                   	push   %esi
40ab66:	57                   	push   %edi
40ab67:	8b 7d 10             	mov    0x10(%ebp),%edi
40ab6a:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
40ab70:	51                   	push   %ecx
40ab71:	50                   	push   %eax
40ab72:	ff 75 08             	push   0x8(%ebp)
40ab75:	8b cf                	mov    %edi,%ecx
40ab77:	33 f6                	xor    %esi,%esi
40ab79:	e8 12 fc ff ff       	call   0x40a790
40ab7e:	85 c0                	test   %eax,%eax
40ab80:	74 39                	je     0x40abbb
40ab82:	51                   	push   %ecx
40ab83:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40ab89:	8b cf                	mov    %edi,%ecx
40ab8b:	50                   	push   %eax
40ab8c:	ff 75 0c             	push   0xc(%ebp)
40ab8f:	e8 fc fb ff ff       	call   0x40a790
40ab94:	85 c0                	test   %eax,%eax
40ab96:	74 23                	je     0x40abbb
40ab98:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40ab9e:	50                   	push   %eax
40ab9f:	8d 85 ec fb ff ff    	lea    -0x414(%ebp),%eax
40aba5:	50                   	push   %eax
40aba6:	ff 15 64 35 42 00    	call   *0x423564
40abac:	83 bf 58 01 00 00 00 	cmpl   $0x0,0x158(%edi)
40abb3:	8b f0                	mov    %eax,%esi
40abb5:	59                   	pop    %ecx
40abb6:	59                   	pop    %ecx
40abb7:	74 02                	je     0x40abbb
40abb9:	f7 de                	neg    %esi
40abbb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40abbe:	8b c6                	mov    %esi,%eax
40abc0:	5f                   	pop    %edi
40abc1:	33 cd                	xor    %ebp,%ecx
40abc3:	5e                   	pop    %esi
40abc4:	e8 57 0a 01 00       	call   0x41b620
40abc9:	c9                   	leave
40abca:	c2 0c 00             	ret    $0xc
40abcd:	cc                   	int3
40abce:	cc                   	int3
40abcf:	cc                   	int3
40abd0:	8b ff                	mov    %edi,%edi
40abd2:	55                   	push   %ebp
40abd3:	8b ec                	mov    %esp,%ebp
40abd5:	56                   	push   %esi
40abd6:	8b 75 10             	mov    0x10(%ebp),%esi
40abd9:	8b ce                	mov    %esi,%ecx
40abdb:	57                   	push   %edi
40abdc:	ff 75 08             	push   0x8(%ebp)
40abdf:	e8 39 fc ff ff       	call   0x40a81d
40abe4:	ff 75 0c             	push   0xc(%ebp)
40abe7:	8b ce                	mov    %esi,%ecx
40abe9:	8b f8                	mov    %eax,%edi
40abeb:	e8 2d fc ff ff       	call   0x40a81d
40abf0:	3b f8                	cmp    %eax,%edi
40abf2:	75 04                	jne    0x40abf8
40abf4:	33 c0                	xor    %eax,%eax
40abf6:	eb 0e                	jmp    0x40ac06
40abf8:	33 c0                	xor    %eax,%eax
40abfa:	85 ff                	test   %edi,%edi
40abfc:	0f 95 c0             	setne  %al
40abff:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
40ac06:	83 be 54 01 00 00 00 	cmpl   $0x0,0x154(%esi)
40ac0d:	5f                   	pop    %edi
40ac0e:	5e                   	pop    %esi
40ac0f:	74 02                	je     0x40ac13
40ac11:	f7 d8                	neg    %eax
40ac13:	5d                   	pop    %ebp
40ac14:	c2 0c 00             	ret    $0xc
40ac17:	83 b9 44 01 00 00 00 	cmpl   $0x0,0x144(%ecx)
40ac1e:	8b 81 04 02 00 00    	mov    0x204(%ecx),%eax
40ac24:	74 07                	je     0x40ac2d
40ac26:	68 20 a3 40 00       	push   $0x40a320
40ac2b:	eb 05                	jmp    0x40ac32
40ac2d:	68 90 a3 40 00       	push   $0x40a390
40ac32:	51                   	push   %ecx
40ac33:	68 30 10 00 00       	push   $0x1030
40ac38:	50                   	push   %eax
40ac39:	ff 15 40 34 42 00    	call   *0x423440
40ac3f:	c3                   	ret
40ac40:	8b ff                	mov    %edi,%edi
40ac42:	56                   	push   %esi
40ac43:	57                   	push   %edi
40ac44:	8b f1                	mov    %ecx,%esi
40ac46:	ff 15 90 33 42 00    	call   *0x423390
40ac4c:	33 ff                	xor    %edi,%edi
40ac4e:	57                   	push   %edi
40ac4f:	57                   	push   %edi
40ac50:	68 37 10 00 00       	push   $0x1037
40ac55:	ff b6 84 01 00 00    	push   0x184(%esi)
40ac5b:	89 be 60 01 00 00    	mov    %edi,0x160(%esi)
40ac61:	ff 15 40 34 42 00    	call   *0x423440
40ac67:	83 c8 20             	or     $0x20,%eax
40ac6a:	50                   	push   %eax
40ac6b:	57                   	push   %edi
40ac6c:	68 36 10 00 00       	push   $0x1036
40ac71:	ff b6 84 01 00 00    	push   0x184(%esi)
40ac77:	ff 15 40 34 42 00    	call   *0x423440
40ac7d:	6a 0f                	push   $0xf
40ac7f:	ff 15 44 34 42 00    	call   *0x423444
40ac85:	50                   	push   %eax
40ac86:	57                   	push   %edi
40ac87:	68 01 10 00 00       	push   $0x1001
40ac8c:	ff b6 84 01 00 00    	push   0x184(%esi)
40ac92:	ff 15 40 34 42 00    	call   *0x423440
40ac98:	6a 0f                	push   $0xf
40ac9a:	ff 15 44 34 42 00    	call   *0x423444
40aca0:	50                   	push   %eax
40aca1:	57                   	push   %edi
40aca2:	68 26 10 00 00       	push   $0x1026
40aca7:	ff b6 84 01 00 00    	push   0x184(%esi)
40acad:	ff 15 40 34 42 00    	call   *0x423440
40acb3:	8b ce                	mov    %esi,%ecx
40acb5:	e8 1d f7 ff ff       	call   0x40a3d7
40acba:	8b ce                	mov    %esi,%ecx
40acbc:	e8 62 f8 ff ff       	call   0x40a523
40acc1:	57                   	push   %edi
40acc2:	57                   	push   %edi
40acc3:	68 04 10 00 00       	push   $0x1004
40acc8:	ff b6 84 01 00 00    	push   0x184(%esi)
40acce:	ff 15 40 34 42 00    	call   *0x423440
40acd4:	85 c0                	test   %eax,%eax
40acd6:	7e 11                	jle    0x40ace9
40acd8:	6a 03                	push   $0x3
40acda:	6a 03                	push   $0x3
40acdc:	57                   	push   %edi
40acdd:	8d 8e 64 01 00 00    	lea    0x164(%esi),%ecx
40ace3:	ff 15 88 33 42 00    	call   *0x423388
40ace9:	57                   	push   %edi
40acea:	57                   	push   %edi
40aceb:	68 37 10 00 00       	push   $0x1037
40acf0:	ff b6 04 02 00 00    	push   0x204(%esi)
40acf6:	ff 15 40 34 42 00    	call   *0x423440
40acfc:	83 c8 20             	or     $0x20,%eax
40acff:	50                   	push   %eax
40ad00:	57                   	push   %edi
40ad01:	68 36 10 00 00       	push   $0x1036
40ad06:	ff b6 04 02 00 00    	push   0x204(%esi)
40ad0c:	ff 15 40 34 42 00    	call   *0x423440
40ad12:	6a 0f                	push   $0xf
40ad14:	ff 15 44 34 42 00    	call   *0x423444
40ad1a:	50                   	push   %eax
40ad1b:	57                   	push   %edi
40ad1c:	68 01 10 00 00       	push   $0x1001
40ad21:	ff b6 04 02 00 00    	push   0x204(%esi)
40ad27:	ff 15 40 34 42 00    	call   *0x423440
40ad2d:	6a 0f                	push   $0xf