405d19:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405d20:	8b 01                	mov    (%ecx),%eax
405d22:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
405d27:	03 d0                	add    %eax,%edx
405d29:	83 f0 ff             	xor    $0xffffffff,%eax
405d2c:	33 c2                	xor    %edx,%eax
405d2e:	83 c1 04             	add    $0x4,%ecx
405d31:	a9 00 01 01 81       	test   $0x81010100,%eax
405d36:	74 e8                	je     0x405d20
405d38:	8b 41 fc             	mov    -0x4(%ecx),%eax
405d3b:	84 c0                	test   %al,%al
405d3d:	74 32                	je     0x405d71
405d3f:	84 e4                	test   %ah,%ah
405d41:	74 24                	je     0x405d67
405d43:	a9 00 00 ff 00       	test   $0xff0000,%eax
405d48:	74 13                	je     0x405d5d
405d4a:	a9 00 00 00 ff       	test   $0xff000000,%eax
405d4f:	74 02                	je     0x405d53
405d51:	eb cd                	jmp    0x405d20
405d53:	8d 41 ff             	lea    -0x1(%ecx),%eax
405d56:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405d5a:	2b c1                	sub    %ecx,%eax
405d5c:	c3                   	ret
405d5d:	8d 41 fe             	lea    -0x2(%ecx),%eax
405d60:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405d64:	2b c1                	sub    %ecx,%eax
405d66:	c3                   	ret
405d67:	8d 41 fd             	lea    -0x3(%ecx),%eax
405d6a:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405d6e:	2b c1                	sub    %ecx,%eax
405d70:	c3                   	ret
405d71:	8d 41 fc             	lea    -0x4(%ecx),%eax
405d74:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405d78:	2b c1                	sub    %ecx,%eax
405d7a:	c3                   	ret
405d7b:	55                   	push   %ebp
405d7c:	8b ec                	mov    %esp,%ebp
405d7e:	8b 45 0c             	mov    0xc(%ebp),%eax
405d81:	83 ec 20             	sub    $0x20,%esp
405d84:	56                   	push   %esi
405d85:	57                   	push   %edi
405d86:	6a 08                	push   $0x8
405d88:	59                   	pop    %ecx
405d89:	be fc a2 41 00       	mov    $0x41a2fc,%esi
405d8e:	8d 7d e0             	lea    -0x20(%ebp),%edi
405d91:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405d93:	8b 4d 08             	mov    0x8(%ebp),%ecx
405d96:	5f                   	pop    %edi
405d97:	5e                   	pop    %esi
405d98:	85 c0                	test   %eax,%eax
405d9a:	74 0d                	je     0x405da9
405d9c:	f6 00 10             	testb  $0x10,(%eax)
405d9f:	74 08                	je     0x405da9
405da1:	8b 01                	mov    (%ecx),%eax
405da3:	8b 40 fc             	mov    -0x4(%eax),%eax
405da6:	8b 40 18             	mov    0x18(%eax),%eax
405da9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405dac:	89 45 fc             	mov    %eax,-0x4(%ebp)
405daf:	85 c0                	test   %eax,%eax
405db1:	74 0c                	je     0x405dbf
405db3:	f6 00 08             	testb  $0x8,(%eax)
405db6:	74 07                	je     0x405dbf
405db8:	c7 45 f4 00 40 99 01 	movl   $0x1994000,-0xc(%ebp)
405dbf:	8d 45 f4             	lea    -0xc(%ebp),%eax
405dc2:	50                   	push   %eax
405dc3:	ff 75 f0             	push   -0x10(%ebp)
405dc6:	ff 75 e4             	push   -0x1c(%ebp)
405dc9:	ff 75 e0             	push   -0x20(%ebp)
405dcc:	ff 15 84 90 41 00    	call   *0x419084
405dd2:	c9                   	leave
405dd3:	c2 08 00             	ret    $0x8
405dd6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405dd9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405de0:	59                   	pop    %ecx
405de1:	5f                   	pop    %edi
405de2:	5f                   	pop    %edi
405de3:	5e                   	pop    %esi
405de4:	5b                   	pop    %ebx
405de5:	8b e5                	mov    %ebp,%esp
405de7:	5d                   	pop    %ebp
405de8:	51                   	push   %ecx
405de9:	c3                   	ret
405dea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405ded:	33 cd                	xor    %ebp,%ecx
405def:	e8 45 e9 ff ff       	call   0x404739
405df4:	e9 dd ff ff ff       	jmp    0x405dd6
405df9:	50                   	push   %eax
405dfa:	64 ff 35 00 00 00 00 	push   %fs:0x0
405e01:	8d 44 24 0c          	lea    0xc(%esp),%eax
405e05:	2b 64 24 0c          	sub    0xc(%esp),%esp
405e09:	53                   	push   %ebx
405e0a:	56                   	push   %esi
405e0b:	57                   	push   %edi
405e0c:	89 28                	mov    %ebp,(%eax)
405e0e:	8b e8                	mov    %eax,%ebp
405e10:	a1 90 08 42 00       	mov    0x420890,%eax
405e15:	33 c5                	xor    %ebp,%eax
405e17:	50                   	push   %eax
405e18:	ff 75 fc             	push   -0x4(%ebp)
405e1b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
405e22:	8d 45 f4             	lea    -0xc(%ebp),%eax
405e25:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405e2b:	c3                   	ret
405e2c:	50                   	push   %eax
405e2d:	64 ff 35 00 00 00 00 	push   %fs:0x0
405e34:	8d 44 24 0c          	lea    0xc(%esp),%eax
405e38:	2b 64 24 0c          	sub    0xc(%esp),%esp
405e3c:	53                   	push   %ebx
405e3d:	56                   	push   %esi
405e3e:	57                   	push   %edi
405e3f:	89 28                	mov    %ebp,(%eax)
405e41:	8b e8                	mov    %eax,%ebp
405e43:	a1 90 08 42 00       	mov    0x420890,%eax
405e48:	33 c5                	xor    %ebp,%eax
405e4a:	50                   	push   %eax
405e4b:	89 45 f0             	mov    %eax,-0x10(%ebp)
405e4e:	ff 75 fc             	push   -0x4(%ebp)
405e51:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
405e58:	8d 45 f4             	lea    -0xc(%ebp),%eax
405e5b:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405e61:	c3                   	ret
405e62:	50                   	push   %eax
405e63:	64 ff 35 00 00 00 00 	push   %fs:0x0
405e6a:	8d 44 24 0c          	lea    0xc(%esp),%eax
405e6e:	2b 64 24 0c          	sub    0xc(%esp),%esp
405e72:	53                   	push   %ebx
405e73:	56                   	push   %esi
405e74:	57                   	push   %edi
405e75:	89 28                	mov    %ebp,(%eax)
405e77:	8b e8                	mov    %eax,%ebp
405e79:	a1 90 08 42 00       	mov    0x420890,%eax
405e7e:	33 c5                	xor    %ebp,%eax
405e80:	50                   	push   %eax
405e81:	89 65 f0             	mov    %esp,-0x10(%ebp)
405e84:	ff 75 fc             	push   -0x4(%ebp)
405e87:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
405e8e:	8d 45 f4             	lea    -0xc(%ebp),%eax
405e91:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405e97:	c3                   	ret
405e98:	55                   	push   %ebp
405e99:	8b ec                	mov    %esp,%ebp
405e9b:	56                   	push   %esi
405e9c:	fc                   	cld
405e9d:	8b 75 0c             	mov    0xc(%ebp),%esi
405ea0:	8b 4e 08             	mov    0x8(%esi),%ecx
405ea3:	33 ce                	xor    %esi,%ecx
405ea5:	e8 8f e8 ff ff       	call   0x404739
405eaa:	6a 00                	push   $0x0
405eac:	56                   	push   %esi
405ead:	ff 76 14             	push   0x14(%esi)
405eb0:	ff 76 0c             	push   0xc(%esi)
405eb3:	6a 00                	push   $0x0
405eb5:	ff 75 10             	push   0x10(%ebp)
405eb8:	ff 76 10             	push   0x10(%esi)
405ebb:	ff 75 08             	push   0x8(%ebp)
405ebe:	e8 64 1d 00 00       	call   0x407c27
405ec3:	83 c4 20             	add    $0x20,%esp
405ec6:	5e                   	pop    %esi
405ec7:	5d                   	pop    %ebp
405ec8:	c3                   	ret
405ec9:	55                   	push   %ebp
405eca:	8b ec                	mov    %esp,%ebp
405ecc:	51                   	push   %ecx
405ecd:	53                   	push   %ebx
405ece:	fc                   	cld
405ecf:	8b 45 0c             	mov    0xc(%ebp),%eax
405ed2:	8b 48 08             	mov    0x8(%eax),%ecx
405ed5:	33 4d 0c             	xor    0xc(%ebp),%ecx
405ed8:	e8 5c e8 ff ff       	call   0x404739
405edd:	8b 45 08             	mov    0x8(%ebp),%eax
405ee0:	8b 40 04             	mov    0x4(%eax),%eax
405ee3:	83 e0 66             	and    $0x66,%eax
405ee6:	74 11                	je     0x405ef9
405ee8:	8b 45 0c             	mov    0xc(%ebp),%eax
405eeb:	c7 40 24 01 00 00 00 	movl   $0x1,0x24(%eax)
405ef2:	33 c0                	xor    %eax,%eax
405ef4:	40                   	inc    %eax
405ef5:	eb 6c                	jmp    0x405f63
405ef7:	eb 6a                	jmp    0x405f63
405ef9:	6a 01                	push   $0x1
405efb:	8b 45 0c             	mov    0xc(%ebp),%eax
405efe:	ff 70 18             	push   0x18(%eax)
405f01:	8b 45 0c             	mov    0xc(%ebp),%eax
405f04:	ff 70 14             	push   0x14(%eax)
405f07:	8b 45 0c             	mov    0xc(%ebp),%eax
405f0a:	ff 70 0c             	push   0xc(%eax)
405f0d:	6a 00                	push   $0x0
405f0f:	ff 75 10             	push   0x10(%ebp)
405f12:	8b 45 0c             	mov    0xc(%ebp),%eax
405f15:	ff 70 10             	push   0x10(%eax)
405f18:	ff 75 08             	push   0x8(%ebp)
405f1b:	e8 07 1d 00 00       	call   0x407c27
405f20:	83 c4 20             	add    $0x20,%esp
405f23:	8b 45 0c             	mov    0xc(%ebp),%eax
405f26:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
405f2a:	75 0b                	jne    0x405f37
405f2c:	ff 75 08             	push   0x8(%ebp)
405f2f:	ff 75 0c             	push   0xc(%ebp)
405f32:	e8 18 02 00 00       	call   0x40614f
405f37:	6a 00                	push   $0x0
405f39:	6a 00                	push   $0x0
405f3b:	6a 00                	push   $0x0
405f3d:	6a 00                	push   $0x0
405f3f:	6a 00                	push   $0x0
405f41:	8d 45 fc             	lea    -0x4(%ebp),%eax
405f44:	50                   	push   %eax
405f45:	68 23 01 00 00       	push   $0x123
405f4a:	e8 7c 00 00 00       	call   0x405fcb
405f4f:	83 c4 1c             	add    $0x1c,%esp
405f52:	8b 45 fc             	mov    -0x4(%ebp),%eax
405f55:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405f58:	8b 63 1c             	mov    0x1c(%ebx),%esp
405f5b:	8b 6b 20             	mov    0x20(%ebx),%ebp
405f5e:	ff e0                	jmp    *%eax
405f60:	33 c0                	xor    %eax,%eax
405f62:	40                   	inc    %eax
405f63:	5b                   	pop    %ebx
405f64:	c9                   	leave
405f65:	c3                   	ret
405f66:	55                   	push   %ebp
405f67:	8b ec                	mov    %esp,%ebp
405f69:	83 ec 18             	sub    $0x18,%esp
405f6c:	a1 90 08 42 00       	mov    0x420890,%eax
405f71:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
405f75:	8d 4d e8             	lea    -0x18(%ebp),%ecx
405f78:	33 c1                	xor    %ecx,%eax
405f7a:	8b 4d 08             	mov    0x8(%ebp),%ecx
405f7d:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f80:	8b 45 0c             	mov    0xc(%ebp),%eax
405f83:	89 45 f4             	mov    %eax,-0xc(%ebp)
405f86:	8b 45 14             	mov    0x14(%ebp),%eax
405f89:	40                   	inc    %eax
405f8a:	c7 45 ec 98 5e 40 00 	movl   $0x405e98,-0x14(%ebp)
405f91:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405f94:	89 45 fc             	mov    %eax,-0x4(%ebp)
405f97:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
405f9d:	89 45 e8             	mov    %eax,-0x18(%ebp)
405fa0:	8d 45 e8             	lea    -0x18(%ebp),%eax
405fa3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405fa9:	ff 75 18             	push   0x18(%ebp)
405fac:	51                   	push   %ecx
405fad:	ff 75 10             	push   0x10(%ebp)
405fb0:	e8 0b 7e 00 00       	call   0x40ddc0
405fb5:	8b c8                	mov    %eax,%ecx
405fb7:	8b 45 e8             	mov    -0x18(%ebp),%eax
405fba:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405fc0:	8b c1                	mov    %ecx,%eax
405fc2:	c9                   	leave
405fc3:	c3                   	ret
405fc4:	58                   	pop    %eax
405fc5:	59                   	pop    %ecx
405fc6:	87 04 24             	xchg   %eax,(%esp)
405fc9:	ff e0                	jmp    *%eax
405fcb:	55                   	push   %ebp
405fcc:	8b ec                	mov    %esp,%ebp
405fce:	83 ec 38             	sub    $0x38,%esp
405fd1:	53                   	push   %ebx
405fd2:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
405fd9:	75 12                	jne    0x405fed
405fdb:	b8 74 60 40 00       	mov    $0x406074,%eax
405fe0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405fe3:	89 01                	mov    %eax,(%ecx)
405fe5:	33 c0                	xor    %eax,%eax
405fe7:	40                   	inc    %eax
405fe8:	e9 b0 00 00 00       	jmp    0x40609d
405fed:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
405ff1:	c7 45 cc c9 5e 40 00 	movl   $0x405ec9,-0x34(%ebp)
405ff8:	a1 90 08 42 00       	mov    0x420890,%eax
405ffd:	8d 4d c8             	lea    -0x38(%ebp),%ecx
406000:	33 c1                	xor    %ecx,%eax
406002:	89 45 d0             	mov    %eax,-0x30(%ebp)
406005:	8b 45 18             	mov    0x18(%ebp),%eax
406008:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40600b:	8b 45 0c             	mov    0xc(%ebp),%eax
40600e:	89 45 d8             	mov    %eax,-0x28(%ebp)
406011:	8b 45 1c             	mov    0x1c(%ebp),%eax
406014:	89 45 dc             	mov    %eax,-0x24(%ebp)
406017:	8b 45 20             	mov    0x20(%ebp),%eax
40601a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40601d:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
406021:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
406025:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
406029:	89 65 e4             	mov    %esp,-0x1c(%ebp)
40602c:	89 6d e8             	mov    %ebp,-0x18(%ebp)
40602f:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406035:	89 45 c8             	mov    %eax,-0x38(%ebp)
406038:	8d 45 c8             	lea    -0x38(%ebp),%eax
40603b:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406041:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
406048:	8b 45 08             	mov    0x8(%ebp),%eax
40604b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40604e:	8b 45 10             	mov    0x10(%ebp),%eax
406051:	89 45 f4             	mov    %eax,-0xc(%ebp)
406054:	e8 7d 63 00 00       	call   0x40c3d6
406059:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
40605f:	89 45 f8             	mov    %eax,-0x8(%ebp)
406062:	8d 45 f0             	lea    -0x10(%ebp),%eax
406065:	50                   	push   %eax
406066:	8b 45 08             	mov    0x8(%ebp),%eax
406069:	ff 30                	push   (%eax)
40606b:	ff 55 f8             	call   *-0x8(%ebp)
40606e:	59                   	pop    %ecx
40606f:	59                   	pop    %ecx
406070:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406074:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
406078:	74 17                	je     0x406091
40607a:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
406081:	8b 03                	mov    (%ebx),%eax
406083:	8b 5d c8             	mov    -0x38(%ebp),%ebx
406086:	89 03                	mov    %eax,(%ebx)
406088:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
40608f:	eb 09                	jmp    0x40609a
406091:	8b 45 c8             	mov    -0x38(%ebp),%eax
406094:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40609a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40609d:	5b                   	pop    %ebx
40609e:	c9                   	leave
40609f:	c3                   	ret
4060a0:	55                   	push   %ebp
4060a1:	8b ec                	mov    %esp,%ebp
4060a3:	51                   	push   %ecx
4060a4:	51                   	push   %ecx
4060a5:	8b 45 08             	mov    0x8(%ebp),%eax
4060a8:	53                   	push   %ebx
4060a9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4060ac:	8b 48 10             	mov    0x10(%eax),%ecx
4060af:	56                   	push   %esi
4060b0:	8b 70 0c             	mov    0xc(%eax),%esi
4060b3:	57                   	push   %edi
4060b4:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4060b7:	8b fe                	mov    %esi,%edi
4060b9:	89 75 fc             	mov    %esi,-0x4(%ebp)
4060bc:	85 db                	test   %ebx,%ebx
4060be:	78 35                	js     0x4060f5
4060c0:	8b 55 10             	mov    0x10(%ebp),%edx
4060c3:	83 fe ff             	cmp    $0xffffffff,%esi
4060c6:	75 0b                	jne    0x4060d3
4060c8:	e8 3f 7d 00 00       	call   0x40de0c
4060cd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4060d0:	8b 55 10             	mov    0x10(%ebp),%edx
4060d3:	4e                   	dec    %esi
4060d4:	8b c6                	mov    %esi,%eax
4060d6:	6b c0 14             	imul   $0x14,%eax,%eax
4060d9:	39 54 08 04          	cmp    %edx,0x4(%eax,%ecx,1)
4060dd:	7d 06                	jge    0x4060e5
4060df:	3b 54 08 08          	cmp    0x8(%eax,%ecx,1),%edx
4060e3:	7e 05                	jle    0x4060ea
4060e5:	83 fe ff             	cmp    $0xffffffff,%esi
4060e8:	75 07                	jne    0x4060f1
4060ea:	8b 7d fc             	mov    -0x4(%ebp),%edi