404cc2:	85 c0                	test   %eax,%eax
404cc4:	74 03                	je     0x404cc9
404cc6:	8b 5e 34             	mov    0x34(%esi),%ebx
404cc9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404ccc:	68 a8 12 40 00       	push   $0x4012a8
404cd1:	8d 4e 34             	lea    0x34(%esi),%ecx
404cd4:	ff 15 28 22 41 00    	call   *0x412228
404cda:	83 f8 ff             	cmp    $0xffffffff,%eax
404cdd:	74 09                	je     0x404ce8
404cdf:	89 45 dc             	mov    %eax,-0x24(%ebp)
404ce2:	8b 46 34             	mov    0x34(%esi),%eax
404ce5:	89 45 e0             	mov    %eax,-0x20(%ebp)
404ce8:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404cec:	8d 45 d8             	lea    -0x28(%ebp),%eax
404cef:	50                   	push   %eax
404cf0:	68 20 53 40 00       	push   $0x405320
404cf5:	57                   	push   %edi
404cf6:	ff 15 f0 21 41 00    	call   *0x4121f0
404cfc:	8b f0                	mov    %eax,%esi
404cfe:	57                   	push   %edi
404cff:	ff 15 3c 20 41 00    	call   *0x41203c
404d05:	8b c6                	mov    %esi,%eax
404d07:	eb 25                	jmp    0x404d2e
404d09:	ff 75 e8             	push   -0x18(%ebp)
404d0c:	ff 15 3c 20 41 00    	call   *0x41203c
404d12:	68 0e 00 07 80       	push   $0x8007000e
404d17:	ff 15 74 20 41 00    	call   *0x412074
404d1d:	e8 d2 4a 00 00       	call   0x4097f4
404d22:	b8 28 4d 40 00       	mov    $0x404d28,%eax
404d27:	c3                   	ret
404d28:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404d2c:	33 c0                	xor    %eax,%eax
404d2e:	e8 c6 a5 00 00       	call   0x40f2f9
404d33:	c2 04 00             	ret    $0x4
404d36:	6a 18                	push   $0x18
404d38:	b8 d3 f7 40 00       	mov    $0x40f7d3,%eax
404d3d:	e8 0d a6 00 00       	call   0x40f34f
404d42:	8b d9                	mov    %ecx,%ebx
404d44:	33 ff                	xor    %edi,%edi
404d46:	33 d2                	xor    %edx,%edx
404d48:	39 55 0c             	cmp    %edx,0xc(%ebp)
404d4b:	74 7b                	je     0x404dc8
404d4d:	8b b3 b4 00 00 00    	mov    0xb4(%ebx),%esi
404d53:	85 f6                	test   %esi,%esi
404d55:	75 0d                	jne    0x404d64
404d57:	ff 75 0c             	push   0xc(%ebp)
404d5a:	ff 75 08             	push   0x8(%ebp)
404d5d:	e8 de 01 00 00       	call   0x404f40
404d62:	eb 66                	jmp    0x404dca
404d64:	8b 46 18             	mov    0x18(%esi),%eax
404d67:	03 c6                	add    %esi,%eax
404d69:	8b 4e 1c             	mov    0x1c(%esi),%ecx
404d6c:	85 c9                	test   %ecx,%ecx
404d6e:	74 58                	je     0x404dc8
404d70:	81 78 0c e4 02 00 00 	cmpl   $0x2e4,0xc(%eax)
404d77:	75 04                	jne    0x404d7d
404d79:	8b f8                	mov    %eax,%edi
404d7b:	eb 0b                	jmp    0x404d88
404d7d:	81 78 0c 12 03 00 00 	cmpl   $0x312,0xc(%eax)
404d84:	75 02                	jne    0x404d88
404d86:	8b d0                	mov    %eax,%edx
404d88:	8b 30                	mov    (%eax),%esi
404d8a:	85 f6                	test   %esi,%esi
404d8c:	74 02                	je     0x404d90
404d8e:	03 c6                	add    %esi,%eax
404d90:	83 e9 01             	sub    $0x1,%ecx
404d93:	75 db                	jne    0x404d70
404d95:	89 7d e4             	mov    %edi,-0x1c(%ebp)
404d98:	85 ff                	test   %edi,%edi
404d9a:	74 2c                	je     0x404dc8
404d9c:	85 d2                	test   %edx,%edx
404d9e:	74 28                	je     0x404dc8
404da0:	8b 42 08             	mov    0x8(%edx),%eax
404da3:	03 c2                	add    %edx,%eax
404da5:	39 4a 20             	cmp    %ecx,0x20(%edx)
404da8:	76 11                	jbe    0x404dbb
404daa:	81 78 04 10 03 00 00 	cmpl   $0x310,0x4(%eax)
404db1:	74 1f                	je     0x404dd2
404db3:	03 00                	add    (%eax),%eax
404db5:	41                   	inc    %ecx
404db6:	3b 4a 20             	cmp    0x20(%edx),%ecx
404db9:	72 ef                	jb     0x404daa
404dbb:	6a 05                	push   $0x5
404dbd:	ff 15 74 20 41 00    	call   *0x412074
404dc3:	e8 2c 4a 00 00       	call   0x4097f4
404dc8:	33 c0                	xor    %eax,%eax
404dca:	e8 2a a5 00 00       	call   0x40f2f9
404dcf:	c2 08 00             	ret    $0x8
404dd2:	8b 40 24             	mov    0x24(%eax),%eax
404dd5:	89 45 dc             	mov    %eax,-0x24(%ebp)
404dd8:	85 c0                	test   %eax,%eax
404dda:	74 df                	je     0x404dbb
404ddc:	8b 77 04             	mov    0x4(%edi),%esi
404ddf:	03 f7                	add    %edi,%esi
404de1:	89 75 e0             	mov    %esi,-0x20(%ebp)
404de4:	8b 42 04             	mov    0x4(%edx),%eax
404de7:	03 c2                	add    %edx,%eax
404de9:	8b 3e                	mov    (%esi),%edi
404deb:	03 fe                	add    %esi,%edi
404ded:	8b 08                	mov    (%eax),%ecx
404def:	03 c8                	add    %eax,%ecx
404df1:	33 c0                	xor    %eax,%eax
404df3:	89 45 e8             	mov    %eax,-0x18(%ebp)
404df6:	8b 52 28             	mov    0x28(%edx),%edx
404df9:	89 55 ec             	mov    %edx,-0x14(%ebp)
404dfc:	85 d2                	test   %edx,%edx
404dfe:	74 28                	je     0x404e28
404e00:	8b 55 dc             	mov    -0x24(%ebp),%edx
404e03:	8b b3 84 00 00 00    	mov    0x84(%ebx),%esi
404e09:	39 34 11             	cmp    %esi,(%ecx,%edx,1)
404e0c:	74 14                	je     0x404e22
404e0e:	8b 01                	mov    (%ecx),%eax
404e10:	03 c1                	add    %ecx,%eax
404e12:	8b 08                	mov    (%eax),%ecx
404e14:	03 c8                	add    %eax,%ecx
404e16:	8b 45 e8             	mov    -0x18(%ebp),%eax
404e19:	40                   	inc    %eax
404e1a:	89 45 e8             	mov    %eax,-0x18(%ebp)
404e1d:	3b 45 ec             	cmp    -0x14(%ebp),%eax
404e20:	72 e7                	jb     0x404e09
404e22:	8b 75 e0             	mov    -0x20(%ebp),%esi
404e25:	8b 55 ec             	mov    -0x14(%ebp),%edx
404e28:	3b c2                	cmp    %edx,%eax
404e2a:	75 05                	jne    0x404e31
404e2c:	33 c0                	xor    %eax,%eax
404e2e:	40                   	inc    %eax
404e2f:	eb 99                	jmp    0x404dca
404e31:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
404e35:	68 a8 12 40 00       	push   $0x4012a8
404e3a:	8d 4b 34             	lea    0x34(%ebx),%ecx
404e3d:	ff 15 28 22 41 00    	call   *0x412228
404e43:	83 f8 ff             	cmp    $0xffffffff,%eax
404e46:	74 03                	je     0x404e4b
404e48:	89 45 e0             	mov    %eax,-0x20(%ebp)
404e4b:	33 c9                	xor    %ecx,%ecx
404e4d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404e50:	89 4d dc             	mov    %ecx,-0x24(%ebp)
404e53:	3b 48 28             	cmp    0x28(%eax),%ecx
404e56:	7d d4                	jge    0x404e2c
404e58:	8b 4d e8             	mov    -0x18(%ebp),%ecx
404e5b:	39 4e 08             	cmp    %ecx,0x8(%esi)
404e5e:	0f 85 a8 00 00 00    	jne    0x404f0c
404e64:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404e68:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404e6b:	ff 15 f8 21 41 00    	call   *0x4121f8
404e71:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404e75:	8b 46 14             	mov    0x14(%esi),%eax
404e78:	83 c0 0a             	add    $0xa,%eax
404e7b:	50                   	push   %eax
404e7c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404e7f:	ff 15 34 22 41 00    	call   *0x412234
404e85:	8b c8                	mov    %eax,%ecx
404e87:	85 c9                	test   %ecx,%ecx
404e89:	75 22                	jne    0x404ead
404e8b:	68 0e 00 07 80       	push   $0x8007000e
404e90:	ff 15 74 20 41 00    	call   *0x412074
404e96:	e8 59 49 00 00       	call   0x4097f4
404e9b:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404e9f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404ea2:	ff 15 30 22 41 00    	call   *0x412230
404ea8:	e9 1b ff ff ff       	jmp    0x404dc8
404ead:	8b 46 14             	mov    0x14(%esi),%eax
404eb0:	40                   	inc    %eax
404eb1:	50                   	push   %eax
404eb2:	8b 56 10             	mov    0x10(%esi),%edx
404eb5:	03 d6                	add    %esi,%edx
404eb7:	e8 3a 55 00 00       	call   0x40a3f6
404ebc:	6a ff                	push   $0xffffffff
404ebe:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404ec1:	ff 15 40 22 41 00    	call   *0x412240
404ec7:	8d 4b 34             	lea    0x34(%ebx),%ecx
404eca:	ff 15 38 22 41 00    	call   *0x412238
404ed0:	8b 40 04             	mov    0x4(%eax),%eax
404ed3:	85 c0                	test   %eax,%eax
404ed5:	74 14                	je     0x404eeb
404ed7:	ff 75 e0             	push   -0x20(%ebp)
404eda:	6a 01                	push   $0x1
404edc:	8b 53 34             	mov    0x34(%ebx),%edx
404edf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
404ee2:	e8 b3 55 00 00       	call   0x40a49a
404ee7:	85 c0                	test   %eax,%eax
404ee9:	75 11                	jne    0x404efc
404eeb:	51                   	push   %ecx
404eec:	8b 55 ec             	mov    -0x14(%ebp),%edx
404eef:	8b 4d 0c             	mov    0xc(%ebp),%ecx
404ef2:	e8 08 3c 00 00       	call   0x408aff
404ef7:	83 f8 ff             	cmp    $0xffffffff,%eax
404efa:	74 9f                	je     0x404e9b
404efc:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404f00:	8d 4d ec             	lea    -0x14(%ebp),%ecx
404f03:	ff 15 30 22 41 00    	call   *0x412230
404f09:	8b 45 e4             	mov    -0x1c(%ebp),%eax
404f0c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404f10:	8b 37                	mov    (%edi),%esi
404f12:	03 f7                	add    %edi,%esi
404f14:	8b 3e                	mov    (%esi),%edi
404f16:	03 fe                	add    %esi,%edi
404f18:	8b 4d dc             	mov    -0x24(%ebp),%ecx
404f1b:	41                   	inc    %ecx
404f1c:	e9 2f ff ff ff       	jmp    0x404e50
404f21:	68 0e 00 07 80       	push   $0x8007000e
404f26:	ff 15 74 20 41 00    	call   *0x412074
404f2c:	e8 c3 48 00 00       	call   0x4097f4
404f31:	b8 37 4f 40 00       	mov    $0x404f37,%eax
404f36:	c3                   	ret
404f37:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404f3b:	e9 88 fe ff ff       	jmp    0x404dc8
404f40:	6a 5c                	push   $0x5c
404f42:	b8 22 f8 40 00       	mov    $0x40f822,%eax
404f47:	e8 39 a4 00 00       	call   0x40f385
404f4c:	8b d9                	mov    %ecx,%ebx
404f4e:	8b 75 08             	mov    0x8(%ebp),%esi
404f51:	8b 7d 0c             	mov    0xc(%ebp),%edi
404f54:	89 7d a8             	mov    %edi,-0x58(%ebp)
404f57:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
404f5a:	ff 15 f8 21 41 00    	call   *0x4121f8
404f60:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404f64:	8d 4d d0             	lea    -0x30(%ebp),%ecx
404f67:	ff 15 f8 21 41 00    	call   *0x4121f8
404f6d:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404f71:	8d 4d c8             	lea    -0x38(%ebp),%ecx
404f74:	ff 15 f8 21 41 00    	call   *0x4121f8
404f7a:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
404f7e:	8d 4d cc             	lea    -0x34(%ebp),%ecx
404f81:	ff 15 f8 21 41 00    	call   *0x4121f8
404f87:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
404f8b:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
404f8f:	33 c0                	xor    %eax,%eax
404f91:	89 45 b8             	mov    %eax,-0x48(%ebp)
404f94:	21 45 d4             	and    %eax,-0x2c(%ebp)
404f97:	85 ff                	test   %edi,%edi
404f99:	75 09                	jne    0x404fa4
404f9b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
404f9f:	e9 09 03 00 00       	jmp    0x4052ad
404fa4:	6a 10                	push   $0x10
404fa6:	8b d6                	mov    %esi,%edx
404fa8:	8b 8b 80 00 00 00    	mov    0x80(%ebx),%ecx
404fae:	e8 bc 40 00 00       	call   0x40906f
404fb3:	8b f0                	mov    %eax,%esi
404fb5:	85 f6                	test   %esi,%esi
404fb7:	74 e2                	je     0x404f9b
404fb9:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
404fbd:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)
404fc1:	68 a8 12 40 00       	push   $0x4012a8
404fc6:	8d 4b 34             	lea    0x34(%ebx),%ecx
404fc9:	ff 15 28 22 41 00    	call   *0x412228
404fcf:	83 f8 ff             	cmp    $0xffffffff,%eax
404fd2:	74 03                	je     0x404fd7
404fd4:	89 45 bc             	mov    %eax,-0x44(%ebp)
404fd7:	33 c0                	xor    %eax,%eax
404fd9:	89 45 b4             	mov    %eax,-0x4c(%ebp)
404fdc:	83 f8 05             	cmp    $0x5,%eax
404fdf:	73 08                	jae    0x404fe9
404fe1:	83 64 85 d8 00       	andl   $0x0,-0x28(%ebp,%eax,4)
404fe6:	40                   	inc    %eax
404fe7:	eb f0                	jmp    0x404fd9
404fe9:	56                   	push   %esi
404fea:	68 f8 15 40 00       	push   $0x4015f8
404fef:	8d 45 c4             	lea    -0x3c(%ebp),%eax
404ff2:	50                   	push   %eax
404ff3:	ff 15 04 22 41 00    	call   *0x412204
404ff9:	83 c4 0c             	add    $0xc,%esp
404ffc:	ff 75 c4             	push   -0x3c(%ebp)
404fff:	8d 4d ac             	lea    -0x54(%ebp),%ecx
405002:	e8 d2 09 00 00       	call   0x4059d9
405007:	8b f0                	mov    %eax,%esi
405009:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40500d:	68 e0 15 40 00       	push   $0x4015e0
405012:	8d 4d b0             	lea    -0x50(%ebp),%ecx
405015:	e8 bf 09 00 00       	call   0x4059d9
40501a:	8b c8                	mov    %eax,%ecx
40501c:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
405020:	8b 06                	mov    (%esi),%eax
405022:	85 c0                	test   %eax,%eax
405024:	74 04                	je     0x40502a
405026:	8b 10                	mov    (%eax),%edx
405028:	eb 02                	jmp    0x40502c
40502a:	33 d2                	xor    %edx,%edx
40502c:	8b 01                	mov    (%ecx),%eax
40502e:	85 c0                	test   %eax,%eax
405030:	74 04                	je     0x405036
405032:	8b 08                	mov    (%eax),%ecx
405034:	eb 02                	jmp    0x405038
405036:	33 c9                	xor    %ecx,%ecx
405038:	8b 43 04             	mov    0x4(%ebx),%eax
40503b:	8b 30                	mov    (%eax),%esi
40503d:	8d 7d d4             	lea    -0x2c(%ebp),%edi
405040:	57                   	push   %edi
405041:	6a 00                	push   $0x0
405043:	6a 30                	push   $0x30
405045:	52                   	push   %edx
405046:	51                   	push   %ecx
405047:	50                   	push   %eax
405048:	8b 4e 50             	mov    0x50(%esi),%ecx
40504b:	ff 15 20 23 41 00    	call   *0x412320
405051:	ff 56 50             	call   *0x50(%esi)
405054:	8b f0                	mov    %eax,%esi
405056:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40505a:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40505d:	e8 ed 08 00 00       	call   0x40594f
405062:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
405066:	8d 4d ac             	lea    -0x54(%ebp),%ecx
405069:	e8 e1 08 00 00       	call   0x40594f
40506e:	85 f6                	test   %esi,%esi
405070:	0f 88 9c 02 00 00    	js     0x405312
405076:	8b 53 0c             	mov    0xc(%ebx),%edx
405079:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40507c:	e8 48 25 00 00       	call   0x4075c9
405081:	85 c0                	test   %eax,%eax
405083:	79 07                	jns    0x40508c
405085:	8b c8                	mov    %eax,%ecx
405087:	e9 88 02 00 00       	jmp    0x405314
40508c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40508f:	8b 30                	mov    (%eax),%esi
405091:	8d 4d c0             	lea    -0x40(%ebp),%ecx
405094:	51                   	push   %ecx
405095:	8d 4d d8             	lea    -0x28(%ebp),%ecx
405098:	51                   	push   %ecx
405099:	6a 05                	push   $0x5
40509b:	6a ff                	push   $0xffffffff
40509d:	50                   	push   %eax
40509e:	8b 4e 10             	mov    0x10(%esi),%ecx
4050a1:	ff 15 20 23 41 00    	call   *0x412320
4050a7:	ff 56 10             	call   *0x10(%esi)
4050aa:	83 f8 01             	cmp    $0x1,%eax
4050ad:	75 08                	jne    0x4050b7
4050af:	89 45 b8             	mov    %eax,-0x48(%ebp)
4050b2:	89 45 9c             	mov    %eax,-0x64(%ebp)
4050b5:	eb 13                	jmp    0x4050ca
4050b7:	3d 04 00 04 00       	cmp    $0x40004,%eax
4050bc:	0f 84 27 01 00 00    	je     0x4051e9
4050c2:	85 c0                	test   %eax,%eax
4050c4:	0f 88 1f 01 00 00    	js     0x4051e9
4050ca:	33 ff                	xor    %edi,%edi
4050cc:	89 7d a0             	mov    %edi,-0x60(%ebp)
4050cf:	3b 7d c0             	cmp    -0x40(%ebp),%edi
4050d2:	0f 83 05 01 00 00    	jae    0x4051dd
4050d8:	be 8d 13 00 00       	mov    $0x138d,%esi
4050dd:	8b ce                	mov    %esi,%ecx
4050df:	e8 6d 49 00 00       	call   0x409a51
4050e4:	50                   	push   %eax
4050e5:	8d 45 c8             	lea    -0x38(%ebp),%eax
4050e8:	50                   	push   %eax
4050e9:	ba 64 16 40 00       	mov    $0x401664,%edx
4050ee:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
4050f2:	e8 cb 2a 00 00       	call   0x407bc2
4050f7:	85 c0                	test   %eax,%eax
4050f9:	0f 84 d8 00 00 00    	je     0x4051d7
4050ff:	8b ce                	mov    %esi,%ecx
405101:	e8 4b 49 00 00       	call   0x409a51