40dc93:	e8 82 f8 ff ff       	call   0x40d51a
40dc98:	5f                   	pop    %edi
40dc99:	8b c6                	mov    %esi,%eax
40dc9b:	5e                   	pop    %esi
40dc9c:	5b                   	pop    %ebx
40dc9d:	c9                   	leave
40dc9e:	c2 04 00             	ret    $0x4
40dca1:	8b ff                	mov    %edi,%edi
40dca3:	55                   	push   %ebp
40dca4:	8b ec                	mov    %esp,%ebp
40dca6:	83 ec 20             	sub    $0x20,%esp
40dca9:	8b 45 08             	mov    0x8(%ebp),%eax
40dcac:	89 45 f8             	mov    %eax,-0x8(%ebp)
40dcaf:	8b 45 0c             	mov    0xc(%ebp),%eax
40dcb2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40dcb5:	8b 45 10             	mov    0x10(%ebp),%eax
40dcb8:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dcbb:	8b 45 14             	mov    0x14(%ebp),%eax
40dcbe:	53                   	push   %ebx
40dcbf:	8b 5d 28             	mov    0x28(%ebp),%ebx
40dcc2:	89 45 ec             	mov    %eax,-0x14(%ebp)
40dcc5:	8b 45 30             	mov    0x30(%ebp),%eax
40dcc8:	56                   	push   %esi
40dcc9:	8b 75 38             	mov    0x38(%ebp),%esi
40dccc:	57                   	push   %edi
40dccd:	33 ff                	xor    %edi,%edi
40dccf:	89 45 e0             	mov    %eax,-0x20(%ebp)
40dcd2:	66 89 3b             	mov    %di,(%ebx)
40dcd5:	c6 00 00             	movb   $0x0,(%eax)
40dcd8:	33 c0                	xor    %eax,%eax
40dcda:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dcdd:	8b 45 18             	mov    0x18(%ebp),%eax
40dce0:	2b c7                	sub    %edi,%eax
40dce2:	89 55 e8             	mov    %edx,-0x18(%ebp)
40dce5:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40dce8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40dceb:	74 46                	je     0x40dd33
40dced:	83 e8 01             	sub    $0x1,%eax
40dcf0:	74 38                	je     0x40dd2a
40dcf2:	83 e8 01             	sub    $0x1,%eax
40dcf5:	74 0d                	je     0x40dd04
40dcf7:	83 e8 01             	sub    $0x1,%eax
40dcfa:	75 41                	jne    0x40dd3d
40dcfc:	57                   	push   %edi
40dcfd:	e8 1e f9 ff ff       	call   0x40d620
40dd02:	eb 36                	jmp    0x40dd3a
40dd04:	85 ff                	test   %edi,%edi
40dd06:	78 19                	js     0x40dd21
40dd08:	bf 9c 02 07 80       	mov    $0x8007029c,%edi
40dd0d:	57                   	push   %edi
40dd0e:	6a 02                	push   $0x2
40dd10:	ff 75 ec             	push   -0x14(%ebp)
40dd13:	ff 75 f4             	push   -0xc(%ebp)
40dd16:	ff 75 f0             	push   -0x10(%ebp)
40dd19:	ff 75 f8             	push   -0x8(%ebp)
40dd1c:	e8 fe 02 00 00       	call   0x40e01f
40dd21:	8b cf                	mov    %edi,%ecx
40dd23:	e8 e3 f8 ff ff       	call   0x40d60b
40dd28:	eb 10                	jmp    0x40dd3a
40dd2a:	8b cf                	mov    %edi,%ecx
40dd2c:	e8 c7 f8 ff ff       	call   0x40d5f8
40dd31:	eb 07                	jmp    0x40dd3a
40dd33:	8b cf                	mov    %edi,%ecx
40dd35:	e8 ab f8 ff ff       	call   0x40d5e5
40dd3a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dd3d:	8b 45 18             	mov    0x18(%ebp),%eax
40dd40:	89 06                	mov    %eax,(%esi)
40dd42:	33 c0                	xor    %eax,%eax
40dd44:	89 7e 04             	mov    %edi,0x4(%esi)
40dd47:	40                   	inc    %eax
40dd48:	f0 0f c1 05 b0 ba 42 	lock xadd %eax,0x42bab0
40dd4f:	00
40dd50:	40                   	inc    %eax
40dd51:	89 46 08             	mov    %eax,0x8(%esi)
40dd54:	8b 45 20             	mov    0x20(%ebp),%eax
40dd57:	85 c0                	test   %eax,%eax
40dd59:	74 07                	je     0x40dd62
40dd5b:	33 c9                	xor    %ecx,%ecx
40dd5d:	66 39 08             	cmp    %cx,(%eax)
40dd60:	75 02                	jne    0x40dd64
40dd62:	33 c0                	xor    %eax,%eax
40dd64:	89 46 0c             	mov    %eax,0xc(%esi)
40dd67:	ff 15 74 c2 42 00    	call   *0x42c274
40dd6d:	89 46 10             	mov    %eax,0x10(%esi)
40dd70:	8d 7e 2c             	lea    0x2c(%esi),%edi
40dd73:	8b 45 f8             	mov    -0x8(%ebp),%eax
40dd76:	33 d2                	xor    %edx,%edx
40dd78:	89 46 1c             	mov    %eax,0x1c(%esi)
40dd7b:	8b 45 e8             	mov    -0x18(%ebp),%eax
40dd7e:	89 46 20             	mov    %eax,0x20(%esi)
40dd81:	8b 45 fc             	mov    -0x4(%ebp),%eax
40dd84:	89 46 24             	mov    %eax,0x24(%esi)
40dd87:	8b 45 f4             	mov    -0xc(%ebp),%eax
40dd8a:	89 46 14             	mov    %eax,0x14(%esi)
40dd8d:	8b 45 f0             	mov    -0x10(%ebp),%eax
40dd90:	89 46 18             	mov    %eax,0x18(%esi)
40dd93:	8b 45 ec             	mov    -0x14(%ebp),%eax
40dd96:	89 46 48             	mov    %eax,0x48(%esi)
40dd99:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40dd9c:	89 46 4c             	mov    %eax,0x4c(%esi)
40dd9f:	33 c0                	xor    %eax,%eax
40dda1:	6a 06                	push   $0x6
40dda3:	59                   	pop    %ecx
40dda4:	89 56 28             	mov    %edx,0x28(%esi)
40dda7:	f3 ab                	rep stos %eax,%es:(%edi)
40dda9:	8b 3d 40 bb 42 00    	mov    0x42bb40,%edi
40ddaf:	85 ff                	test   %edi,%edi
40ddb1:	74 0a                	je     0x40ddbd
40ddb3:	8b cf                	mov    %edi,%ecx
40ddb5:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40ddbb:	ff d7                	call   *%edi
40ddbd:	8b 3d 48 bb 42 00    	mov    0x42bb48,%edi
40ddc3:	89 46 44             	mov    %eax,0x44(%esi)
40ddc6:	85 ff                	test   %edi,%edi
40ddc8:	74 13                	je     0x40dddd
40ddca:	68 00 04 00 00       	push   $0x400
40ddcf:	ff 75 e0             	push   -0x20(%ebp)
40ddd2:	8b cf                	mov    %edi,%ecx
40ddd4:	56                   	push   %esi
40ddd5:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40dddb:	ff d7                	call   *%edi
40dddd:	8b 3d 44 bb 42 00    	mov    0x42bb44,%edi
40dde3:	85 ff                	test   %edi,%edi
40dde5:	74 0b                	je     0x40ddf2
40dde7:	56                   	push   %esi
40dde8:	8b cf                	mov    %edi,%ecx
40ddea:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40ddf0:	ff d7                	call   *%edi
40ddf2:	8b 3d 1c bb 42 00    	mov    0x42bb1c,%edi
40ddf8:	85 ff                	test   %edi,%edi
40ddfa:	74 0b                	je     0x40de07
40ddfc:	56                   	push   %esi
40ddfd:	8b cf                	mov    %edi,%ecx
40ddff:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40de05:	ff d7                	call   *%edi
40de07:	33 c0                	xor    %eax,%eax
40de09:	39 46 04             	cmp    %eax,0x4(%esi)
40de0c:	7c 11                	jl     0x40de1f
40de0e:	83 7d 18 03          	cmpl   $0x3,0x18(%ebp)
40de12:	0f 85 bc 00 00 00    	jne    0x40ded4
40de18:	c7 46 04 ff ff 00 80 	movl   $0x8000ffff,0x4(%esi)
40de1f:	38 05 59 bb 42 00    	cmp    %al,0x42bb59
40de25:	75 4a                	jne    0x40de71
40de27:	8b 3d 5c bb 42 00    	mov    0x42bb5c,%edi
40de2d:	85 ff                	test   %edi,%edi
40de2f:	74 0f                	je     0x40de40
40de31:	8b cf                	mov    %edi,%ecx
40de33:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40de39:	ff d7                	call   *%edi
40de3b:	0f b6 c0             	movzbl %al,%eax
40de3e:	eb 0c                	jmp    0x40de4c
40de40:	ff 15 b4 c1 42 00    	call   *0x42c1b4
40de46:	f7 d8                	neg    %eax
40de48:	1b c0                	sbb    %eax,%eax
40de4a:	f7 d8                	neg    %eax
40de4c:	85 c0                	test   %eax,%eax
40de4e:	75 21                	jne    0x40de71
40de50:	8b 3d 60 bb 42 00    	mov    0x42bb60,%edi
40de56:	85 ff                	test   %edi,%edi
40de58:	74 56                	je     0x40deb0
40de5a:	38 05 50 bb 42 00    	cmp    %al,0x42bb50
40de60:	75 4e                	jne    0x40deb0
40de62:	50                   	push   %eax
40de63:	50                   	push   %eax
40de64:	56                   	push   %esi
40de65:	8b cf                	mov    %edi,%ecx
40de67:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40de6d:	ff d7                	call   *%edi
40de6f:	eb 3f                	jmp    0x40deb0
40de71:	8b 3d 60 bb 42 00    	mov    0x42bb60,%edi
40de77:	85 ff                	test   %edi,%edi
40de79:	74 1a                	je     0x40de95
40de7b:	80 3d 50 bb 42 00 00 	cmpb   $0x0,0x42bb50
40de82:	75 11                	jne    0x40de95
40de84:	68 00 08 00 00       	push   $0x800
40de89:	53                   	push   %ebx
40de8a:	56                   	push   %esi
40de8b:	8b cf                	mov    %edi,%ecx
40de8d:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40de93:	ff d7                	call   *%edi
40de95:	33 c0                	xor    %eax,%eax
40de97:	66 39 03             	cmp    %ax,(%ebx)
40de9a:	75 0d                	jne    0x40dea9
40de9c:	56                   	push   %esi
40de9d:	ba 00 08 00 00       	mov    $0x800,%edx
40dea2:	8b cb                	mov    %ebx,%ecx
40dea4:	e8 36 f4 ff ff       	call   0x40d2df
40dea9:	53                   	push   %ebx
40deaa:	ff 15 b8 c1 42 00    	call   *0x42c1b8
40deb0:	80 3d 58 bb 42 00 00 	cmpb   $0x0,0x42bb58
40deb7:	74 14                	je     0x40decd
40deb9:	8b 35 38 bb 42 00    	mov    0x42bb38,%esi
40debf:	85 f6                	test   %esi,%esi
40dec1:	74 0a                	je     0x40decd
40dec3:	8b ce                	mov    %esi,%ecx
40dec5:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40decb:	ff d6                	call   *%esi
40decd:	5f                   	pop    %edi
40dece:	5e                   	pop    %esi
40decf:	5b                   	pop    %ebx
40ded0:	c9                   	leave
40ded1:	c2 34 00             	ret    $0x34
40ded4:	e8 9b 02 00 00       	call   0x40e174
40ded9:	cc                   	int3
40deda:	8b ff                	mov    %edi,%edi
40dedc:	55                   	push   %ebp
40dedd:	8b ec                	mov    %esp,%ebp
40dedf:	83 ec 50             	sub    $0x50,%esp
40dee2:	56                   	push   %esi
40dee3:	57                   	push   %edi
40dee4:	8b 3d 54 bb 42 00    	mov    0x42bb54,%edi
40deea:	8b f1                	mov    %ecx,%esi
40deec:	85 ff                	test   %edi,%edi
40deee:	74 0b                	je     0x40defb
40def0:	56                   	push   %esi
40def1:	8b cf                	mov    %edi,%ecx
40def3:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40def9:	ff d7                	call   *%edi
40defb:	6a 50                	push   $0x50
40defd:	8d 45 b0             	lea    -0x50(%ebp),%eax
40df00:	6a 00                	push   $0x0
40df02:	50                   	push   %eax
40df03:	e8 a5 a4 01 00       	call   0x4283ad
40df08:	8b 4e 48             	mov    0x48(%esi),%ecx
40df0b:	33 c0                	xor    %eax,%eax
40df0d:	40                   	inc    %eax
40df0e:	c7 45 b0 09 04 00 c0 	movl   $0xc0000409,-0x50(%ebp)
40df15:	83 c4 0c             	add    $0xc,%esp
40df18:	89 45 c0             	mov    %eax,-0x40(%ebp)
40df1b:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40df1e:	c7 45 c4 07 00 00 00 	movl   $0x7,-0x3c(%ebp)
40df25:	85 c9                	test   %ecx,%ecx
40df27:	75 09                	jne    0x40df32
40df29:	50                   	push   %eax
40df2a:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40df2d:	e8 02 f7 ff ff       	call   0x40d634
40df32:	8b 46 04             	mov    0x4(%esi),%eax
40df35:	89 45 c8             	mov    %eax,-0x38(%ebp)
40df38:	8b 46 20             	mov    0x20(%esi),%eax
40df3b:	c7 45 c0 03 00 00 00 	movl   $0x3,-0x40(%ebp)
40df42:	89 45 cc             	mov    %eax,-0x34(%ebp)
40df45:	89 4d bc             	mov    %ecx,-0x44(%ebp)
40df48:	6a 00                	push   $0x0
40df4a:	eb de                	jmp    0x40df2a
40df4c:	8b ff                	mov    %edi,%edi
40df4e:	55                   	push   %ebp
40df4f:	8b ec                	mov    %esp,%ebp
40df51:	83 e4 f8             	and    $0xfffffff8,%esp
40df54:	b8 64 14 00 00       	mov    $0x1464,%eax
40df59:	e8 12 a4 01 00       	call   0x428370
40df5e:	a1 74 b6 42 00       	mov    0x42b674,%eax
40df63:	33 c4                	xor    %esp,%eax
40df65:	89 84 24 60 14 00 00 	mov    %eax,0x1460(%esp)
40df6c:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40df70:	8b 45 08             	mov    0x8(%ebp),%eax
40df73:	53                   	push   %ebx
40df74:	8b 5d 10             	mov    0x10(%ebp),%ebx
40df77:	56                   	push   %esi
40df78:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40df7c:	8b 5d 14             	mov    0x14(%ebp),%ebx
40df7f:	57                   	push   %edi
40df80:	8b 7d 0c             	mov    0xc(%ebp),%edi
40df83:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40df87:	75 0d                	jne    0x40df96
40df89:	83 3d 20 bb 42 00 00 	cmpl   $0x0,0x42bb20
40df90:	74 04                	je     0x40df96
40df92:	b3 01                	mov    $0x1,%bl
40df94:	eb 02                	jmp    0x40df98
40df96:	32 db                	xor    %bl,%bl
40df98:	8d 74 24 18          	lea    0x18(%esp),%esi
40df9c:	56                   	push   %esi
40df9d:	51                   	push   %ecx
40df9e:	8d 74 24 70          	lea    0x70(%esp),%esi
40dfa2:	56                   	push   %esi
40dfa3:	51                   	push   %ecx
40dfa4:	8d b4 24 78 04 00 00 	lea    0x478(%esp),%esi
40dfab:	56                   	push   %esi
40dfac:	8b 75 18             	mov    0x18(%ebp),%esi
40dfaf:	51                   	push   %ecx
40dfb0:	6a 00                	push   $0x0
40dfb2:	ff 75 1c             	push   0x1c(%ebp)
40dfb5:	56                   	push   %esi
40dfb6:	ff 74 24 34          	push   0x34(%esp)
40dfba:	ff 74 24 3c          	push   0x3c(%esp)
40dfbe:	57                   	push   %edi
40dfbf:	50                   	push   %eax
40dfc0:	e8 dc fc ff ff       	call   0x40dca1
40dfc5:	83 fe 03             	cmp    $0x3,%esi
40dfc8:	74 4b                	je     0x40e015
40dfca:	85 f6                	test   %esi,%esi
40dfcc:	75 30                	jne    0x40dffe
40dfce:	84 db                	test   %bl,%bl
40dfd0:	74 1d                	je     0x40dfef
40dfd2:	8b 35 20 bb 42 00    	mov    0x42bb20,%esi
40dfd8:	8d 84 24 68 04 00 00 	lea    0x468(%esp),%eax
40dfdf:	50                   	push   %eax
40dfe0:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40dfe4:	8b ce                	mov    %esi,%ecx
40dfe6:	50                   	push   %eax
40dfe7:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40dfed:	ff d6                	call   *%esi
40dfef:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40dff3:	e8 f6 fb ff ff       	call   0x40dbee
40dff8:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40dffc:	eb 1b                	jmp    0x40e019
40dffe:	8b 8c 24 6c 14 00 00 	mov    0x146c(%esp),%ecx
40e005:	5f                   	pop    %edi
40e006:	5e                   	pop    %esi
40e007:	5b                   	pop    %ebx
40e008:	33 cc                	xor    %esp,%ecx
40e00a:	e8 d1 9a 01 00       	call   0x427ae0
40e00f:	8b e5                	mov    %ebp,%esp
40e011:	5d                   	pop    %ebp
40e012:	c2 20 00             	ret    $0x20
40e015:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40e019:	e8 bc fe ff ff       	call   0x40deda
40e01e:	cc                   	int3
40e01f:	8b ff                	mov    %edi,%edi
40e021:	55                   	push   %ebp
40e022:	8b ec                	mov    %esp,%ebp
40e024:	6a 00                	push   $0x0
40e026:	6a 00                	push   $0x0
40e028:	ff 75 1c             	push   0x1c(%ebp)
40e02b:	ff 75 18             	push   0x18(%ebp)
40e02e:	ff 75 14             	push   0x14(%ebp)
40e031:	ff 75 10             	push   0x10(%ebp)
40e034:	ff 75 0c             	push   0xc(%ebp)
40e037:	ff 75 08             	push   0x8(%ebp)
40e03a:	e8 0d ff ff ff       	call   0x40df4c
40e03f:	5d                   	pop    %ebp
40e040:	c2 18 00             	ret    $0x18
40e043:	8b ff                	mov    %edi,%edi
40e045:	55                   	push   %ebp
40e046:	8b ec                	mov    %esp,%ebp
40e048:	53                   	push   %ebx
40e049:	56                   	push   %esi
40e04a:	57                   	push   %edi
40e04b:	ff 75 14             	push   0x14(%ebp)
40e04e:	8b fa                	mov    %edx,%edi
40e050:	8b d9                	mov    %ecx,%ebx
40e052:	51                   	push   %ecx
40e053:	51                   	push   %ecx
40e054:	68 b8 25 40 00       	push   $0x4025b8
40e059:	e8 b3 f7 ff ff       	call   0x40d811
40e05e:	8b f0                	mov    %eax,%esi
40e060:	85 f6                	test   %esi,%esi
40e062:	7f 04                	jg     0x40e068
40e064:	8b ce                	mov    %esi,%ecx
40e066:	eb 09                	jmp    0x40e071
40e068:	0f b7 ce             	movzwl %si,%ecx