4077dd:	8b d6                	mov    %esi,%edx
4077df:	33 c9                	xor    %ecx,%ecx
4077e1:	47                   	inc    %edi
4077e2:	e8 9d 6f 00 00       	call   0x40e784
4077e7:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
4077eb:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4077ee:	74 07                	je     0x4077f7
4077f0:	e8 76 a3 00 00       	call   0x411b6b
4077f5:	eb 0d                	jmp    0x407804
4077f7:	e8 c2 a4 00 00       	call   0x411cbe
4077fc:	85 ff                	test   %edi,%edi
4077fe:	0f 84 8b 02 00 00    	je     0x407a8f
407804:	8b d6                	mov    %esi,%edx
407806:	33 c9                	xor    %ecx,%ecx
407808:	e8 77 6f 00 00       	call   0x40e784
40780d:	ba fa 00 00 00       	mov    $0xfa,%edx
407812:	33 c9                	xor    %ecx,%ecx
407814:	e8 6b 6f 00 00       	call   0x40e784
407819:	8b d6                	mov    %esi,%edx
40781b:	33 c9                	xor    %ecx,%ecx
40781d:	e8 62 6f 00 00       	call   0x40e784
407822:	e9 68 02 00 00       	jmp    0x407a8f
407827:	ff 35 1c 12 42 00    	push   0x42121c
40782d:	8b 15 10 12 42 00    	mov    0x421210,%edx
407833:	b9 0c 0a 42 00       	mov    $0x420a0c,%ecx
407838:	68 18 12 42 00       	push   $0x421218
40783d:	68 14 12 42 00       	push   $0x421214
407842:	e8 cb 76 00 00       	call   0x40ef12
407847:	85 ff                	test   %edi,%edi
407849:	0f 84 cf 00 00 00    	je     0x40791e
40784f:	8b 7d a4             	mov    -0x5c(%ebp),%edi
407852:	33 f6                	xor    %esi,%esi
407854:	85 ff                	test   %edi,%edi
407856:	0f 8e c2 00 00 00    	jle    0x40791e
40785c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40785f:	83 78 f8 00          	cmpl   $0x0,-0x8(%eax)
407863:	7e 0b                	jle    0x407870
407865:	6a 20                	push   $0x20
407867:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40786a:	ff 15 d8 33 42 00    	call   *0x4233d8
407870:	85 f6                	test   %esi,%esi
407872:	0f 88 dd 00 00 00    	js     0x407955
407878:	3b 75 a4             	cmp    -0x5c(%ebp),%esi
40787b:	0f 8d d4 00 00 00    	jge    0x407955
407881:	8b 45 a0             	mov    -0x60(%ebp),%eax
407884:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407887:	8d 04 b0             	lea    (%eax,%esi,4),%eax
40788a:	50                   	push   %eax
40788b:	ff 15 80 33 42 00    	call   *0x423380
407891:	6a 20                	push   $0x20
407893:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407896:	ff 15 e0 33 42 00    	call   *0x4233e0
40789c:	85 c0                	test   %eax,%eax
40789e:	79 0f                	jns    0x4078af
4078a0:	6a 09                	push   $0x9
4078a2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4078a5:	ff 15 e0 33 42 00    	call   *0x4233e0
4078ab:	85 c0                	test   %eax,%eax
4078ad:	78 59                	js     0x407908
4078af:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4078b3:	8d 45 e8             	lea    -0x18(%ebp),%eax
4078b6:	50                   	push   %eax
4078b7:	6a 22                	push   $0x22
4078b9:	8d 45 bc             	lea    -0x44(%ebp),%eax
4078bc:	50                   	push   %eax
4078bd:	ff 15 e8 33 42 00    	call   *0x4233e8
4078c3:	83 4d f0 01          	orl    $0x1,-0x10(%ebp)
4078c7:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
4078cb:	6a 22                	push   $0x22
4078cd:	50                   	push   %eax
4078ce:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4078d1:	50                   	push   %eax
4078d2:	ff 15 e4 33 42 00    	call   *0x4233e4
4078d8:	83 4d f0 02          	orl    $0x2,-0x10(%ebp)
4078dc:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4078df:	50                   	push   %eax
4078e0:	ff 15 80 33 42 00    	call   *0x423380
4078e6:	83 65 f0 fd          	andl   $0xfffffffd,-0x10(%ebp)
4078ea:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4078ee:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4078f1:	ff 15 44 32 42 00    	call   *0x423244
4078f7:	83 65 f0 fe          	andl   $0xfffffffe,-0x10(%ebp)
4078fb:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
4078ff:	8d 4d bc             	lea    -0x44(%ebp),%ecx
407902:	ff 15 44 32 42 00    	call   *0x423244
407908:	8d 45 e8             	lea    -0x18(%ebp),%eax
40790b:	50                   	push   %eax
40790c:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40790f:	ff 15 ec 33 42 00    	call   *0x4233ec
407915:	46                   	inc    %esi
407916:	3b f7                	cmp    %edi,%esi
407918:	0f 8c 3e ff ff ff    	jl     0x40785c
40791e:	68 e0 43 40 00       	push   $0x4043e0
407923:	ff 75 e4             	push   -0x1c(%ebp)
407926:	ff 15 64 35 42 00    	call   *0x423564
40792c:	8b 35 18 12 42 00    	mov    0x421218,%esi
407932:	f7 d8                	neg    %eax
407934:	59                   	pop    %ecx
407935:	59                   	pop    %ecx
407936:	6a 38                	push   $0x38
407938:	1b c0                	sbb    %eax,%eax
40793a:	8b ce                	mov    %esi,%ecx
40793c:	5a                   	pop    %edx
40793d:	23 ca                	and    %edx,%ecx
40793f:	40                   	inc    %eax
407940:	3a ca                	cmp    %dl,%cl
407942:	8b 4d b0             	mov    -0x50(%ebp),%ecx
407945:	75 04                	jne    0x40794b
407947:	85 c9                	test   %ecx,%ecx
407949:	75 1d                	jne    0x407968
40794b:	f6 c1 08             	test   $0x8,%cl
40794e:	74 0b                	je     0x40795b
407950:	6a 08                	push   $0x8
407952:	5a                   	pop    %edx
407953:	eb 13                	jmp    0x407968
407955:	ff 15 dc 33 42 00    	call   *0x4233dc
40795b:	80 e1 10             	and    $0x10,%cl
40795e:	0f b6 d1             	movzbl %cl,%edx
407961:	f7 da                	neg    %edx
407963:	1b d2                	sbb    %edx,%edx
407965:	83 e2 18             	and    $0x18,%edx
407968:	8b fe                	mov    %esi,%edi
40796a:	83 e7 c7             	and    $0xffffffc7,%edi
40796d:	0b fa                	or     %edx,%edi
40796f:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
407973:	74 15                	je     0x40798a
407975:	85 c0                	test   %eax,%eax
407977:	0f 84 bd 00 00 00    	je     0x407a3a
40797d:	83 3d 0c 0a 42 00 00 	cmpl   $0x0,0x420a0c
407984:	0f 84 e4 00 00 00    	je     0x407a6e
40798a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40798d:	8b 15 14 12 42 00    	mov    0x421214,%edx
407993:	85 db                	test   %ebx,%ebx
407995:	74 04                	je     0x40799b
407997:	3b ca                	cmp    %edx,%ecx
407999:	75 0a                	jne    0x4079a5
40799b:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
40799f:	74 24                	je     0x4079c5
4079a1:	3b fe                	cmp    %esi,%edi
4079a3:	74 20                	je     0x4079c5
4079a5:	51                   	push   %ecx
4079a6:	6a 00                	push   $0x0
4079a8:	51                   	push   %ecx
4079a9:	6a 00                	push   $0x0
4079ab:	57                   	push   %edi
4079ac:	ff 75 d4             	push   -0x2c(%ebp)
4079af:	8d 55 e4             	lea    -0x1c(%ebp),%edx
4079b2:	51                   	push   %ecx
4079b3:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4079b6:	53                   	push   %ebx
4079b7:	e8 e3 72 00 00       	call   0x40ec9f
4079bc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4079bf:	8b 15 14 12 42 00    	mov    0x421214,%edx
4079c5:	8b c1                	mov    %ecx,%eax
4079c7:	83 e2 04             	and    $0x4,%edx
4079ca:	83 e0 04             	and    $0x4,%eax
4079cd:	3b c2                	cmp    %edx,%eax
4079cf:	75 20                	jne    0x4079f1
4079d1:	ff 75 b8             	push   -0x48(%ebp)
4079d4:	8b 0d 1c 12 42 00    	mov    0x42121c,%ecx
4079da:	8d 45 e0             	lea    -0x20(%ebp),%eax
4079dd:	50                   	push   %eax
4079de:	8d 45 dc             	lea    -0x24(%ebp),%eax
4079e1:	50                   	push   %eax
4079e2:	ff 75 cc             	push   -0x34(%ebp)
4079e5:	e8 24 d2 00 00       	call   0x414c0e
4079ea:	85 c0                	test   %eax,%eax
4079ec:	74 16                	je     0x407a04
4079ee:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4079f1:	ff 75 b8             	push   -0x48(%ebp)
4079f4:	8b 55 cc             	mov    -0x34(%ebp),%edx
4079f7:	8d 45 e0             	lea    -0x20(%ebp),%eax
4079fa:	50                   	push   %eax
4079fb:	8d 45 dc             	lea    -0x24(%ebp),%eax
4079fe:	50                   	push   %eax
4079ff:	e8 4b 7d 00 00       	call   0x40f74f
407a04:	33 c9                	xor    %ecx,%ecx
407a06:	39 0d f8 09 42 00    	cmp    %ecx,0x4209f8
407a0c:	74 68                	je     0x407a76
407a0e:	be 38 01 00 00       	mov    $0x138,%esi
407a13:	8b d6                	mov    %esi,%edx
407a15:	e8 6a 6d 00 00       	call   0x40e784
407a1a:	8d 56 f8             	lea    -0x8(%esi),%edx
407a1d:	33 c9                	xor    %ecx,%ecx
407a1f:	e8 60 6d 00 00       	call   0x40e784
407a24:	e8 ae ab 00 00       	call   0x4125d7
407a29:	8b d6                	mov    %esi,%edx
407a2b:	33 c9                	xor    %ecx,%ecx
407a2d:	e8 52 6d 00 00       	call   0x40e784
407a32:	8d 56 c7             	lea    -0x39(%esi),%edx
407a35:	e9 e1 fd ff ff       	jmp    0x40781b
407a3a:	8b 35 10 12 42 00    	mov    0x421210,%esi
407a40:	8d 45 e4             	lea    -0x1c(%ebp),%eax
407a43:	51                   	push   %ecx
407a44:	8b cc                	mov    %esp,%ecx
407a46:	89 65 b0             	mov    %esp,-0x50(%ebp)
407a49:	50                   	push   %eax
407a4a:	ff 15 f0 33 42 00    	call   *0x4233f0
407a50:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
407a54:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
407a58:	8b ce                	mov    %esi,%ecx
407a5a:	e8 ac 77 00 00       	call   0x40f20b
407a5f:	85 c0                	test   %eax,%eax
407a61:	75 0b                	jne    0x407a6e
407a63:	8b 35 18 12 42 00    	mov    0x421218,%esi
407a69:	e9 1c ff ff ff       	jmp    0x40798a
407a6e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407a71:	e9 2f ff ff ff       	jmp    0x4079a5
407a76:	ba 38 01 00 00       	mov    $0x138,%edx
407a7b:	e8 04 6d 00 00       	call   0x40e784
407a80:	ba ef 00 00 00       	mov    $0xef,%edx
407a85:	e9 91 fd ff ff       	jmp    0x40781b
407a8a:	e8 3b 0f 00 00       	call   0x4089ca
407a8f:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
407a93:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407a96:	ff 15 44 32 42 00    	call   *0x423244
407a9c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407aa0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407aa3:	ff 15 44 32 42 00    	call   *0x423244
407aa9:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407aad:	8d 4d dc             	lea    -0x24(%ebp),%ecx
407ab0:	ff 15 44 32 42 00    	call   *0x423244
407ab6:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
407aba:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
407abd:	ff 15 44 32 42 00    	call   *0x423244
407ac3:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407ac7:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
407aca:	ff 15 d4 33 42 00    	call   *0x4233d4
407ad0:	8b 45 d8             	mov    -0x28(%ebp),%eax
407ad3:	e8 2e 49 01 00       	call   0x41c406
407ad8:	c3                   	ret
407ad9:	8b ff                	mov    %edi,%edi
407adb:	52                   	push   %edx
407adc:	51                   	push   %ecx
407add:	ff 15 64 35 42 00    	call   *0x423564
407ae3:	f7 d8                	neg    %eax
407ae5:	59                   	pop    %ecx
407ae6:	1b c0                	sbb    %eax,%eax
407ae8:	59                   	pop    %ecx
407ae9:	40                   	inc    %eax
407aea:	c3                   	ret
407aeb:	8b ff                	mov    %edi,%edi
407aed:	55                   	push   %ebp
407aee:	8b ec                	mov    %esp,%ebp
407af0:	51                   	push   %ecx
407af1:	53                   	push   %ebx
407af2:	56                   	push   %esi
407af3:	33 f6                	xor    %esi,%esi
407af5:	8b c1                	mov    %ecx,%eax
407af7:	57                   	push   %edi
407af8:	46                   	inc    %esi
407af9:	89 45 fc             	mov    %eax,-0x4(%ebp)
407afc:	33 ff                	xor    %edi,%edi
407afe:	8b da                	mov    %edx,%ebx
407b00:	3b c6                	cmp    %esi,%eax
407b02:	7e 3f                	jle    0x407b43
407b04:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
407b07:	ba a0 14 42 00       	mov    $0x4214a0,%edx
407b0c:	e8 c8 ff ff ff       	call   0x407ad9
407b11:	85 c0                	test   %eax,%eax
407b13:	75 28                	jne    0x407b3d
407b15:	8b 55 08             	mov    0x8(%ebp),%edx
407b18:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
407b1b:	e8 b9 ff ff ff       	call   0x407ad9
407b20:	85 c0                	test   %eax,%eax
407b22:	74 05                	je     0x407b29
407b24:	33 ff                	xor    %edi,%edi
407b26:	47                   	inc    %edi
407b27:	eb 14                	jmp    0x407b3d
407b29:	83 ff 01             	cmp    $0x1,%edi
407b2c:	75 1e                	jne    0x407b4c
407b2e:	ff 34 b3             	push   (%ebx,%esi,4)
407b31:	68 4b 01 00 00       	push   $0x14b
407b36:	e8 18 6b 00 00       	call   0x40e653
407b3b:	59                   	pop    %ecx
407b3c:	59                   	pop    %ecx
407b3d:	46                   	inc    %esi
407b3e:	3b 75 fc             	cmp    -0x4(%ebp),%esi
407b41:	7c c1                	jl     0x407b04
407b43:	8b c7                	mov    %edi,%eax
407b45:	5f                   	pop    %edi
407b46:	5e                   	pop    %esi
407b47:	5b                   	pop    %ebx
407b48:	c9                   	leave
407b49:	c2 04 00             	ret    $0x4
407b4c:	33 c0                	xor    %eax,%eax
407b4e:	eb f5                	jmp    0x407b45
407b50:	8b ff                	mov    %edi,%edi
407b52:	55                   	push   %ebp
407b53:	8b ec                	mov    %esp,%ebp
407b55:	83 e4 f8             	and    $0xfffffff8,%esp
407b58:	83 ec 0c             	sub    $0xc,%esp
407b5b:	53                   	push   %ebx
407b5c:	56                   	push   %esi
407b5d:	57                   	push   %edi
407b5e:	8b c2                	mov    %edx,%eax
407b60:	33 db                	xor    %ebx,%ebx
407b62:	33 ff                	xor    %edi,%edi
407b64:	89 44 24 0c          	mov    %eax,0xc(%esp)
407b68:	83 f9 02             	cmp    $0x2,%ecx
407b6b:	0f 8c f7 00 00 00    	jl     0x407c68
407b71:	33 f6                	xor    %esi,%esi
407b73:	c7 44 24 10 30 75 00 	movl   $0x7530,0x10(%esp)
407b7a:	00
407b7b:	49                   	dec    %ecx
407b7c:	46                   	inc    %esi
407b7d:	89 4c 24 14          	mov    %ecx,0x14(%esp)
407b81:	3b ce                	cmp    %esi,%ecx
407b83:	0f 8e df 00 00 00    	jle    0x407c68
407b89:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
407b8c:	ba 90 11 42 00       	mov    $0x421190,%edx
407b91:	e8 43 ff ff ff       	call   0x407ad9
407b96:	85 c0                	test   %eax,%eax
407b98:	74 0d                	je     0x407ba7
407b9a:	8b 44 24 0c          	mov    0xc(%esp),%eax
407b9e:	33 db                	xor    %ebx,%ebx
407ba0:	43                   	inc    %ebx
407ba1:	8b 7c b0 04          	mov    0x4(%eax,%esi,4),%edi
407ba5:	eb 32                	jmp    0x407bd9
407ba7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
407bab:	ba 10 11 42 00       	mov    $0x421110,%edx
407bb0:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
407bb3:	e8 21 ff ff ff       	call   0x407ad9
407bb8:	85 c0                	test   %eax,%eax
407bba:	8b 44 24 0c          	mov    0xc(%esp),%eax
407bbe:	74 19                	je     0x407bd9
407bc0:	ff 74 b0 04          	push   0x4(%eax,%esi,4)
407bc4:	ff 15 60 35 42 00    	call   *0x423560
407bca:	69 c0 e8 03 00 00    	imul   $0x3e8,%eax,%eax
407bd0:	59                   	pop    %ecx
407bd1:	89 44 24 10          	mov    %eax,0x10(%esp)
407bd5:	8b 44 24 0c          	mov    0xc(%esp),%eax
407bd9:	46                   	inc    %esi
407bda:	3b 74 24 14          	cmp    0x14(%esp),%esi
407bde:	7c a9                	jl     0x407b89
407be0:	89 5c 24 14          	mov    %ebx,0x14(%esp)
407be4:	83 fb 01             	cmp    $0x1,%ebx
407be7:	75 7f                	jne    0x407c68
407be9:	68 e4 43 40 00       	push   $0x4043e4
407bee:	57                   	push   %edi
407bef:	ff 15 5c 35 42 00    	call   *0x42355c
407bf5:	8b f0                	mov    %eax,%esi
407bf7:	59                   	pop    %ecx
407bf8:	59                   	pop    %ecx
407bf9:	85 f6                	test   %esi,%esi
407bfb:	74 5b                	je     0x407c58
407bfd:	8b 5c 24 10          	mov    0x10(%esp),%ebx
407c01:	8b ce                	mov    %esi,%ecx
407c03:	e8 d8 99 00 00       	call   0x4115e0
407c08:	85 c0                	test   %eax,%eax