407a0c:	ff 75 1c             	push   0x1c(%ebp)
407a0f:	53                   	push   %ebx
407a10:	ff 15 78 64 42 00    	call   *0x426478
407a16:	ff d6                	call   *%esi
407a18:	5f                   	pop    %edi
407a19:	5e                   	pop    %esi
407a1a:	5b                   	pop    %ebx
407a1b:	5d                   	pop    %ebp
407a1c:	c2 1c 00             	ret    $0x1c
407a1f:	83 39 00             	cmpl   $0x0,(%ecx)
407a22:	74 13                	je     0x407a37
407a24:	f7 41 04 00 3f 00 3f 	testl  $0x3f003f00,0x4(%ecx)
407a2b:	75 06                	jne    0x407a33
407a2d:	f6 41 04 02          	testb  $0x2,0x4(%ecx)
407a31:	74 04                	je     0x407a37
407a33:	33 c0                	xor    %eax,%eax
407a35:	40                   	inc    %eax
407a36:	c3                   	ret
407a37:	33 c0                	xor    %eax,%eax
407a39:	c3                   	ret
407a3a:	8b ff                	mov    %edi,%edi
407a3c:	55                   	push   %ebp
407a3d:	8b ec                	mov    %esp,%ebp
407a3f:	83 ec 30             	sub    $0x30,%esp
407a42:	a1 10 42 42 00       	mov    0x424210,%eax
407a47:	33 c5                	xor    %ebp,%eax
407a49:	89 45 f8             	mov    %eax,-0x8(%ebp)
407a4c:	53                   	push   %ebx
407a4d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407a50:	56                   	push   %esi
407a51:	57                   	push   %edi
407a52:	6a 34                	push   $0x34
407a54:	33 f6                	xor    %esi,%esi
407a56:	89 55 d4             	mov    %edx,-0x2c(%ebp)
407a59:	8b f9                	mov    %ecx,%edi
407a5b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
407a5e:	56                   	push   %esi
407a5f:	57                   	push   %edi
407a60:	89 7d f4             	mov    %edi,-0xc(%ebp)
407a63:	89 75 d0             	mov    %esi,-0x30(%ebp)
407a66:	e8 dd ad 01 00       	call   0x422848
407a6b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
407a6e:	83 c4 0c             	add    $0xc,%esp
407a71:	f7 db                	neg    %ebx
407a73:	89 07                	mov    %eax,(%edi)
407a75:	89 75 dc             	mov    %esi,-0x24(%ebp)
407a78:	1b db                	sbb    %ebx,%ebx
407a7a:	81 e3 c8 00 00 00    	and    $0xc8,%ebx
407a80:	85 c0                	test   %eax,%eax
407a82:	75 0d                	jne    0x407a91
407a84:	a1 58 1d 40 00       	mov    0x401d58,%eax
407a89:	8b 0d 5c 1d 40 00    	mov    0x401d5c,%ecx
407a8f:	eb 0b                	jmp    0x407a9c
407a91:	a1 f8 1c 40 00       	mov    0x401cf8,%eax
407a96:	8b 0d fc 1c 40 00    	mov    0x401cfc,%ecx
407a9c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
407a9f:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
407aa2:	51                   	push   %ecx
407aa3:	ff 75 e0             	push   -0x20(%ebp)
407aa6:	89 45 e8             	mov    %eax,-0x18(%ebp)
407aa9:	8d 47 08             	lea    0x8(%edi),%eax
407aac:	50                   	push   %eax
407aad:	51                   	push   %ecx
407aae:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407ab1:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407ab4:	e8 59 fe ff ff       	call   0x407912
407ab9:	89 45 d8             	mov    %eax,-0x28(%ebp)
407abc:	6a 10                	push   $0x10
407abe:	5a                   	pop    %edx
407abf:	85 c0                	test   %eax,%eax
407ac1:	75 74                	jne    0x407b37
407ac3:	8b 4d e0             	mov    -0x20(%ebp),%ecx
407ac6:	85 c9                	test   %ecx,%ecx
407ac8:	74 04                	je     0x407ace
407aca:	8b f1                	mov    %ecx,%esi
407acc:	eb 69                	jmp    0x407b37
407ace:	b8 c8 00 00 00       	mov    $0xc8,%eax
407ad3:	3b d8                	cmp    %eax,%ebx
407ad5:	73 02                	jae    0x407ad9
407ad7:	8b d8                	mov    %eax,%ebx
407ad9:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
407adc:	73 03                	jae    0x407ae1
407ade:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
407ae1:	3b da                	cmp    %edx,%ebx
407ae3:	73 02                	jae    0x407ae7
407ae5:	8b da                	mov    %edx,%ebx
407ae7:	8b 45 dc             	mov    -0x24(%ebp),%eax
407aea:	85 c0                	test   %eax,%eax
407aec:	74 11                	je     0x407aff
407aee:	50                   	push   %eax
407aef:	33 c9                	xor    %ecx,%ecx
407af1:	51                   	push   %ecx
407af2:	ff 15 7c 60 42 00    	call   *0x42607c
407af8:	50                   	push   %eax
407af9:	ff 15 a4 61 42 00    	call   *0x4261a4
407aff:	53                   	push   %ebx
407b00:	6a 00                	push   $0x0
407b02:	ff 15 7c 60 42 00    	call   *0x42607c
407b08:	50                   	push   %eax
407b09:	ff 15 a0 61 42 00    	call   *0x4261a0
407b0f:	8b f0                	mov    %eax,%esi
407b11:	89 75 dc             	mov    %esi,-0x24(%ebp)
407b14:	85 f6                	test   %esi,%esi
407b16:	0f 84 a3 00 00 00    	je     0x407bbf
407b1c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
407b1f:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407b22:	50                   	push   %eax
407b23:	56                   	push   %esi
407b24:	8d 47 08             	lea    0x8(%edi),%eax
407b27:	50                   	push   %eax
407b28:	51                   	push   %ecx
407b29:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407b2c:	e8 e1 fd ff ff       	call   0x407912
407b31:	6a 10                	push   $0x10
407b33:	89 45 d8             	mov    %eax,-0x28(%ebp)
407b36:	5a                   	pop    %edx
407b37:	3d 23 00 00 c0       	cmp    $0xc0000023,%eax
407b3c:	74 90                	je     0x407ace
407b3e:	85 c0                	test   %eax,%eax
407b40:	0f 85 52 01 00 00    	jne    0x407c98
407b46:	85 f6                	test   %esi,%esi
407b48:	0f 84 4a 01 00 00    	je     0x407c98
407b4e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
407b51:	83 fa 04             	cmp    $0x4,%edx
407b54:	76 05                	jbe    0x407b5b
407b56:	8a 06                	mov    (%esi),%al
407b58:	88 47 0c             	mov    %al,0xc(%edi)
407b5b:	6a 10                	push   $0x10
407b5d:	59                   	pop    %ecx
407b5e:	3b d1                	cmp    %ecx,%edx
407b60:	0f 82 dd 00 00 00    	jb     0x407c43
407b66:	80 7f 0c 02          	cmpb   $0x2,0xc(%edi)
407b6a:	0f 85 d3 00 00 00    	jne    0x407c43
407b70:	0f b7 46 02          	movzwl 0x2(%esi),%eax
407b74:	66 3b c1             	cmp    %cx,%ax
407b77:	0f 82 c6 00 00 00    	jb     0x407c43
407b7d:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407b81:	6b c8 0c             	imul   $0xc,%eax,%ecx
407b84:	0f b7 46 06          	movzwl 0x6(%esi),%eax
407b88:	c1 e0 04             	shl    $0x4,%eax
407b8b:	03 c8                	add    %eax,%ecx
407b8d:	0f b7 46 02          	movzwl 0x2(%esi),%eax
407b91:	03 c8                	add    %eax,%ecx
407b93:	3b d1                	cmp    %ecx,%edx
407b95:	0f 82 a5 00 00 00    	jb     0x407c40
407b9b:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
407b9f:	33 c0                	xor    %eax,%eax
407ba1:	89 45 e0             	mov    %eax,-0x20(%ebp)
407ba4:	66 85 c9             	test   %cx,%cx
407ba7:	74 4d                	je     0x407bf6
407ba9:	89 45 d8             	mov    %eax,-0x28(%ebp)
407bac:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
407baf:	75 18                	jne    0x407bc9
407bb1:	8b 0d 28 1d 40 00    	mov    0x401d28,%ecx
407bb7:	8b 15 2c 1d 40 00    	mov    0x401d2c,%edx
407bbd:	eb 16                	jmp    0x407bd5
407bbf:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
407bc4:	e9 e9 00 00 00       	jmp    0x407cb2
407bc9:	8b 0d 48 1d 40 00    	mov    0x401d48,%ecx
407bcf:	8b 15 4c 1d 40 00    	mov    0x401d4c,%edx
407bd5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407bd8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407bdb:	51                   	push   %ecx
407bdc:	50                   	push   %eax
407bdd:	8d 45 e0             	lea    -0x20(%ebp),%eax
407be0:	89 55 f4             	mov    %edx,-0xc(%ebp)
407be3:	50                   	push   %eax
407be4:	51                   	push   %ecx
407be5:	8d 4d f0             	lea    -0x10(%ebp),%ecx
407be8:	e8 25 fd ff ff       	call   0x407912
407bed:	8b 45 e0             	mov    -0x20(%ebp),%eax
407bf0:	8b 55 e4             	mov    -0x1c(%ebp),%edx
407bf3:	89 45 d0             	mov    %eax,-0x30(%ebp)
407bf6:	8d 4e 10             	lea    0x10(%esi),%ecx
407bf9:	89 77 14             	mov    %esi,0x14(%edi)
407bfc:	89 4f 18             	mov    %ecx,0x18(%edi)
407bff:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407c03:	6b c0 0c             	imul   $0xc,%eax,%eax
407c06:	03 c1                	add    %ecx,%eax
407c08:	89 47 1c             	mov    %eax,0x1c(%edi)
407c0b:	33 c0                	xor    %eax,%eax
407c0d:	39 45 d0             	cmp    %eax,-0x30(%ebp)
407c10:	0f 95 c0             	setne  %al
407c13:	89 47 20             	mov    %eax,0x20(%edi)
407c16:	80 3e 02             	cmpb   $0x2,(%esi)
407c19:	75 5a                	jne    0x407c75
407c1b:	80 7e 01 02          	cmpb   $0x2,0x1(%esi)
407c1f:	73 54                	jae    0x407c75
407c21:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407c25:	6b d0 0c             	imul   $0xc,%eax,%edx
407c28:	0f b7 46 06          	movzwl 0x6(%esi),%eax
407c2c:	c1 e0 04             	shl    $0x4,%eax
407c2f:	03 d0                	add    %eax,%edx
407c31:	0f b7 46 02          	movzwl 0x2(%esi),%eax
407c35:	03 d0                	add    %eax,%edx
407c37:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
407c3e:	eb 35                	jmp    0x407c75
407c40:	6a 10                	push   $0x10
407c42:	59                   	pop    %ecx
407c43:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407c46:	33 c0                	xor    %eax,%eax
407c48:	8b fe                	mov    %esi,%edi
407c4a:	ab                   	stos   %eax,%es:(%edi)
407c4b:	ab                   	stos   %eax,%es:(%edi)
407c4c:	ab                   	stos   %eax,%es:(%edi)
407c4d:	ab                   	stos   %eax,%es:(%edi)
407c4e:	8b 7d f4             	mov    -0xc(%ebp),%edi
407c51:	66 89 4e 02          	mov    %cx,0x2(%esi)
407c55:	66 c7 06 02 02       	movw   $0x202,(%esi)
407c5a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
407c5d:	89 77 14             	mov    %esi,0x14(%edi)
407c60:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
407c64:	03 ce                	add    %esi,%ecx
407c66:	89 4f 18             	mov    %ecx,0x18(%edi)
407c69:	0f b7 46 04          	movzwl 0x4(%esi),%eax
407c6d:	6b c0 0c             	imul   $0xc,%eax,%eax
407c70:	03 c1                	add    %ecx,%eax
407c72:	89 47 1c             	mov    %eax,0x1c(%edi)
407c75:	8b 4d dc             	mov    -0x24(%ebp),%ecx
407c78:	89 77 24             	mov    %esi,0x24(%edi)
407c7b:	89 57 28             	mov    %edx,0x28(%edi)
407c7e:	85 c9                	test   %ecx,%ecx
407c80:	75 05                	jne    0x407c87
407c82:	bb c8 00 00 00       	mov    $0xc8,%ebx
407c87:	33 c0                	xor    %eax,%eax
407c89:	89 5f 2c             	mov    %ebx,0x2c(%edi)
407c8c:	3b f1                	cmp    %ecx,%esi
407c8e:	0f 94 c0             	sete   %al
407c91:	89 47 30             	mov    %eax,0x30(%edi)
407c94:	33 c0                	xor    %eax,%eax
407c96:	eb 1a                	jmp    0x407cb2
407c98:	8b 45 dc             	mov    -0x24(%ebp),%eax
407c9b:	85 c0                	test   %eax,%eax
407c9d:	74 10                	je     0x407caf
407c9f:	50                   	push   %eax
407ca0:	6a 00                	push   $0x0
407ca2:	ff 15 7c 60 42 00    	call   *0x42607c
407ca8:	50                   	push   %eax
407ca9:	ff 15 a4 61 42 00    	call   *0x4261a4
407caf:	8b 45 d8             	mov    -0x28(%ebp),%eax
407cb2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407cb5:	5f                   	pop    %edi
407cb6:	5e                   	pop    %esi
407cb7:	33 cd                	xor    %ebp,%ecx
407cb9:	5b                   	pop    %ebx
407cba:	e8 b1 9b 01 00       	call   0x421870
407cbf:	c9                   	leave
407cc0:	c2 0c 00             	ret    $0xc
407cc3:	8b ff                	mov    %edi,%edi
407cc5:	53                   	push   %ebx
407cc6:	57                   	push   %edi
407cc7:	8b f9                	mov    %ecx,%edi
407cc9:	33 db                	xor    %ebx,%ebx
407ccb:	39 5f 30             	cmp    %ebx,0x30(%edi)
407cce:	74 1a                	je     0x407cea
407cd0:	56                   	push   %esi
407cd1:	8b 77 24             	mov    0x24(%edi),%esi
407cd4:	ff 15 7c 60 42 00    	call   *0x42607c
407cda:	56                   	push   %esi
407cdb:	53                   	push   %ebx
407cdc:	50                   	push   %eax
407cdd:	ff 15 a4 61 42 00    	call   *0x4261a4
407ce3:	89 5f 24             	mov    %ebx,0x24(%edi)
407ce6:	89 5f 14             	mov    %ebx,0x14(%edi)
407ce9:	5e                   	pop    %esi
407cea:	5f                   	pop    %edi
407ceb:	5b                   	pop    %ebx
407cec:	c3                   	ret
407ced:	8b ff                	mov    %edi,%edi
407cef:	55                   	push   %ebp
407cf0:	8b ec                	mov    %esp,%ebp
407cf2:	83 ec 20             	sub    $0x20,%esp
407cf5:	53                   	push   %ebx
407cf6:	56                   	push   %esi
407cf7:	57                   	push   %edi
407cf8:	8b f9                	mov    %ecx,%edi
407cfa:	89 55 f8             	mov    %edx,-0x8(%ebp)
407cfd:	33 d2                	xor    %edx,%edx
407cff:	89 7d fc             	mov    %edi,-0x4(%ebp)
407d02:	6a 0c                	push   $0xc
407d04:	8b f2                	mov    %edx,%esi
407d06:	8b ca                	mov    %edx,%ecx
407d08:	8b 5f 14             	mov    0x14(%edi),%ebx
407d0b:	8b 47 18             	mov    0x18(%edi),%eax
407d0e:	89 45 ec             	mov    %eax,-0x14(%ebp)
407d11:	89 5d f0             	mov    %ebx,-0x10(%ebp)
407d14:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
407d18:	89 45 f4             	mov    %eax,-0xc(%ebp)
407d1b:	5b                   	pop    %ebx
407d1c:	85 c0                	test   %eax,%eax
407d1e:	74 44                	je     0x407d64
407d20:	8b 47 18             	mov    0x18(%edi),%eax
407d23:	8b 7d 08             	mov    0x8(%ebp),%edi
407d26:	39 38                	cmp    %edi,(%eax)
407d28:	8b 7d fc             	mov    -0x4(%ebp),%edi
407d2b:	75 2f                	jne    0x407d5c
407d2d:	39 55 0c             	cmp    %edx,0xc(%ebp)
407d30:	74 19                	je     0x407d4b
407d32:	39 57 20             	cmp    %edx,0x20(%edi)
407d35:	74 14                	je     0x407d4b
407d37:	f6 40 04 01          	testb  $0x1,0x4(%eax)
407d3b:	75 1f                	jne    0x407d5c
407d3d:	6b f1 0c             	imul   $0xc,%ecx,%esi
407d40:	8d 7d e0             	lea    -0x20(%ebp),%edi
407d43:	03 75 ec             	add    -0x14(%ebp),%esi
407d46:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d47:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d48:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d49:	eb 23                	jmp    0x407d6e
407d4b:	8b f0                	mov    %eax,%esi
407d4d:	8d 7d e0             	lea    -0x20(%ebp),%edi
407d50:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d51:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d52:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407d53:	33 f6                	xor    %esi,%esi
407d55:	46                   	inc    %esi
407d56:	f6 40 04 01          	testb  $0x1,0x4(%eax)
407d5a:	75 08                	jne    0x407d64
407d5c:	41                   	inc    %ecx
407d5d:	03 c3                	add    %ebx,%eax
407d5f:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
407d62:	72 bf                	jb     0x407d23
407d64:	8b c2                	mov    %edx,%eax
407d66:	85 f6                	test   %esi,%esi
407d68:	0f 84 c1 00 00 00    	je     0x407e2f
407d6e:	39 55 0c             	cmp    %edx,0xc(%ebp)
407d71:	74 08                	je     0x407d7b
407d73:	8b 45 fc             	mov    -0x4(%ebp),%eax
407d76:	39 50 20             	cmp    %edx,0x20(%eax)
407d79:	75 03                	jne    0x407d7e
407d7b:	6a 08                	push   $0x8
407d7d:	5b                   	pop    %ebx
407d7e:	8b 45 f0             	mov    -0x10(%ebp),%eax
407d81:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407d84:	8b 04 03             	mov    (%ebx,%eax,1),%eax
407d87:	a8 04                	test   $0x4,%al
407d89:	74 06                	je     0x407d91
407d8b:	81 e1 ff cf ff ff    	and    $0xffffcfff,%ecx
407d91:	a8 02                	test   $0x2,%al
407d93:	74 06                	je     0x407d9b
407d95:	81 e1 ff f3 ff ff    	and    $0xfffff3ff,%ecx
407d9b:	a8 01                	test   $0x1,%al
407d9d:	74 06                	je     0x407da5
407d9f:	81 e1 ff fc ff ff    	and    $0xfffffcff,%ecx
407da5:	a8 08                	test   $0x8,%al
407da7:	74 0b                	je     0x407db4
407da9:	81 e1 ff ff ff c0    	and    $0xc0ffffff,%ecx
407daf:	89 55 f4             	mov    %edx,-0xc(%ebp)
407db2:	eb 06                	jmp    0x407dba
407db4:	8b 45 e8             	mov    -0x18(%ebp),%eax