401e15:	5d                   	pop    %ebp
401e16:	c2 10 00             	ret    $0x10
401e19:	55                   	push   %ebp
401e1a:	8b ec                	mov    %esp,%ebp
401e1c:	8b 55 0c             	mov    0xc(%ebp),%edx
401e1f:	33 c9                	xor    %ecx,%ecx
401e21:	85 d2                	test   %edx,%edx
401e23:	74 0e                	je     0x401e33
401e25:	8b 02                	mov    (%edx),%eax
401e27:	3b 45 10             	cmp    0x10(%ebp),%eax
401e2a:	72 07                	jb     0x401e33
401e2c:	b9 57 00 07 80       	mov    $0x80070057,%ecx
401e31:	eb 1c                	jmp    0x401e4f
401e33:	f7 45 14 00 01 00 00 	testl  $0x100,0x14(%ebp)
401e3a:	74 13                	je     0x401e4f
401e3c:	8b 45 08             	mov    0x8(%ebp),%eax
401e3f:	39 08                	cmp    %ecx,(%eax)
401e41:	75 0c                	jne    0x401e4f
401e43:	c7 00 24 b5 44 00    	movl   $0x44b524,(%eax)
401e49:	85 d2                	test   %edx,%edx
401e4b:	74 02                	je     0x401e4f
401e4d:	89 0a                	mov    %ecx,(%edx)
401e4f:	8b c1                	mov    %ecx,%eax
401e51:	5d                   	pop    %ebp
401e52:	c2 10 00             	ret    $0x10
401e55:	55                   	push   %ebp
401e56:	8b ec                	mov    %esp,%ebp
401e58:	8b 45 0c             	mov    0xc(%ebp),%eax
401e5b:	8b d0                	mov    %eax,%edx
401e5d:	85 c0                	test   %eax,%eax
401e5f:	74 0e                	je     0x401e6f
401e61:	8b 4d 08             	mov    0x8(%ebp),%ecx
401e64:	80 39 00             	cmpb   $0x0,(%ecx)
401e67:	74 06                	je     0x401e6f
401e69:	41                   	inc    %ecx
401e6a:	83 e8 01             	sub    $0x1,%eax
401e6d:	75 f5                	jne    0x401e64
401e6f:	33 c9                	xor    %ecx,%ecx
401e71:	85 c0                	test   %eax,%eax
401e73:	56                   	push   %esi
401e74:	be 57 00 07 80       	mov    $0x80070057,%esi
401e79:	0f 45 f1             	cmovne %ecx,%esi
401e7c:	8b 4d 10             	mov    0x10(%ebp),%ecx
401e7f:	85 c9                	test   %ecx,%ecx
401e81:	74 0d                	je     0x401e90
401e83:	85 c0                	test   %eax,%eax
401e85:	74 06                	je     0x401e8d
401e87:	2b d0                	sub    %eax,%edx
401e89:	89 11                	mov    %edx,(%ecx)
401e8b:	eb 03                	jmp    0x401e90
401e8d:	83 21 00             	andl   $0x0,(%ecx)
401e90:	8b c6                	mov    %esi,%eax
401e92:	5e                   	pop    %esi
401e93:	5d                   	pop    %ebp
401e94:	c2 0c 00             	ret    $0xc
401e97:	55                   	push   %ebp
401e98:	8b ec                	mov    %esp,%ebp
401e9a:	8b 45 0c             	mov    0xc(%ebp),%eax
401e9d:	8b d0                	mov    %eax,%edx
401e9f:	56                   	push   %esi
401ea0:	57                   	push   %edi
401ea1:	33 ff                	xor    %edi,%edi
401ea3:	85 c0                	test   %eax,%eax
401ea5:	74 10                	je     0x401eb7
401ea7:	8b 4d 08             	mov    0x8(%ebp),%ecx
401eaa:	66 39 39             	cmp    %di,(%ecx)
401ead:	74 08                	je     0x401eb7
401eaf:	83 c1 02             	add    $0x2,%ecx
401eb2:	83 e8 01             	sub    $0x1,%eax
401eb5:	75 f3                	jne    0x401eaa
401eb7:	33 c9                	xor    %ecx,%ecx
401eb9:	be 57 00 07 80       	mov    $0x80070057,%esi
401ebe:	85 c0                	test   %eax,%eax
401ec0:	0f 45 f1             	cmovne %ecx,%esi
401ec3:	8b 4d 10             	mov    0x10(%ebp),%ecx
401ec6:	85 c9                	test   %ecx,%ecx
401ec8:	74 0c                	je     0x401ed6
401eca:	85 c0                	test   %eax,%eax
401ecc:	74 06                	je     0x401ed4
401ece:	2b d0                	sub    %eax,%edx
401ed0:	89 11                	mov    %edx,(%ecx)
401ed2:	eb 02                	jmp    0x401ed6
401ed4:	89 39                	mov    %edi,(%ecx)
401ed6:	5f                   	pop    %edi
401ed7:	8b c6                	mov    %esi,%eax
401ed9:	5e                   	pop    %esi
401eda:	5d                   	pop    %ebp
401edb:	c2 0c 00             	ret    $0xc
401ede:	55                   	push   %ebp
401edf:	8b ec                	mov    %esp,%ebp
401ee1:	6a 00                	push   $0x0
401ee3:	ff 75 0c             	push   0xc(%ebp)
401ee6:	ff 75 08             	push   0x8(%ebp)
401ee9:	e8 4e f5 ff ff       	call   0x40143c
401eee:	5d                   	pop    %ebp
401eef:	c2 08 00             	ret    $0x8
401ef2:	55                   	push   %ebp
401ef3:	8b ec                	mov    %esp,%ebp
401ef5:	6a 00                	push   $0x0
401ef7:	ff 75 10             	push   0x10(%ebp)
401efa:	ff 75 0c             	push   0xc(%ebp)
401efd:	ff 75 08             	push   0x8(%ebp)
401f00:	e8 a1 f3 ff ff       	call   0x4012a6
401f05:	5d                   	pop    %ebp
401f06:	c2 0c 00             	ret    $0xc
401f09:	55                   	push   %ebp
401f0a:	8b ec                	mov    %esp,%ebp
401f0c:	6a 01                	push   $0x1
401f0e:	ff 75 10             	push   0x10(%ebp)
401f11:	ff 75 0c             	push   0xc(%ebp)
401f14:	ff 75 08             	push   0x8(%ebp)
401f17:	e8 8a f3 ff ff       	call   0x4012a6
401f1c:	5d                   	pop    %ebp
401f1d:	c2 0c 00             	ret    $0xc
401f20:	55                   	push   %ebp
401f21:	8b ec                	mov    %esp,%ebp
401f23:	8d 45 10             	lea    0x10(%ebp),%eax
401f26:	50                   	push   %eax
401f27:	ff 75 0c             	push   0xc(%ebp)
401f2a:	ff 75 08             	push   0x8(%ebp)
401f2d:	e8 02 00 00 00       	call   0x401f34
401f32:	5d                   	pop    %ebp
401f33:	c3                   	ret
401f34:	55                   	push   %ebp
401f35:	8b ec                	mov    %esp,%ebp
401f37:	ff 75 10             	push   0x10(%ebp)
401f3a:	ff 75 0c             	push   0xc(%ebp)
401f3d:	6a 00                	push   $0x0
401f3f:	ff 75 08             	push   0x8(%ebp)
401f42:	e8 19 f4 ff ff       	call   0x401360
401f47:	5d                   	pop    %ebp
401f48:	c2 0c 00             	ret    $0xc
401f4b:	55                   	push   %ebp
401f4c:	8b ec                	mov    %esp,%ebp
401f4e:	ff 75 10             	push   0x10(%ebp)
401f51:	ff 75 0c             	push   0xc(%ebp)
401f54:	6a 01                	push   $0x1
401f56:	ff 75 08             	push   0x8(%ebp)
401f59:	e8 02 f4 ff ff       	call   0x401360
401f5e:	5d                   	pop    %ebp
401f5f:	c2 0c 00             	ret    $0xc
401f62:	55                   	push   %ebp
401f63:	8b ec                	mov    %esp,%ebp
401f65:	8d 45 10             	lea    0x10(%ebp),%eax
401f68:	50                   	push   %eax
401f69:	ff 75 0c             	push   0xc(%ebp)
401f6c:	ff 75 08             	push   0x8(%ebp)
401f6f:	e8 d7 ff ff ff       	call   0x401f4b
401f74:	5d                   	pop    %ebp
401f75:	c3                   	ret
401f76:	cc                   	int3
401f77:	cc                   	int3
401f78:	55                   	push   %ebp
401f79:	8b ec                	mov    %esp,%ebp
401f7b:	51                   	push   %ecx
401f7c:	51                   	push   %ecx
401f7d:	56                   	push   %esi
401f7e:	33 f6                	xor    %esi,%esi
401f80:	b9 ff 19 00 00       	mov    $0x19ff,%ecx
401f85:	39 75 10             	cmp    %esi,0x10(%ebp)
401f88:	b8 ff 11 00 00       	mov    $0x11ff,%eax
401f8d:	89 75 fc             	mov    %esi,-0x4(%ebp)
401f90:	0f 45 c1             	cmovne %ecx,%eax
401f93:	8d 4d 14             	lea    0x14(%ebp),%ecx
401f96:	89 4d f8             	mov    %ecx,-0x8(%ebp)
401f99:	8d 4d f8             	lea    -0x8(%ebp),%ecx
401f9c:	51                   	push   %ecx
401f9d:	56                   	push   %esi
401f9e:	8d 4d fc             	lea    -0x4(%ebp),%ecx
401fa1:	51                   	push   %ecx
401fa2:	56                   	push   %esi
401fa3:	ff 75 0c             	push   0xc(%ebp)
401fa6:	ff 75 10             	push   0x10(%ebp)
401fa9:	50                   	push   %eax
401faa:	ff 15 f0 b0 44 00    	call   *0x44b0f0
401fb0:	89 75 f8             	mov    %esi,-0x8(%ebp)
401fb3:	85 c0                	test   %eax,%eax
401fb5:	75 30                	jne    0x401fe7
401fb7:	ff 15 e8 b0 44 00    	call   *0x44b0e8
401fbd:	0f b7 f0             	movzwl %ax,%esi
401fc0:	81 ce 00 00 07 80    	or     $0x80070000,%esi
401fc6:	85 c0                	test   %eax,%eax
401fc8:	0f 4e f0             	cmovle %eax,%esi
401fcb:	b8 05 40 00 80       	mov    $0x80004005,%eax
401fd0:	85 f6                	test   %esi,%esi
401fd2:	0f 49 f0             	cmovns %eax,%esi
401fd5:	56                   	push   %esi
401fd6:	68 89 04 00 00       	push   $0x489
401fdb:	68 90 b5 44 00       	push   $0x44b590
401fe0:	e8 ee 17 00 00       	call   0x4037d3
401fe5:	eb 0e                	jmp    0x401ff5
401fe7:	50                   	push   %eax
401fe8:	ff 75 fc             	push   -0x4(%ebp)
401feb:	ff 75 08             	push   0x8(%ebp)
401fee:	e8 b2 01 00 00       	call   0x4021a5
401ff3:	8b f0                	mov    %eax,%esi
401ff5:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
401ff9:	74 09                	je     0x402004
401ffb:	ff 75 fc             	push   -0x4(%ebp)
401ffe:	ff 15 e0 b0 44 00    	call   *0x44b0e0
402004:	8b c6                	mov    %esi,%eax
402006:	5e                   	pop    %esi
402007:	8b e5                	mov    %ebp,%esp
402009:	5d                   	pop    %ebp
40200a:	c3                   	ret
40200b:	55                   	push   %ebp
40200c:	8b ec                	mov    %esp,%ebp
40200e:	51                   	push   %ecx
40200f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402013:	8d 45 fc             	lea    -0x4(%ebp),%eax
402016:	56                   	push   %esi
402017:	50                   	push   %eax
402018:	68 ff ff ff 7f       	push   $0x7fffffff
40201d:	ff 75 08             	push   0x8(%ebp)
402020:	e8 32 fc ff ff       	call   0x401c57
402025:	8b f0                	mov    %eax,%esi
402027:	85 f6                	test   %esi,%esi
402029:	78 64                	js     0x40208f
40202b:	53                   	push   %ebx
40202c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40202f:	f6 c3 01             	test   $0x1,%bl
402032:	74 07                	je     0x40203b
402034:	be 57 00 07 80       	mov    $0x80070057,%esi
402039:	eb 53                	jmp    0x40208e
40203b:	57                   	push   %edi
40203c:	6a 01                	push   $0x1
40203e:	d1 eb                	shr    $1,%ebx
402040:	53                   	push   %ebx
402041:	e8 8e 18 00 00       	call   0x4038d4
402046:	8b f8                	mov    %eax,%edi
402048:	85 ff                	test   %edi,%edi
40204a:	75 17                	jne    0x402063
40204c:	be 0e 00 07 80       	mov    $0x8007000e,%esi
402051:	56                   	push   %esi
402052:	68 d1 05 00 00       	push   $0x5d1
402057:	68 90 b5 44 00       	push   $0x44b590
40205c:	e8 72 17 00 00       	call   0x4037d3
402061:	eb 2a                	jmp    0x40208d
402063:	53                   	push   %ebx
402064:	57                   	push   %edi
402065:	ff 75 08             	push   0x8(%ebp)
402068:	e8 0d 06 00 00       	call   0x40267a
40206d:	8b f0                	mov    %eax,%esi
40206f:	85 f6                	test   %esi,%esi
402071:	78 10                	js     0x402083
402073:	8b 45 0c             	mov    0xc(%ebp),%eax
402076:	89 38                	mov    %edi,(%eax)
402078:	33 ff                	xor    %edi,%edi
40207a:	8b 45 10             	mov    0x10(%ebp),%eax
40207d:	85 c0                	test   %eax,%eax
40207f:	74 0c                	je     0x40208d
402081:	89 18                	mov    %ebx,(%eax)
402083:	85 ff                	test   %edi,%edi
402085:	74 06                	je     0x40208d
402087:	57                   	push   %edi
402088:	e8 0c 19 00 00       	call   0x403999
40208d:	5f                   	pop    %edi
40208e:	5b                   	pop    %ebx
40208f:	8b c6                	mov    %esi,%eax
402091:	5e                   	pop    %esi
402092:	8b e5                	mov    %ebp,%esp
402094:	5d                   	pop    %ebp
402095:	c2 0c 00             	ret    $0xc
402098:	55                   	push   %ebp
402099:	8b ec                	mov    %esp,%ebp
40209b:	53                   	push   %ebx
40209c:	8b 5d 10             	mov    0x10(%ebp),%ebx
40209f:	56                   	push   %esi
4020a0:	8b 75 0c             	mov    0xc(%ebp),%esi
4020a3:	57                   	push   %edi
4020a4:	6a 00                	push   $0x0
4020a6:	8d 3c 75 02 00 00 00 	lea    0x2(,%esi,2),%edi
4020ad:	57                   	push   %edi
4020ae:	53                   	push   %ebx
4020af:	e8 88 f3 ff ff       	call   0x40143c
4020b4:	85 c0                	test   %eax,%eax
4020b6:	78 0c                	js     0x4020c4
4020b8:	57                   	push   %edi
4020b9:	ff 33                	push   (%ebx)
4020bb:	56                   	push   %esi
4020bc:	ff 75 08             	push   0x8(%ebp)
4020bf:	e8 2a 06 00 00       	call   0x4026ee
4020c4:	5f                   	pop    %edi
4020c5:	5e                   	pop    %esi
4020c6:	5b                   	pop    %ebx
4020c7:	5d                   	pop    %ebp
4020c8:	c2 0c 00             	ret    $0xc
4020cb:	55                   	push   %ebp
4020cc:	8b ec                	mov    %esp,%ebp
4020ce:	51                   	push   %ecx
4020cf:	53                   	push   %ebx
4020d0:	56                   	push   %esi
4020d1:	8b 75 08             	mov    0x8(%ebp),%esi
4020d4:	33 db                	xor    %ebx,%ebx
4020d6:	21 5d fc             	and    %ebx,-0x4(%ebp)
4020d9:	57                   	push   %edi
4020da:	33 ff                	xor    %edi,%edi
4020dc:	39 1e                	cmp    %ebx,(%esi)
4020de:	74 30                	je     0x402110
4020e0:	ff 36                	push   (%esi)
4020e2:	e8 6a 1a 00 00       	call   0x403b51
4020e7:	8b d8                	mov    %eax,%ebx
4020e9:	83 fb ff             	cmp    $0xffffffff,%ebx
4020ec:	75 0a                	jne    0x4020f8
4020ee:	bf 57 00 07 80       	mov    $0x80070057,%edi
4020f3:	e9 8e 00 00 00       	jmp    0x402186
4020f8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4020fb:	d1 eb                	shr    $1,%ebx
4020fd:	50                   	push   %eax
4020fe:	68 ff ff ff 7f       	push   $0x7fffffff
402103:	ff 36                	push   (%esi)
402105:	e8 4d fb ff ff       	call   0x401c57
40210a:	8b f8                	mov    %eax,%edi
40210c:	85 ff                	test   %edi,%edi
40210e:	78 76                	js     0x402186
402110:	8b 55 10             	mov    0x10(%ebp),%edx
402113:	85 d2                	test   %edx,%edx
402115:	75 1a                	jne    0x402131
402117:	8d 45 10             	lea    0x10(%ebp),%eax
40211a:	50                   	push   %eax
40211b:	68 ff ff ff 7f       	push   $0x7fffffff
402120:	ff 75 0c             	push   0xc(%ebp)
402123:	e8 2f fb ff ff       	call   0x401c57
402128:	8b f8                	mov    %eax,%edi
40212a:	85 ff                	test   %edi,%edi
40212c:	78 58                	js     0x402186
40212e:	8b 55 10             	mov    0x10(%ebp),%edx
402131:	8b cb                	mov    %ebx,%ecx
402133:	8d 42 01             	lea    0x1(%edx),%eax
402136:	2b 4d fc             	sub    -0x4(%ebp),%ecx
402139:	3b c8                	cmp    %eax,%ecx
40213b:	73 18                	jae    0x402155
40213d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
402140:	43                   	inc    %ebx
402141:	6a 00                	push   $0x0
402143:	03 da                	add    %edx,%ebx
402145:	53                   	push   %ebx
402146:	56                   	push   %esi
402147:	e8 f0 f2 ff ff       	call   0x40143c
40214c:	8b f8                	mov    %eax,%edi
40214e:	85 ff                	test   %edi,%edi
402150:	78 34                	js     0x402186
402152:	8b 55 10             	mov    0x10(%ebp),%edx
402155:	8b 0e                	mov    (%esi),%ecx
402157:	85 c9                	test   %ecx,%ecx
402159:	74 26                	je     0x402181
40215b:	8d 34 12             	lea    (%edx,%edx,1),%esi
40215e:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
402161:	2b c6                	sub    %esi,%eax
402163:	50                   	push   %eax