401ac3:	53                   	push   %ebx
401ac4:	50                   	push   %eax
401ac5:	57                   	push   %edi
401ac6:	ff 15 28 34 47 00    	call   *0x473428
401acc:	85 c0                	test   %eax,%eax
401ace:	74 48                	je     0x401b18
401ad0:	d1 ee                	shr    $1,%esi
401ad2:	33 c9                	xor    %ecx,%ecx
401ad4:	66 89 0c 73          	mov    %cx,(%ebx,%esi,2)
401ad8:	8b 9c 24 0c 05 00 00 	mov    0x50c(%esp),%ebx
401adf:	85 db                	test   %ebx,%ebx
401ae1:	74 7e                	je     0x401b61
401ae3:	0f b7 74 24 4c       	movzwl 0x4c(%esp),%esi
401ae8:	8b 84 24 10 05 00 00 	mov    0x510(%esp),%eax
401aef:	48                   	dec    %eax
401af0:	3b f0                	cmp    %eax,%esi
401af2:	7e 02                	jle    0x401af6
401af4:	8b f0                	mov    %eax,%esi
401af6:	8b 4c 24 50          	mov    0x50(%esp),%ecx
401afa:	8d 54 24 10          	lea    0x10(%esp),%edx
401afe:	52                   	push   %edx
401aff:	68 08 02 00 00       	push   $0x208
401b04:	8d 84 24 ac 00 00 00 	lea    0xac(%esp),%eax
401b0b:	50                   	push   %eax
401b0c:	51                   	push   %ecx
401b0d:	57                   	push   %edi
401b0e:	ff 15 28 34 47 00    	call   *0x473428
401b14:	85 c0                	test   %eax,%eax
401b16:	75 1c                	jne    0x401b34
401b18:	ff 15 24 34 47 00    	call   *0x473424
401b1e:	5b                   	pop    %ebx
401b1f:	57                   	push   %edi
401b20:	8b e8                	mov    %eax,%ebp
401b22:	ff 15 2c 34 47 00    	call   *0x47342c
401b28:	5f                   	pop    %edi
401b29:	5e                   	pop    %esi
401b2a:	8b c5                	mov    %ebp,%eax
401b2c:	5d                   	pop    %ebp
401b2d:	81 c4 f4 04 00 00    	add    $0x4f4,%esp
401b33:	c3                   	ret
401b34:	d1 ee                	shr    $1,%esi
401b36:	8d 84 24 a4 00 00 00 	lea    0xa4(%esp),%eax
401b3d:	33 d2                	xor    %edx,%edx
401b3f:	56                   	push   %esi
401b40:	50                   	push   %eax
401b41:	66 89 94 24 b2 02 00 	mov    %dx,0x2b2(%esp)
401b48:	00
401b49:	e8 f2 41 00 00       	call   0x405d40
401b4e:	83 c4 04             	add    $0x4,%esp
401b51:	50                   	push   %eax
401b52:	53                   	push   %ebx
401b53:	e8 52 ef 02 00       	call   0x430aaa
401b58:	83 c4 0c             	add    $0xc,%esp
401b5b:	33 c9                	xor    %ecx,%ecx
401b5d:	66 89 0c 73          	mov    %cx,(%ebx,%esi,2)
401b61:	5b                   	pop    %ebx
401b62:	57                   	push   %edi
401b63:	ff 15 2c 34 47 00    	call   *0x47342c
401b69:	5f                   	pop    %edi
401b6a:	5e                   	pop    %esi
401b6b:	8b c5                	mov    %ebp,%eax
401b6d:	5d                   	pop    %ebp
401b6e:	81 c4 f4 04 00 00    	add    $0x4f4,%esp
401b74:	c3                   	ret
401b75:	cc                   	int3
401b76:	cc                   	int3
401b77:	cc                   	int3
401b78:	cc                   	int3
401b79:	cc                   	int3
401b7a:	cc                   	int3
401b7b:	cc                   	int3
401b7c:	cc                   	int3
401b7d:	cc                   	int3
401b7e:	cc                   	int3
401b7f:	cc                   	int3
401b80:	8b 44 24 0c          	mov    0xc(%esp),%eax
401b84:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401b88:	8b 54 24 04          	mov    0x4(%esp),%edx
401b8c:	50                   	push   %eax
401b8d:	51                   	push   %ecx
401b8e:	6a 00                	push   $0x0
401b90:	6a 00                	push   $0x0
401b92:	52                   	push   %edx
401b93:	e8 78 fe ff ff       	call   0x401a10
401b98:	83 c4 14             	add    $0x14,%esp
401b9b:	c3                   	ret
401b9c:	cc                   	int3
401b9d:	cc                   	int3
401b9e:	cc                   	int3
401b9f:	cc                   	int3
401ba0:	8b 44 24 0c          	mov    0xc(%esp),%eax
401ba4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401ba8:	8b 54 24 04          	mov    0x4(%esp),%edx
401bac:	6a 00                	push   $0x0
401bae:	6a 00                	push   $0x0
401bb0:	50                   	push   %eax
401bb1:	51                   	push   %ecx
401bb2:	52                   	push   %edx
401bb3:	e8 58 fe ff ff       	call   0x401a10
401bb8:	83 c4 14             	add    $0x14,%esp
401bbb:	c3                   	ret
401bbc:	cc                   	int3
401bbd:	cc                   	int3
401bbe:	cc                   	int3
401bbf:	cc                   	int3
401bc0:	a1 18 03 47 00       	mov    0x470318,%eax
401bc5:	83 ec 64             	sub    $0x64,%esp
401bc8:	55                   	push   %ebp
401bc9:	56                   	push   %esi
401bca:	33 ed                	xor    %ebp,%ebp
401bcc:	57                   	push   %edi
401bcd:	bf 00 10 00 00       	mov    $0x1000,%edi
401bd2:	85 c0                	test   %eax,%eax
401bd4:	75 10                	jne    0x401be6
401bd6:	68 b4 be 45 00       	push   $0x45beb4
401bdb:	ff 15 38 34 47 00    	call   *0x473438
401be1:	a3 18 03 47 00       	mov    %eax,0x470318
401be6:	8b 35 10 03 47 00    	mov    0x470310,%esi
401bec:	85 f6                	test   %esi,%esi
401bee:	75 29                	jne    0x401c19
401bf0:	85 c0                	test   %eax,%eax
401bf2:	74 18                	je     0x401c0c
401bf4:	68 cc be 45 00       	push   $0x45becc
401bf9:	50                   	push   %eax
401bfa:	ff 15 34 34 47 00    	call   *0x473434
401c00:	8b f0                	mov    %eax,%esi
401c02:	89 35 10 03 47 00    	mov    %esi,0x470310
401c08:	85 f6                	test   %esi,%esi
401c0a:	75 0d                	jne    0x401c19
401c0c:	ff 15 24 34 47 00    	call   *0x473424
401c12:	5f                   	pop    %edi
401c13:	5e                   	pop    %esi
401c14:	5d                   	pop    %ebp
401c15:	83 c4 64             	add    $0x64,%esp
401c18:	c3                   	ret
401c19:	53                   	push   %ebx
401c1a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
401c20:	85 ed                	test   %ebp,%ebp
401c22:	74 09                	je     0x401c2d
401c24:	55                   	push   %ebp
401c25:	e8 73 ed 02 00       	call   0x43099d
401c2a:	83 c4 04             	add    $0x4,%esp
401c2d:	03 ff                	add    %edi,%edi
401c2f:	81 ff 00 00 00 01    	cmp    $0x1000000,%edi
401c35:	77 2e                	ja     0x401c65
401c37:	57                   	push   %edi
401c38:	e8 d9 ed 02 00       	call   0x430a16
401c3d:	8b e8                	mov    %eax,%ebp
401c3f:	83 c4 04             	add    $0x4,%esp
401c42:	85 ed                	test   %ebp,%ebp
401c44:	74 1f                	je     0x401c65
401c46:	8d 44 24 10          	lea    0x10(%esp),%eax
401c4a:	50                   	push   %eax
401c4b:	57                   	push   %edi
401c4c:	55                   	push   %ebp
401c4d:	6a 05                	push   $0x5
401c4f:	8b dd                	mov    %ebp,%ebx
401c51:	ff d6                	call   *%esi
401c53:	8b f0                	mov    %eax,%esi
401c55:	81 fe 04 00 00 c0    	cmp    $0xc0000004,%esi
401c5b:	75 15                	jne    0x401c72
401c5d:	8b 35 10 03 47 00    	mov    0x470310,%esi
401c63:	eb bb                	jmp    0x401c20
401c65:	5b                   	pop    %ebx
401c66:	5f                   	pop    %edi
401c67:	5e                   	pop    %esi
401c68:	b8 08 00 00 00       	mov    $0x8,%eax
401c6d:	5d                   	pop    %ebp
401c6e:	83 c4 64             	add    $0x64,%esp
401c71:	c3                   	ret
401c72:	85 f6                	test   %esi,%esi
401c74:	0f 88 9c 00 00 00    	js     0x401d16
401c7a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
401c80:	8b 4b 04             	mov    0x4(%ebx),%ecx
401c83:	89 4c 24 14          	mov    %ecx,0x14(%esp)
401c87:	8b 53 20             	mov    0x20(%ebx),%edx
401c8a:	89 54 24 1c          	mov    %edx,0x1c(%esp)
401c8e:	8b 43 24             	mov    0x24(%ebx),%eax
401c91:	89 44 24 20          	mov    %eax,0x20(%esp)
401c95:	8b 4b 28             	mov    0x28(%ebx),%ecx
401c98:	89 4c 24 24          	mov    %ecx,0x24(%esp)
401c9c:	8b 53 2c             	mov    0x2c(%ebx),%edx
401c9f:	89 54 24 28          	mov    %edx,0x28(%esp)
401ca3:	8b 43 30             	mov    0x30(%ebx),%eax
401ca6:	89 44 24 2c          	mov    %eax,0x2c(%esp)
401caa:	8b 4b 34             	mov    0x34(%ebx),%ecx
401cad:	89 4c 24 30          	mov    %ecx,0x30(%esp)
401cb1:	8b 43 3c             	mov    0x3c(%ebx),%eax
401cb4:	c7 44 24 34 c8 be 45 	movl   $0x45bec8,0x34(%esp)
401cbb:	00
401cbc:	85 c0                	test   %eax,%eax
401cbe:	74 04                	je     0x401cc4
401cc0:	89 44 24 34          	mov    %eax,0x34(%esp)
401cc4:	8b 53 40             	mov    0x40(%ebx),%edx
401cc7:	89 54 24 38          	mov    %edx,0x38(%esp)
401ccb:	8b 43 44             	mov    0x44(%ebx),%eax
401cce:	89 44 24 3c          	mov    %eax,0x3c(%esp)
401cd2:	8b 4b 48             	mov    0x48(%ebx),%ecx
401cd5:	8b 44 24 7c          	mov    0x7c(%esp),%eax
401cd9:	89 4c 24 40          	mov    %ecx,0x40(%esp)
401cdd:	8b 53 4c             	mov    0x4c(%ebx),%edx
401ce0:	89 54 24 44          	mov    %edx,0x44(%esp)
401ce4:	8d 73 58             	lea    0x58(%ebx),%esi
401ce7:	b9 0b 00 00 00       	mov    $0xb,%ecx
401cec:	8d 7c 24 48          	lea    0x48(%esp),%edi
401cf0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401cf2:	50                   	push   %eax
401cf3:	8d 4c 24 18          	lea    0x18(%esp),%ecx
401cf7:	51                   	push   %ecx
401cf8:	ff 94 24 80 00 00 00 	call   *0x80(%esp)
401cff:	83 c4 08             	add    $0x8,%esp
401d02:	85 c0                	test   %eax,%eax
401d04:	74 0e                	je     0x401d14
401d06:	8b 03                	mov    (%ebx),%eax
401d08:	85 c0                	test   %eax,%eax
401d0a:	74 08                	je     0x401d14
401d0c:	03 d8                	add    %eax,%ebx
401d0e:	0f 85 6c ff ff ff    	jne    0x401c80
401d14:	33 f6                	xor    %esi,%esi
401d16:	55                   	push   %ebp
401d17:	e8 81 ec 02 00       	call   0x43099d
401d1c:	83 c4 04             	add    $0x4,%esp
401d1f:	5b                   	pop    %ebx
401d20:	5f                   	pop    %edi
401d21:	8b c6                	mov    %esi,%eax
401d23:	5e                   	pop    %esi
401d24:	5d                   	pop    %ebp
401d25:	83 c4 64             	add    $0x64,%esp
401d28:	c3                   	ret
401d29:	cc                   	int3
401d2a:	cc                   	int3
401d2b:	cc                   	int3
401d2c:	cc                   	int3
401d2d:	cc                   	int3
401d2e:	cc                   	int3
401d2f:	cc                   	int3
401d30:	8b 44 24 08          	mov    0x8(%esp),%eax
401d34:	8b 48 04             	mov    0x4(%eax),%ecx
401d37:	51                   	push   %ecx
401d38:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401d3c:	8b 51 20             	mov    0x20(%ecx),%edx
401d3f:	8b 49 28             	mov    0x28(%ecx),%ecx
401d42:	52                   	push   %edx
401d43:	8b 10                	mov    (%eax),%edx
401d45:	51                   	push   %ecx
401d46:	ff d2                	call   *%edx
401d48:	83 c4 0c             	add    $0xc,%esp
401d4b:	c3                   	ret
401d4c:	cc                   	int3
401d4d:	cc                   	int3
401d4e:	cc                   	int3
401d4f:	cc                   	int3
401d50:	83 ec 08             	sub    $0x8,%esp
401d53:	8b 44 24 0c          	mov    0xc(%esp),%eax
401d57:	8b 4c 24 10          	mov    0x10(%esp),%ecx
401d5b:	8d 14 24             	lea    (%esp),%edx
401d5e:	52                   	push   %edx
401d5f:	68 30 1d 40 00       	push   $0x401d30
401d64:	89 44 24 08          	mov    %eax,0x8(%esp)
401d68:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
401d6c:	e8 4f fe ff ff       	call   0x401bc0
401d71:	83 c4 10             	add    $0x10,%esp
401d74:	c3                   	ret
401d75:	cc                   	int3
401d76:	cc                   	int3
401d77:	cc                   	int3
401d78:	cc                   	int3
401d79:	cc                   	int3
401d7a:	cc                   	int3
401d7b:	cc                   	int3
401d7c:	cc                   	int3
401d7d:	cc                   	int3
401d7e:	cc                   	int3
401d7f:	cc                   	int3
401d80:	81 ec 3c 03 00 00    	sub    $0x33c,%esp
401d86:	55                   	push   %ebp
401d87:	56                   	push   %esi
401d88:	57                   	push   %edi
401d89:	33 ed                	xor    %ebp,%ebp
401d8b:	e8 80 16 00 00       	call   0x403410
401d90:	8b 84 24 4c 03 00 00 	mov    0x34c(%esp),%eax
401d97:	50                   	push   %eax
401d98:	55                   	push   %ebp
401d99:	68 10 04 00 00       	push   $0x410
401d9e:	ff 15 30 34 47 00    	call   *0x473430
401da4:	8b f8                	mov    %eax,%edi
401da6:	ff 15 24 34 47 00    	call   *0x473424
401dac:	8b f0                	mov    %eax,%esi
401dae:	e8 0d 17 00 00       	call   0x4034c0
401db3:	85 ff                	test   %edi,%edi
401db5:	0f 84 dc 01 00 00    	je     0x401f97
401dbb:	8d 8c 24 f0 00 00 00 	lea    0xf0(%esp),%ecx
401dc2:	51                   	push   %ecx
401dc3:	57                   	push   %edi
401dc4:	e8 87 fb ff ff       	call   0x401950
401dc9:	8b f0                	mov    %eax,%esi
401dcb:	83 c4 08             	add    $0x8,%esp
401dce:	85 f6                	test   %esi,%esi
401dd0:	0f 85 ba 01 00 00    	jne    0x401f90
401dd6:	8b 8c 24 fc 00 00 00 	mov    0xfc(%esp),%ecx
401ddd:	53                   	push   %ebx
401dde:	8b 1d 28 34 47 00    	mov    0x473428,%ebx
401de4:	8d 54 24 10          	lea    0x10(%esp),%edx
401de8:	52                   	push   %edx
401de9:	6a 24                	push   $0x24
401deb:	8d 84 24 d8 00 00 00 	lea    0xd8(%esp),%eax
401df2:	50                   	push   %eax
401df3:	51                   	push   %ecx
401df4:	57                   	push   %edi
401df5:	ff d3                	call   *%ebx
401df7:	85 c0                	test   %eax,%eax
401df9:	0f 84 88 01 00 00    	je     0x401f87
401dff:	83 7c 24 10 24       	cmpl   $0x24,0x10(%esp)
401e04:	0f 85 7d 01 00 00    	jne    0x401f87
401e0a:	8b 94 24 00 01 00 00 	mov    0x100(%esp),%edx
401e11:	8b 84 24 dc 00 00 00 	mov    0xdc(%esp),%eax
401e18:	83 c2 0c             	add    $0xc,%edx
401e1b:	89 54 24 14          	mov    %edx,0x14(%esp)
401e1f:	89 44 24 38          	mov    %eax,0x38(%esp)
401e23:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401e27:	51                   	push   %ecx
401e28:	68 98 00 00 00       	push   $0x98
401e2d:	8d 54 24 40          	lea    0x40(%esp),%edx
401e31:	52                   	push   %edx
401e32:	50                   	push   %eax
401e33:	57                   	push   %edi
401e34:	ff d3                	call   *%ebx
401e36:	85 c0                	test   %eax,%eax
401e38:	0f 84 49 01 00 00    	je     0x401f87
401e3e:	81 7c 24 10 98 00 00 	cmpl   $0x98,0x10(%esp)
401e45:	00
401e46:	0f 85 3b 01 00 00    	jne    0x401f87
401e4c:	8b 4c 24 54          	mov    0x54(%esp),%ecx
401e50:	8b 44 24 50          	mov    0x50(%esp),%eax
401e54:	0f b7 74 24 5c       	movzwl 0x5c(%esp),%esi
401e59:	8b 54 24 58          	mov    0x58(%esp),%edx
401e5d:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
401e61:	66 8b 4c 24 72       	mov    0x72(%esp),%cx
401e66:	89 44 24 18          	mov    %eax,0x18(%esp)
401e6a:	66 8b 44 24 70       	mov    0x70(%esp),%ax
401e6f:	66 89 4c 24 2e       	mov    %cx,0x2e(%esp)
401e74:	89 54 24 20          	mov    %edx,0x20(%esp)
401e78:	8b 54 24 7c          	mov    0x7c(%esp),%edx
401e7c:	66 89 44 24 2c       	mov    %ax,0x2c(%esp)
401e81:	8b 84 24 50 03 00 00 	mov    0x350(%esp),%eax
401e88:	8d 4e 02             	lea    0x2(%esi),%ecx
401e8b:	51                   	push   %ecx
401e8c:	89 54 24 34          	mov    %edx,0x34(%esp)
401e90:	89 44 24 38          	mov    %eax,0x38(%esp)
401e94:	e8 7d eb 02 00       	call   0x430a16