407c18:	74 25                	je     0x407c3f
407c1a:	8b 47 0c             	mov    0xc(%edi),%eax
407c1d:	8b 55 f0             	mov    -0x10(%ebp),%edx
407c20:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
407c23:	03 c2                	add    %edx,%eax
407c25:	ff 30                	push   (%eax)
407c27:	8b 78 04             	mov    0x4(%eax),%edi
407c2a:	51                   	push   %ecx
407c2b:	ff 15 50 08 4b 00    	call   *0x4b0850
407c31:	83 66 04 00          	andl   $0x0,0x4(%esi)
407c35:	89 7e 08             	mov    %edi,0x8(%esi)
407c38:	8b 7d 10             	mov    0x10(%ebp),%edi
407c3b:	89 06                	mov    %eax,(%esi)
407c3d:	eb 02                	jmp    0x407c41
407c3f:	33 f6                	xor    %esi,%esi
407c41:	8b 4b 48             	mov    0x48(%ebx),%ecx
407c44:	83 c1 3c             	add    $0x3c,%ecx
407c47:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
407c4b:	56                   	push   %esi
407c4c:	74 0a                	je     0x407c58
407c4e:	ff 75 f8             	push   -0x8(%ebp)
407c51:	e8 7e 4b 03 00       	call   0x43c7d4
407c56:	eb 05                	jmp    0x407c5d
407c58:	e8 d4 4a 03 00       	call   0x43c731
407c5d:	8b 45 fc             	mov    -0x4(%ebp),%eax
407c60:	40                   	inc    %eax
407c61:	3b 47 08             	cmp    0x8(%edi),%eax
407c64:	89 45 fc             	mov    %eax,-0x4(%ebp)
407c67:	0f 82 55 ff ff ff    	jb     0x407bc2
407c6d:	8b 45 f4             	mov    -0xc(%ebp),%eax
407c70:	5f                   	pop    %edi
407c71:	5e                   	pop    %esi
407c72:	5b                   	pop    %ebx
407c73:	c9                   	leave
407c74:	c2 0c 00             	ret    $0xc
407c77:	55                   	push   %ebp
407c78:	8b ec                	mov    %esp,%ebp
407c7a:	53                   	push   %ebx
407c7b:	8b 5d 08             	mov    0x8(%ebp),%ebx
407c7e:	8b 43 48             	mov    0x48(%ebx),%eax
407c81:	85 c0                	test   %eax,%eax
407c83:	0f 84 fc 00 00 00    	je     0x407d85
407c89:	8b 40 40             	mov    0x40(%eax),%eax
407c8c:	85 c0                	test   %eax,%eax
407c8e:	89 45 08             	mov    %eax,0x8(%ebp)
407c91:	0f 84 ad 00 00 00    	je     0x407d44
407c97:	56                   	push   %esi
407c98:	57                   	push   %edi
407c99:	8b 4b 48             	mov    0x48(%ebx),%ecx
407c9c:	8d 45 08             	lea    0x8(%ebp),%eax
407c9f:	83 c1 3c             	add    $0x3c,%ecx
407ca2:	50                   	push   %eax
407ca3:	e8 ba f7 ff ff       	call   0x407462
407ca8:	8b 30                	mov    (%eax),%esi
407caa:	8b 46 04             	mov    0x4(%esi),%eax
407cad:	85 c0                	test   %eax,%eax
407caf:	0f 84 83 00 00 00    	je     0x407d38
407cb5:	8b b8 90 00 00 00    	mov    0x90(%eax),%edi
407cbb:	eb 31                	jmp    0x407cee
407cbd:	ff 76 04             	push   0x4(%esi)
407cc0:	8b cf                	mov    %edi,%ecx
407cc2:	e8 cf 7a 00 00       	call   0x40f796
407cc7:	66 8b 47 04          	mov    0x4(%edi),%ax
407ccb:	66 85 c0             	test   %ax,%ax
407cce:	74 15                	je     0x407ce5
407cd0:	0f b7 c0             	movzwl %ax,%eax
407cd3:	50                   	push   %eax
407cd4:	8b cb                	mov    %ebx,%ecx
407cd6:	e8 01 8e 03 00       	call   0x440adc
407cdb:	ff 70 4c             	push   0x4c(%eax)
407cde:	8b cf                	mov    %edi,%ecx
407ce0:	e8 70 9a 00 00       	call   0x411755
407ce5:	8b cf                	mov    %edi,%ecx
407ce7:	e8 b3 7a 00 00       	call   0x40f79f
407cec:	8b f8                	mov    %eax,%edi
407cee:	85 ff                	test   %edi,%edi
407cf0:	75 cb                	jne    0x407cbd
407cf2:	8b 46 04             	mov    0x4(%esi),%eax
407cf5:	66 8b 80 94 00 00 00 	mov    0x94(%eax),%ax
407cfc:	66 85 c0             	test   %ax,%ax
407cff:	74 37                	je     0x407d38
407d01:	0f b7 c0             	movzwl %ax,%eax
407d04:	50                   	push   %eax
407d05:	8b cb                	mov    %ebx,%ecx
407d07:	e8 d0 8d 03 00       	call   0x440adc
407d0c:	8b f8                	mov    %eax,%edi
407d0e:	8b 4f 4c             	mov    0x4c(%edi),%ecx
407d11:	8b 01                	mov    (%ecx),%eax
407d13:	ff 90 b4 00 00 00    	call   *0xb4(%eax)
407d19:	8b 46 04             	mov    0x4(%esi),%eax
407d1c:	8b 4f 4c             	mov    0x4c(%edi),%ecx
407d1f:	89 88 94 00 00 00    	mov    %ecx,0x94(%eax)
407d25:	8b 47 4c             	mov    0x4c(%edi),%eax
407d28:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
407d2e:	8b 01                	mov    (%ecx),%eax
407d30:	6a 01                	push   $0x1
407d32:	ff 76 04             	push   0x4(%esi)
407d35:	ff 50 08             	call   *0x8(%eax)
407d38:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407d3c:	0f 85 57 ff ff ff    	jne    0x407c99
407d42:	5f                   	pop    %edi
407d43:	5e                   	pop    %esi
407d44:	8b 43 48             	mov    0x48(%ebx),%eax
407d47:	8b 40 40             	mov    0x40(%eax),%eax
407d4a:	85 c0                	test   %eax,%eax
407d4c:	89 45 08             	mov    %eax,0x8(%ebp)
407d4f:	74 34                	je     0x407d85
407d51:	8b 4b 48             	mov    0x48(%ebx),%ecx
407d54:	8d 45 08             	lea    0x8(%ebp),%eax
407d57:	83 c1 3c             	add    $0x3c,%ecx
407d5a:	50                   	push   %eax
407d5b:	e8 02 f7 ff ff       	call   0x407462
407d60:	8b 00                	mov    (%eax),%eax
407d62:	8b 48 04             	mov    0x4(%eax),%ecx
407d65:	85 c9                	test   %ecx,%ecx
407d67:	74 16                	je     0x407d7f
407d69:	83 b9 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ecx)
407d70:	74 0d                	je     0x407d7f
407d72:	8b c1                	mov    %ecx,%eax
407d74:	8b 88 8c 00 00 00    	mov    0x8c(%eax),%ecx
407d7a:	8b 01                	mov    (%ecx),%eax
407d7c:	ff 50 0c             	call   *0xc(%eax)
407d7f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407d83:	75 cc                	jne    0x407d51
407d85:	5b                   	pop    %ebx
407d86:	5d                   	pop    %ebp
407d87:	c2 04 00             	ret    $0x4
407d8a:	8b c1                	mov    %ecx,%eax
407d8c:	c7 00 10 ac 48 00    	movl   $0x48ac10,(%eax)
407d92:	c3                   	ret
407d93:	56                   	push   %esi
407d94:	8b f1                	mov    %ecx,%esi
407d96:	e8 13 00 00 00       	call   0x407dae
407d9b:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
407da0:	74 06                	je     0x407da8
407da2:	56                   	push   %esi
407da3:	e8 96 60 06 00       	call   0x46de3e
407da8:	8b c6                	mov    %esi,%eax
407daa:	5e                   	pop    %esi
407dab:	c2 04 00             	ret    $0x4
407dae:	c3                   	ret
407daf:	6a 04                	push   $0x4
407db1:	e8 70 60 06 00       	call   0x46de26
407db6:	85 c0                	test   %eax,%eax
407db8:	74 07                	je     0x407dc1
407dba:	8b c8                	mov    %eax,%ecx
407dbc:	e9 c9 ff ff ff       	jmp    0x407d8a
407dc1:	33 c0                	xor    %eax,%eax
407dc3:	c3                   	ret
407dc4:	68 af 7d 40 00       	push   $0x407daf
407dc9:	e8 2c 62 06 00       	call   0x46dffa
407dce:	c3                   	ret
407dcf:	56                   	push   %esi
407dd0:	8b 74 24 08          	mov    0x8(%esp),%esi
407dd4:	85 f6                	test   %esi,%esi
407dd6:	75 11                	jne    0x407de9
407dd8:	68 af 7d 40 00       	push   $0x407daf
407ddd:	b9 18 a9 4a 00       	mov    $0x4aa918,%ecx
407de2:	e8 13 62 06 00       	call   0x46dffa
407de7:	8b f0                	mov    %eax,%esi
407de9:	e8 13 5b 06 00       	call   0x46d901
407dee:	89 b0 38 10 00 00    	mov    %esi,0x1038(%eax)
407df4:	5e                   	pop    %esi
407df5:	c3                   	ret
407df6:	b8 6c 2b 48 00       	mov    $0x482b6c,%eax
407dfb:	e8 7c fe 00 00       	call   0x417c7c
407e00:	81 ec 88 00 00 00    	sub    $0x88,%esp
407e06:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
407e0b:	53                   	push   %ebx
407e0c:	57                   	push   %edi
407e0d:	8b 7d 14             	mov    0x14(%ebp),%edi
407e10:	89 45 f0             	mov    %eax,-0x10(%ebp)
407e13:	33 db                	xor    %ebx,%ebx
407e15:	39 5d 10             	cmp    %ebx,0x10(%ebp)
407e18:	8d 47 12             	lea    0x12(%edi),%eax
407e1b:	89 45 cc             	mov    %eax,-0x34(%ebp)
407e1e:	74 3e                	je     0x407e5e
407e20:	8b 57 08             	mov    0x8(%edi),%edx
407e23:	66 8b 00             	mov    (%eax),%ax
407e26:	89 55 a8             	mov    %edx,-0x58(%ebp)
407e29:	8b 57 04             	mov    0x4(%edi),%edx
407e2c:	89 55 ac             	mov    %edx,-0x54(%ebp)
407e2f:	66 8b 57 0c          	mov    0xc(%edi),%dx
407e33:	66 89 55 b0          	mov    %dx,-0x50(%ebp)
407e37:	66 8b 57 0e          	mov    0xe(%edi),%dx
407e3b:	8b cf                	mov    %edi,%ecx
407e3d:	66 89 55 b2          	mov    %dx,-0x4e(%ebp)
407e41:	66 8b 57 10          	mov    0x10(%edi),%dx
407e45:	66 89 45 b6          	mov    %ax,-0x4a(%ebp)
407e49:	66 8b 47 14          	mov    0x14(%edi),%ax
407e4d:	83 c1 18             	add    $0x18,%ecx
407e50:	66 89 55 b4          	mov    %dx,-0x4c(%ebp)
407e54:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
407e58:	8d 7d a8             	lea    -0x58(%ebp),%edi
407e5b:	89 4d cc             	mov    %ecx,-0x34(%ebp)
407e5e:	0f bf 57 0a          	movswl 0xa(%edi),%edx
407e62:	0f bf 47 0e          	movswl 0xe(%edi),%eax
407e66:	0f bf 4f 0c          	movswl 0xc(%edi),%ecx
407e6a:	03 c2                	add    %edx,%eax
407e6c:	56                   	push   %esi
407e6d:	0f bf 77 08          	movswl 0x8(%edi),%esi
407e71:	89 45 a4             	mov    %eax,-0x5c(%ebp)
407e74:	8d 45 98             	lea    -0x68(%ebp),%eax
407e77:	50                   	push   %eax
407e78:	8b 45 08             	mov    0x8(%ebp),%eax
407e7b:	ff 70 1c             	push   0x1c(%eax)
407e7e:	03 ce                	add    %esi,%ecx
407e80:	89 75 98             	mov    %esi,-0x68(%ebp)
407e83:	89 55 9c             	mov    %edx,-0x64(%ebp)
407e86:	89 4d a0             	mov    %ecx,-0x60(%ebp)
407e89:	ff 15 54 07 4b 00    	call   *0x4b0754
407e8f:	83 7d 20 04          	cmpl   $0x4,0x20(%ebp)
407e93:	8b 75 1c             	mov    0x1c(%ebp),%esi
407e96:	89 5d d8             	mov    %ebx,-0x28(%ebp)
407e99:	72 21                	jb     0x407ebc
407e9b:	8b 1e                	mov    (%esi),%ebx
407e9d:	83 6d 20 04          	subl   $0x4,0x20(%ebp)
407ea1:	83 c6 04             	add    $0x4,%esi
407ea4:	85 db                	test   %ebx,%ebx
407ea6:	76 12                	jbe    0x407eba
407ea8:	53                   	push   %ebx
407ea9:	56                   	push   %esi
407eaa:	ff 15 f8 04 4b 00    	call   *0x4b04f8
407eb0:	03 db                	add    %ebx,%ebx
407eb2:	03 f3                	add    %ebx,%esi
407eb4:	29 5d 20             	sub    %ebx,0x20(%ebp)
407eb7:	89 45 d8             	mov    %eax,-0x28(%ebp)
407eba:	33 db                	xor    %ebx,%ebx
407ebc:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
407ebf:	e8 32 83 03 00       	call   0x4401f6
407ec4:	8b 10                	mov    (%eax),%edx
407ec6:	8b c8                	mov    %eax,%ecx
407ec8:	ff 52 0c             	call   *0xc(%edx)
407ecb:	83 c0 10             	add    $0x10,%eax
407ece:	89 45 14             	mov    %eax,0x14(%ebp)
407ed1:	66 81 7d 18 7a 03    	cmpw   $0x37a,0x18(%ebp)
407ed7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407eda:	89 5d c8             	mov    %ebx,-0x38(%ebp)
407edd:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
407ee0:	89 5d d0             	mov    %ebx,-0x30(%ebp)
407ee3:	74 0c                	je     0x407ef1
407ee5:	66 81 7d 18 7b 03    	cmpw   $0x37b,0x18(%ebp)
407eeb:	0f 85 a9 00 00 00    	jne    0x407f9a
407ef1:	8b 06                	mov    (%esi),%eax
407ef3:	8d 48 f4             	lea    -0xc(%eax),%ecx
407ef6:	83 c6 0c             	add    $0xc,%esi
407ef9:	3b cb                	cmp    %ebx,%ecx
407efb:	89 45 c0             	mov    %eax,-0x40(%ebp)
407efe:	89 4d 1c             	mov    %ecx,0x1c(%ebp)
407f01:	0f 86 89 00 00 00    	jbe    0x407f90
407f07:	8b 06                	mov    (%esi),%eax
407f09:	83 6d 1c 06          	subl   $0x6,0x1c(%ebp)
407f0d:	83 c6 04             	add    $0x4,%esi
407f10:	66 8b 0e             	mov    (%esi),%cx
407f13:	46                   	inc    %esi
407f14:	46                   	inc    %esi
407f15:	3d 01 00 01 80       	cmp    $0x80010001,%eax
407f1a:	89 45 bc             	mov    %eax,-0x44(%ebp)
407f1d:	66 89 4d 10          	mov    %cx,0x10(%ebp)
407f21:	75 33                	jne    0x407f56
407f23:	8b 06                	mov    (%esi),%eax
407f25:	83 c6 04             	add    $0x4,%esi
407f28:	89 45 c4             	mov    %eax,-0x3c(%ebp)
407f2b:	8b 06                	mov    (%esi),%eax
407f2d:	83 c6 0c             	add    $0xc,%esi
407f30:	56                   	push   %esi
407f31:	8d 4d 14             	lea    0x14(%ebp),%ecx
407f34:	89 45 d0             	mov    %eax,-0x30(%ebp)
407f37:	e8 45 92 ff ff       	call   0x401181
407f3c:	8b 45 14             	mov    0x14(%ebp),%eax
407f3f:	8b 40 f4             	mov    -0xc(%eax),%eax
407f42:	6a ef                	push   $0xffffffef
407f44:	59                   	pop    %ecx
407f45:	2b c8                	sub    %eax,%ecx
407f47:	01 4d 1c             	add    %ecx,0x1c(%ebp)
407f4a:	8d 74 06 01          	lea    0x1(%esi,%eax,1),%esi
407f4e:	8b 45 10             	mov    0x10(%ebp),%eax
407f51:	89 45 c8             	mov    %eax,-0x38(%ebp)
407f54:	eb 2e                	jmp    0x407f84
407f56:	6a 1c                	push   $0x1c
407f58:	e8 f8 80 03 00       	call   0x440055
407f5d:	59                   	pop    %ecx
407f5e:	89 45 94             	mov    %eax,-0x6c(%ebp)
407f61:	3b c3                	cmp    %ebx,%eax
407f63:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407f67:	74 12                	je     0x407f7b
407f69:	ff 75 10             	push   0x10(%ebp)
407f6c:	8b c8                	mov    %eax,%ecx
407f6e:	ff 75 bc             	push   -0x44(%ebp)
407f71:	ff 75 d4             	push   -0x2c(%ebp)
407f74:	e8 f7 77 00 00       	call   0x40f770
407f79:	eb 02                	jmp    0x407f7d
407f7b:	33 c0                	xor    %eax,%eax
407f7d:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
407f81:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407f84:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
407f87:	0f 87 7a ff ff ff    	ja     0x407f07
407f8d:	8b 45 c0             	mov    -0x40(%ebp),%eax
407f90:	29 45 20             	sub    %eax,0x20(%ebp)
407f93:	81 45 18 fc ff 00 00 	addl   $0xfffc,0x18(%ebp)
407f9a:	8b 45 cc             	mov    -0x34(%ebp),%eax
407f9d:	66 83 38 7b          	cmpw   $0x7b,(%eax)
407fa1:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407fa4:	51                   	push   %ecx
407fa5:	50                   	push   %eax
407fa6:	75 08                	jne    0x407fb0
407fa8:	ff 15 28 0b 4b 00    	call   *0x4b0b28
407fae:	eb 06                	jmp    0x407fb6
407fb0:	ff 15 24 0b 4b 00    	call   *0x4b0b24
407fb6:	53                   	push   %ebx
407fb7:	ff 75 20             	push   0x20(%ebp)
407fba:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
407fc0:	56                   	push   %esi
407fc1:	89 45 1c             	mov    %eax,0x1c(%ebp)
407fc4:	e8 0a fd 04 00       	call   0x457cd3
407fc9:	66 8b 75 18          	mov    0x18(%ebp),%si
407fcd:	66 81 ee 78 03       	sub    $0x378,%si
407fd2:	66 f7 de             	neg    %si
407fd5:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
407fdb:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407fdf:	89 5d dc             	mov    %ebx,-0x24(%ebp)
407fe2:	1b f6                	sbb    %esi,%esi
407fe4:	23 f0                	and    %eax,%esi
407fe6:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
407fe9:	0f 8c a7 00 00 00    	jl     0x408096
407fef:	8b 4d 08             	mov    0x8(%ebp),%ecx
407ff2:	e8 42 53 00 00       	call   0x40d339
407ff7:	85 c0                	test   %eax,%eax
407ff9:	0f 84 97 00 00 00    	je     0x408096
407fff:	8d 45 dc             	lea    -0x24(%ebp),%eax
408002:	50                   	push   %eax
408003:	ff 75 d8             	push   -0x28(%ebp)
408006:	33 c0                	xor    %eax,%eax
408008:	66 81 7d 18 77 03    	cmpw   $0x377,0x18(%ebp)
40800e:	0f 94 c0             	sete   %al
408011:	50                   	push   %eax
408012:	0f b7 47 10          	movzwl 0x10(%edi),%eax
408016:	56                   	push   %esi
408017:	50                   	push   %eax
408018:	8d 45 98             	lea    -0x68(%ebp),%eax
40801b:	50                   	push   %eax
40801c:	ff 37                	push   (%edi)
40801e:	8d 45 e0             	lea    -0x20(%ebp),%eax
408021:	53                   	push   %ebx
408022:	50                   	push   %eax
408023:	8b 45 08             	mov    0x8(%ebp),%eax
408026:	8b 48 48             	mov    0x48(%eax),%ecx
408029:	53                   	push   %ebx
40802a:	e8 06 5d 00 00       	call   0x40dd35
40802f:	85 c0                	test   %eax,%eax