405841:	85 db                	test   %ebx,%ebx
405843:	0f 85 21 2d 00 00    	jne    0x40856a
405849:	6a 01                	push   $0x1
40584b:	53                   	push   %ebx
40584c:	ff 74 24 24          	push   0x24(%esp)
405850:	ff 15 4c 00 41 00    	call   *0x41004c
405856:	8b f0                	mov    %eax,%esi
405858:	89 74 24 14          	mov    %esi,0x14(%esp)
40585c:	85 f6                	test   %esi,%esi
40585e:	0f 84 8e 14 00 00    	je     0x406cf2
405864:	6a 04                	push   $0x4
405866:	ff 74 24 38          	push   0x38(%esp)
40586a:	56                   	push   %esi
40586b:	ff 15 3c 00 41 00    	call   *0x41003c
405871:	89 44 24 24          	mov    %eax,0x24(%esp)
405875:	85 c0                	test   %eax,%eax
405877:	74 69                	je     0x4058e2
405879:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40587d:	39 5c 24 40          	cmp    %ebx,0x40(%esp)
405881:	0f 84 28 2d 00 00    	je     0x4085af
405887:	57                   	push   %edi
405888:	50                   	push   %eax
405889:	ff 15 88 00 41 00    	call   *0x410088
40588f:	85 c0                	test   %eax,%eax
405891:	0f 84 33 2d 00 00    	je     0x4085ca
405897:	ff 74 24 40          	push   0x40(%esp)
40589b:	8b 4c 24 38          	mov    0x38(%esp),%ecx
40589f:	8d 44 24 20          	lea    0x20(%esp),%eax
4058a3:	50                   	push   %eax
4058a4:	33 d2                	xor    %edx,%edx
4058a6:	e8 e5 01 00 00       	call   0x405a90
4058ab:	e9 52 01 00 00       	jmp    0x405a02
4058b0:	1b c0                	sbb    %eax,%eax
4058b2:	83 c8 01             	or     $0x1,%eax
4058b5:	e9 12 fe ff ff       	jmp    0x4056cc
4058ba:	1b c0                	sbb    %eax,%eax
4058bc:	83 c8 01             	or     $0x1,%eax
4058bf:	e9 48 fe ff ff       	jmp    0x40570c
4058c4:	1b c0                	sbb    %eax,%eax
4058c6:	83 c8 01             	or     $0x1,%eax
4058c9:	e9 7e fe ff ff       	jmp    0x40574c
4058ce:	1b c0                	sbb    %eax,%eax
4058d0:	83 c8 01             	or     $0x1,%eax
4058d3:	e9 b4 fe ff ff       	jmp    0x40578c
4058d8:	1b c0                	sbb    %eax,%eax
4058da:	83 c8 01             	or     $0x1,%eax
4058dd:	e9 ea fe ff ff       	jmp    0x4057cc
4058e2:	ff 15 40 f0 40 00    	call   *0x40f040
4058e8:	8b d8                	mov    %eax,%ebx
4058ea:	be 65 00 00 00       	mov    $0x65,%esi
4058ef:	6a 0a                	push   $0xa
4058f1:	8d 44 24 74          	lea    0x74(%esp),%eax
4058f5:	50                   	push   %eax
4058f6:	53                   	push   %ebx
4058f7:	ff 15 20 f1 40 00    	call   *0x40f120
4058fd:	83 c4 0c             	add    $0xc,%esp
405900:	c7 44 24 64 e0 11 40 	movl   $0x4011e0,0x64(%esp)
405907:	00
405908:	8d 44 24 70          	lea    0x70(%esp),%eax
40590c:	89 44 24 68          	mov    %eax,0x68(%esp)
405910:	33 c0                	xor    %eax,%eax
405912:	66 a3 c0 e3 40 00    	mov    %ax,0x40e3c0
405918:	50                   	push   %eax
405919:	68 00 04 00 00       	push   $0x400
40591e:	68 c0 e3 40 00       	push   $0x40e3c0
405923:	50                   	push   %eax
405924:	53                   	push   %ebx
405925:	50                   	push   %eax
405926:	68 00 12 00 00       	push   $0x1200
40592b:	ff 15 78 f0 40 00    	call   *0x40f078
405931:	66 83 3d c0 e3 40 00 	cmpw   $0x0,0x40e3c0
405938:	00
405939:	c7 44 24 6c c0 e3 40 	movl   $0x40e3c0,0x6c(%esp)
405940:	00
405941:	0f 84 2d 2c 00 00    	je     0x408574
405947:	6a 25                	push   $0x25
405949:	68 c0 e3 40 00       	push   $0x40e3c0
40594e:	ff 15 18 f1 40 00    	call   *0x40f118
405954:	83 c4 08             	add    $0x8,%esp
405957:	85 c0                	test   %eax,%eax
405959:	0f 85 15 2c 00 00    	jne    0x408574
40595f:	8d 44 24 64          	lea    0x64(%esp),%eax
405963:	50                   	push   %eax
405964:	6a 02                	push   $0x2
405966:	8d 44 24 38          	lea    0x38(%esp),%eax
40596a:	50                   	push   %eax
40596b:	6a 00                	push   $0x0
40596d:	56                   	push   %esi
40596e:	6a 00                	push   $0x0
405970:	68 00 29 00 00       	push   $0x2900
405975:	ff 15 78 f0 40 00    	call   *0x40f078
40597b:	85 c0                	test   %eax,%eax
40597d:	74 7f                	je     0x4059fe
40597f:	8b 35 c0 eb 40 00    	mov    0x40ebc0,%esi
405985:	8b 7c 24 30          	mov    0x30(%esp),%edi
405989:	56                   	push   %esi
40598a:	89 44 24 30          	mov    %eax,0x30(%esp)
40598e:	ff 15 50 f0 40 00    	call   *0x40f050
405994:	25 ff 7f ff ff       	and    $0xffff7fff,%eax
405999:	83 f8 02             	cmp    $0x2,%eax
40599c:	0f 84 dc 2b 00 00    	je     0x40857e
4059a2:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4059a6:	03 c0                	add    %eax,%eax
4059a8:	50                   	push   %eax
4059a9:	6a 00                	push   $0x0
4059ab:	ff 15 64 f0 40 00    	call   *0x40f064
4059b1:	8b f0                	mov    %eax,%esi
4059b3:	85 f6                	test   %esi,%esi
4059b5:	74 3d                	je     0x4059f4
4059b7:	8b 54 24 2c          	mov    0x2c(%esp),%edx
4059bb:	6a 00                	push   $0x0
4059bd:	6a 00                	push   $0x0
4059bf:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
4059c2:	51                   	push   %ecx
4059c3:	56                   	push   %esi
4059c4:	52                   	push   %edx
4059c5:	57                   	push   %edi
4059c6:	6a 00                	push   $0x0
4059c8:	6a 01                	push   $0x1
4059ca:	ff 15 a8 f0 40 00    	call   *0x40f0a8
4059d0:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4059d4:	85 c0                	test   %eax,%eax
4059d6:	74 15                	je     0x4059ed
4059d8:	6a 00                	push   $0x0
4059da:	8d 4c 24 30          	lea    0x30(%esp),%ecx
4059de:	51                   	push   %ecx
4059df:	50                   	push   %eax
4059e0:	56                   	push   %esi
4059e1:	ff 35 c0 eb 40 00    	push   0x40ebc0
4059e7:	ff 15 54 f0 40 00    	call   *0x40f054
4059ed:	56                   	push   %esi
4059ee:	ff 15 68 f0 40 00    	call   *0x40f068
4059f4:	ff 74 24 30          	push   0x30(%esp)
4059f8:	ff 15 68 f0 40 00    	call   *0x40f068
4059fe:	8b 74 24 14          	mov    0x14(%esp),%esi
405a02:	8b 7c 24 10          	mov    0x10(%esp),%edi
405a06:	ff 74 24 50          	push   0x50(%esp)
405a0a:	ff 15 68 f0 40 00    	call   *0x40f068
405a10:	8b 44 24 24          	mov    0x24(%esp),%eax
405a14:	85 c0                	test   %eax,%eax
405a16:	74 07                	je     0x405a1f
405a18:	50                   	push   %eax
405a19:	ff 15 48 00 41 00    	call   *0x410048
405a1f:	85 f6                	test   %esi,%esi
405a21:	74 07                	je     0x405a2a
405a23:	56                   	push   %esi
405a24:	ff 15 48 00 41 00    	call   *0x410048
405a2a:	3b 7c 24 5c          	cmp    0x5c(%esp),%edi
405a2e:	75 21                	jne    0x405a51
405a30:	ff 74 24 60          	push   0x60(%esp)
405a34:	ff 15 68 f0 40 00    	call   *0x40f068
405a3a:	8b 8c 24 9c 00 00 00 	mov    0x9c(%esp),%ecx
405a41:	8b c3                	mov    %ebx,%eax
405a43:	5f                   	pop    %edi
405a44:	5e                   	pop    %esi
405a45:	5b                   	pop    %ebx
405a46:	33 cc                	xor    %esp,%ecx
405a48:	e8 d3 05 00 00       	call   0x406020
405a4d:	8b e5                	mov    %ebp,%esp
405a4f:	5d                   	pop    %ebp
405a50:	c3                   	ret
405a51:	57                   	push   %edi
405a52:	ff 15 68 f0 40 00    	call   *0x40f068
405a58:	eb d6                	jmp    0x405a30
405a5a:	cc                   	int3
405a5b:	cc                   	int3
405a5c:	cc                   	int3
405a5d:	cc                   	int3
405a5e:	cc                   	int3
405a5f:	cc                   	int3
405a60:	8b ff                	mov    %edi,%edi
405a62:	55                   	push   %ebp
405a63:	8b ec                	mov    %esp,%ebp
405a65:	ff 35 cc 51 40 00    	push   0x4051cc
405a6b:	ff 75 0c             	push   0xc(%ebp)
405a6e:	ff 35 2c f0 40 00    	push   0x40f02c
405a74:	ff 35 cc 51 40 00    	push   0x4051cc
405a7a:	ff 75 08             	push   0x8(%ebp)
405a7d:	68 00 00 40 00       	push   $0x400000
405a82:	ff 15 34 f0 40 00    	call   *0x40f034
405a88:	5d                   	pop    %ebp
405a89:	c2 08 00             	ret    $0x8
405a8c:	cc                   	int3
405a8d:	cc                   	int3
405a8e:	cc                   	int3
405a8f:	cc                   	int3
405a90:	8b ff                	mov    %edi,%edi
405a92:	55                   	push   %ebp
405a93:	8b ec                	mov    %esp,%ebp
405a95:	81 ec 30 01 00 00    	sub    $0x130,%esp
405a9b:	a1 04 e0 40 00       	mov    0x40e004,%eax
405aa0:	33 c5                	xor    %ebp,%eax
405aa2:	89 45 fc             	mov    %eax,-0x4(%ebp)
405aa5:	53                   	push   %ebx
405aa6:	56                   	push   %esi
405aa7:	8b 75 08             	mov    0x8(%ebp),%esi
405aaa:	33 db                	xor    %ebx,%ebx
405aac:	b8 2f 00 00 00       	mov    $0x2f,%eax
405ab1:	89 b5 d0 fe ff ff    	mov    %esi,-0x130(%ebp)
405ab7:	57                   	push   %edi
405ab8:	89 85 d4 fe ff ff    	mov    %eax,-0x12c(%ebp)
405abe:	8b 36                	mov    (%esi),%esi
405ac0:	c7 85 d8 fe ff ff 80 	movl   $0x80,-0x128(%ebp)
405ac7:	00 00 00
405aca:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
405acd:	0f 84 40 2b 00 00    	je     0x408613
405ad3:	8b 3e                	mov    (%esi),%edi
405ad5:	f7 c7 00 01 00 00    	test   $0x100,%edi
405adb:	74 0b                	je     0x405ae8
405add:	bb 01 00 00 00       	mov    $0x1,%ebx
405ae2:	81 e7 ff fe ff ff    	and    $0xfffffeff,%edi
405ae8:	89 8d dc fe ff ff    	mov    %ecx,-0x124(%ebp)
405aee:	85 d2                	test   %edx,%edx
405af0:	0f 85 37 2b 00 00    	jne    0x40862d
405af6:	c7 85 e0 fe ff ff fc 	movl   $0x4012fc,-0x120(%ebp)
405afd:	12 40 00
405b00:	6a 10                	push   $0x10
405b02:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405b05:	50                   	push   %eax
405b06:	ff 36                	push   (%esi)
405b08:	ff 15 20 f1 40 00    	call   *0x40f120
405b0e:	83 c4 0c             	add    $0xc,%esp
405b11:	8d 45 e4             	lea    -0x1c(%ebp),%eax
405b14:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
405b1a:	83 ff 10             	cmp    $0x10,%edi
405b1d:	0f 85 22 2b 00 00    	jne    0x408645
405b23:	c7 85 e8 fe ff ff d4 	movl   $0x4012d4,-0x118(%ebp)
405b2a:	12 40 00
405b2d:	85 db                	test   %ebx,%ebx
405b2f:	0f 84 f1 2b 00 00    	je     0x408726
405b35:	c7 85 ec fe ff ff b8 	movl   $0x4012b8,-0x114(%ebp)
405b3c:	12 40 00
405b3f:	6a 10                	push   $0x10
405b41:	8d 45 cc             	lea    -0x34(%ebp),%eax
405b44:	50                   	push   %eax
405b45:	ff 76 04             	push   0x4(%esi)
405b48:	ff 15 20 f1 40 00    	call   *0x40f120
405b4e:	8d 45 cc             	lea    -0x34(%ebp),%eax
405b51:	83 c4 0c             	add    $0xc,%esp
405b54:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
405b5a:	8b 46 04             	mov    0x4(%esi),%eax
405b5d:	83 f8 04             	cmp    $0x4,%eax
405b60:	0f 85 cf 2b 00 00    	jne    0x408735
405b66:	c7 85 f4 fe ff ff a4 	movl   $0x4012a4,-0x10c(%ebp)
405b6d:	12 40 00
405b70:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
405b74:	0f 84 4f 2c 00 00    	je     0x4087c9
405b7a:	f6 46 08 01          	testb  $0x1,0x8(%esi)
405b7e:	0f 84 27 2c 00 00    	je     0x4087ab
405b84:	b8 90 12 40 00       	mov    $0x401290,%eax
405b89:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
405b8f:	f6 46 08 02          	testb  $0x2,0x8(%esi)
405b93:	0f 85 1c 2c 00 00    	jne    0x4087b5
405b99:	b8 74 12 40 00       	mov    $0x401274,%eax
405b9e:	89 85 fc fe ff ff    	mov    %eax,-0x104(%ebp)
405ba4:	f6 46 08 04          	testb  $0x4,0x8(%esi)
405ba8:	0f 85 11 2c 00 00    	jne    0x4087bf
405bae:	b8 50 12 40 00       	mov    $0x401250,%eax
405bb3:	f7 46 08 00 01 00 00 	testl  $0x100,0x8(%esi)
405bba:	74 05                	je     0x405bc1
405bbc:	b8 28 12 40 00       	mov    $0x401228,%eax
405bc1:	8b bd d4 fe ff ff    	mov    -0x12c(%ebp),%edi
405bc7:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
405bcd:	6a 0a                	push   $0xa
405bcf:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405bd2:	50                   	push   %eax
405bd3:	ff 76 0c             	push   0xc(%esi)
405bd6:	ff 15 20 f1 40 00    	call   *0x40f120
405bdc:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405bdf:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
405be5:	8d 45 9c             	lea    -0x64(%ebp),%eax
405be8:	6a 10                	push   $0x10
405bea:	50                   	push   %eax
405beb:	ff 76 0c             	push   0xc(%esi)
405bee:	ff 15 20 f1 40 00    	call   *0x40f120
405bf4:	8d 45 9c             	lea    -0x64(%ebp),%eax
405bf7:	89 85 08 ff ff ff    	mov    %eax,-0xf8(%ebp)
405bfd:	8d 45 84             	lea    -0x7c(%ebp),%eax
405c00:	6a 0a                	push   $0xa
405c02:	50                   	push   %eax
405c03:	ff 76 10             	push   0x10(%esi)
405c06:	ff 15 20 f1 40 00    	call   *0x40f120
405c0c:	8d 45 84             	lea    -0x7c(%ebp),%eax
405c0f:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
405c15:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
405c1b:	6a 10                	push   $0x10
405c1d:	50                   	push   %eax
405c1e:	ff 76 10             	push   0x10(%esi)
405c21:	ff 15 20 f1 40 00    	call   *0x40f120
405c27:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
405c2d:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
405c33:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
405c39:	6a 10                	push   $0x10
405c3b:	50                   	push   %eax
405c3c:	ff 76 14             	push   0x14(%esi)
405c3f:	ff 15 20 f1 40 00    	call   *0x40f120
405c45:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
405c4b:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
405c51:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
405c57:	6a 10                	push   $0x10
405c59:	50                   	push   %eax
405c5a:	ff 76 18             	push   0x18(%esi)
405c5d:	ff 15 20 f1 40 00    	call   *0x40f120
405c63:	83 c4 48             	add    $0x48,%esp
405c66:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
405c6c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
405c70:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
405c76:	0f 84 58 2b 00 00    	je     0x4087d4
405c7c:	8d 85 dc fe ff ff    	lea    -0x124(%ebp),%eax
405c82:	50                   	push   %eax
405c83:	6a 02                	push   $0x2
405c85:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
405c8b:	50                   	push   %eax
405c8c:	6a 00                	push   $0x0
405c8e:	57                   	push   %edi
405c8f:	6a 00                	push   $0x0
405c91:	68 00 29 00 00       	push   $0x2900
405c96:	ff 15 78 f0 40 00    	call   *0x40f078
405c9c:	85 c0                	test   %eax,%eax
405c9e:	0f 84 8d 00 00 00    	je     0x405d31
405ca4:	8b 35 c0 eb 40 00    	mov    0x40ebc0,%esi
405caa:	8b bd d4 fe ff ff    	mov    -0x12c(%ebp),%edi
405cb0:	56                   	push   %esi
405cb1:	89 85 d8 fe ff ff    	mov    %eax,-0x128(%ebp)
405cb7:	ff 15 50 f0 40 00    	call   *0x40f050
405cbd:	25 ff 7f ff ff       	and    $0xffff7fff,%eax
405cc2:	83 f8 02             	cmp    $0x2,%eax
405cc5:	0f 84 4f 2b 00 00    	je     0x40881a
405ccb:	8b 85 d8 fe ff ff    	mov    -0x128(%ebp),%eax
405cd1:	03 c0                	add    %eax,%eax
405cd3:	50                   	push   %eax
405cd4:	6a 00                	push   $0x0
405cd6:	ff 15 64 f0 40 00    	call   *0x40f064
405cdc:	8b f0                	mov    %eax,%esi
405cde:	85 f6                	test   %esi,%esi
405ce0:	74 43                	je     0x405d25
405ce2:	8b 95 d8 fe ff ff    	mov    -0x128(%ebp),%edx
405ce8:	6a 00                	push   $0x0
405cea:	6a 00                	push   $0x0
405cec:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
405cef:	51                   	push   %ecx
405cf0:	56                   	push   %esi
405cf1:	52                   	push   %edx
405cf2:	57                   	push   %edi
405cf3:	6a 00                	push   $0x0
405cf5:	6a 01                	push   $0x1
405cf7:	ff 15 a8 f0 40 00    	call   *0x40f0a8
405cfd:	89 85 d8 fe ff ff    	mov    %eax,-0x128(%ebp)
405d03:	85 c0                	test   %eax,%eax
405d05:	74 17                	je     0x405d1e