401e12:	8b d8                	mov    %eax,%ebx
401e14:	6a 48                	push   $0x48
401e16:	6a 5a                	push   $0x5a
401e18:	57                   	push   %edi
401e19:	89 55 f0             	mov    %edx,-0x10(%ebp)
401e1c:	ff 15 64 70 40 00    	call   *0x407064
401e22:	50                   	push   %eax
401e23:	53                   	push   %ebx
401e24:	ff 15 44 71 40 00    	call   *0x407144
401e2a:	57                   	push   %edi
401e2b:	ff 75 f8             	push   -0x8(%ebp)
401e2e:	f7 d8                	neg    %eax
401e30:	a3 e8 a7 40 00       	mov    %eax,0x40a7e8
401e35:	ff 15 f4 71 40 00    	call   *0x4071f4
401e3b:	6a 03                	push   $0x3
401e3d:	e8 c8 0c 00 00       	call   0x402b0a
401e42:	a3 f8 a7 40 00       	mov    %eax,0x40a7f8
401e47:	8a 45 dc             	mov    -0x24(%ebp),%al
401e4a:	59                   	pop    %ecx
401e4b:	89 55 f0             	mov    %edx,-0x10(%ebp)
401e4e:	ff 75 d0             	push   -0x30(%ebp)
401e51:	8a c8                	mov    %al,%cl
401e53:	80 e1 01             	and    $0x1,%cl
401e56:	c6 05 ff a7 40 00 01 	movb   $0x1,0x40a7ff
401e5d:	88 0d fc a7 40 00    	mov    %cl,0x40a7fc
401e63:	8a c8                	mov    %al,%cl
401e65:	80 e1 02             	and    $0x2,%cl
401e68:	24 04                	and    $0x4,%al
401e6a:	68 04 a8 40 00       	push   $0x40a804
401e6f:	88 0d fd a7 40 00    	mov    %cl,0x40a7fd
401e75:	a2 fe a7 40 00       	mov    %al,0x40a7fe
401e7a:	e8 7d 41 00 00       	call   0x405ffc
401e7f:	68 e8 a7 40 00       	push   $0x40a7e8
401e84:	ff 15 58 70 40 00    	call   *0x407058
401e8a:	e9 55 07 00 00       	jmp    0x4025e4
401e8f:	53                   	push   %ebx
401e90:	e8 75 0c 00 00       	call   0x402b0a
401e95:	6a 01                	push   $0x1
401e97:	8b f0                	mov    %eax,%esi
401e99:	89 55 f0             	mov    %edx,-0x10(%ebp)
401e9c:	e8 69 0c 00 00       	call   0x402b0a
401ea1:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
401ea4:	59                   	pop    %ecx
401ea5:	59                   	pop    %ecx
401ea6:	89 55 f0             	mov    %edx,-0x10(%ebp)
401ea9:	50                   	push   %eax
401eaa:	56                   	push   %esi
401eab:	75 0b                	jne    0x401eb8
401ead:	ff 15 48 72 40 00    	call   *0x407248
401eb3:	e9 00 0b 00 00       	jmp    0x4029b8
401eb8:	ff 15 f8 71 40 00    	call   *0x4071f8
401ebe:	e9 f5 0a 00 00       	jmp    0x4029b8
401ec3:	53                   	push   %ebx
401ec4:	e8 63 0c 00 00       	call   0x402b2c
401ec9:	6a 31                	push   $0x31
401ecb:	8b f0                	mov    %eax,%esi
401ecd:	e8 5a 0c 00 00       	call   0x402b2c
401ed2:	6a 22                	push   $0x22
401ed4:	8b d8                	mov    %eax,%ebx
401ed6:	e8 51 0c 00 00       	call   0x402b2c
401edb:	6a 15                	push   $0x15
401edd:	8b f8                	mov    %eax,%edi
401edf:	e8 48 0c 00 00       	call   0x402b2c
401ee4:	6a ec                	push   $0xffffffec
401ee6:	e8 38 f5 ff ff       	call   0x401423
401eeb:	8b 45 dc             	mov    -0x24(%ebp),%eax
401eee:	89 45 80             	mov    %eax,-0x80(%ebp)
401ef1:	8b 45 f8             	mov    -0x8(%ebp),%eax
401ef4:	89 45 84             	mov    %eax,-0x7c(%ebp)
401ef7:	8b 45 d8             	mov    -0x28(%ebp),%eax
401efa:	89 45 98             	mov    %eax,-0x68(%ebp)
401efd:	8a 06                	mov    (%esi),%al
401eff:	f6 d8                	neg    %al
401f01:	1b c0                	sbb    %eax,%eax
401f03:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
401f06:	23 c6                	and    %esi,%eax
401f08:	89 45 88             	mov    %eax,-0x78(%ebp)
401f0b:	8a 07                	mov    (%edi),%al
401f0d:	f6 d8                	neg    %al
401f0f:	1b c0                	sbb    %eax,%eax
401f11:	c7 45 94 00 98 42 00 	movl   $0x429800,-0x6c(%ebp)
401f18:	23 c7                	and    %edi,%eax
401f1a:	89 45 90             	mov    %eax,-0x70(%ebp)
401f1d:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
401f23:	50                   	push   %eax
401f24:	e8 93 37 00 00       	call   0x4056bc
401f29:	85 c0                	test   %eax,%eax
401f2b:	0f 84 52 08 00 00    	je     0x402783
401f31:	f6 45 80 40          	testb  $0x40,-0x80(%ebp)
401f35:	0f 84 7d 0a 00 00    	je     0x4029b8
401f3b:	ff 75 b4             	push   -0x4c(%ebp)
401f3e:	e8 a4 44 00 00       	call   0x4063e7
401f43:	ff 75 b4             	push   -0x4c(%ebp)
401f46:	eb 45                	jmp    0x401f8d
401f48:	53                   	push   %ebx
401f49:	e8 de 0b 00 00       	call   0x402b2c
401f4e:	8b f0                	mov    %eax,%esi
401f50:	56                   	push   %esi
401f51:	6a eb                	push   $0xffffffeb
401f53:	e8 a9 31 00 00       	call   0x405101
401f58:	56                   	push   %esi
401f59:	e8 1b 37 00 00       	call   0x405679
401f5e:	8b f0                	mov    %eax,%esi
401f60:	3b f3                	cmp    %ebx,%esi
401f62:	0f 84 1b 08 00 00    	je     0x402783
401f68:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
401f6b:	74 1f                	je     0x401f8c
401f6d:	56                   	push   %esi
401f6e:	e8 74 44 00 00       	call   0x4063e7
401f73:	39 5d d0             	cmp    %ebx,-0x30(%ebp)
401f76:	7c 09                	jl     0x401f81
401f78:	50                   	push   %eax
401f79:	57                   	push   %edi
401f7a:	e8 b9 3f 00 00       	call   0x405f38
401f7f:	eb 0b                	jmp    0x401f8c
401f81:	3b c3                	cmp    %ebx,%eax
401f83:	74 07                	je     0x401f8c
401f85:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401f8c:	56                   	push   %esi
401f8d:	ff 15 14 71 40 00    	call   *0x407114
401f93:	e9 20 0a 00 00       	jmp    0x4029b8
401f98:	6a 02                	push   $0x2
401f9a:	e8 8d 0b 00 00       	call   0x402b2c
401f9f:	50                   	push   %eax
401fa0:	e8 38 43 00 00       	call   0x4062dd
401fa5:	3b c3                	cmp    %ebx,%eax
401fa7:	89 45 08             	mov    %eax,0x8(%ebp)
401faa:	74 13                	je     0x401fbf
401fac:	8b d8                	mov    %eax,%ebx
401fae:	ff 73 14             	push   0x14(%ebx)
401fb1:	57                   	push   %edi
401fb2:	e8 81 3f 00 00       	call   0x405f38
401fb7:	ff 73 18             	push   0x18(%ebx)
401fba:	e9 aa f5 ff ff       	jmp    0x401569
401fbf:	88 1e                	mov    %bl,(%esi)
401fc1:	88 1f                	mov    %bl,(%edi)
401fc3:	e9 bb 07 00 00       	jmp    0x402783
401fc8:	6a ee                	push   $0xffffffee
401fca:	e8 5d 0b 00 00       	call   0x402b2c
401fcf:	8d 4d f0             	lea    -0x10(%ebp),%ecx
401fd2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401fd5:	51                   	push   %ecx
401fd6:	50                   	push   %eax
401fd7:	6a 09                	push   $0x9
401fd9:	e8 94 43 00 00       	call   0x406372
401fde:	ff d0                	call   *%eax
401fe0:	88 1e                	mov    %bl,(%esi)
401fe2:	3b c3                	cmp    %ebx,%eax
401fe4:	89 45 f4             	mov    %eax,-0xc(%ebp)
401fe7:	88 1f                	mov    %bl,(%edi)
401fe9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401ff0:	0f 84 c2 09 00 00    	je     0x4029b8
401ff6:	50                   	push   %eax
401ff7:	6a 40                	push   $0x40
401ff9:	ff 15 58 71 40 00    	call   *0x407158
401fff:	3b c3                	cmp    %ebx,%eax
402001:	89 45 08             	mov    %eax,0x8(%ebp)
402004:	0f 84 ae 09 00 00    	je     0x4029b8
40200a:	6a 0a                	push   $0xa
40200c:	e8 61 43 00 00       	call   0x406372
402011:	6a 0b                	push   $0xb
402013:	89 45 c0             	mov    %eax,-0x40(%ebp)
402016:	e8 57 43 00 00       	call   0x406372
40201b:	ff 75 08             	push   0x8(%ebp)
40201e:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402021:	ff 75 f4             	push   -0xc(%ebp)
402024:	53                   	push   %ebx
402025:	ff 75 e4             	push   -0x1c(%ebp)
402028:	ff 55 c0             	call   *-0x40(%ebp)
40202b:	85 c0                	test   %eax,%eax
40202d:	74 32                	je     0x402061
40202f:	8d 45 b4             	lea    -0x4c(%ebp),%eax
402032:	50                   	push   %eax
402033:	8d 45 f8             	lea    -0x8(%ebp),%eax
402036:	50                   	push   %eax
402037:	68 14 90 40 00       	push   $0x409014
40203c:	ff 75 08             	push   0x8(%ebp)
40203f:	ff 55 c4             	call   *-0x3c(%ebp)
402042:	85 c0                	test   %eax,%eax
402044:	74 1b                	je     0x402061
402046:	8b 45 f8             	mov    -0x8(%ebp),%eax
402049:	ff 70 08             	push   0x8(%eax)
40204c:	56                   	push   %esi
40204d:	e8 e6 3e 00 00       	call   0x405f38
402052:	8b 45 f8             	mov    -0x8(%ebp),%eax
402055:	ff 70 0c             	push   0xc(%eax)
402058:	57                   	push   %edi
402059:	e8 da 3e 00 00       	call   0x405f38
40205e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402061:	ff 75 08             	push   0x8(%ebp)
402064:	e9 69 fb ff ff       	jmp    0x401bd2
402069:	39 1d d8 37 42 00    	cmp    %ebx,0x4237d8
40206f:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402076:	0f 8c b5 00 00 00    	jl     0x402131
40207c:	6a f0                	push   $0xfffffff0
40207e:	e8 a9 0a 00 00       	call   0x402b2c
402083:	6a 01                	push   $0x1
402085:	8b f0                	mov    %eax,%esi
402087:	e8 a0 0a 00 00       	call   0x402b2c
40208c:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40208f:	89 45 08             	mov    %eax,0x8(%ebp)
402092:	74 0d                	je     0x4020a1
402094:	56                   	push   %esi
402095:	ff 15 54 71 40 00    	call   *0x407154
40209b:	8b f8                	mov    %eax,%edi
40209d:	3b fb                	cmp    %ebx,%edi
40209f:	75 10                	jne    0x4020b1
4020a1:	6a 08                	push   $0x8
4020a3:	53                   	push   %ebx
4020a4:	56                   	push   %esi
4020a5:	ff 15 50 71 40 00    	call   *0x407150
4020ab:	8b f8                	mov    %eax,%edi
4020ad:	3b fb                	cmp    %ebx,%edi
4020af:	74 79                	je     0x40212a
4020b1:	ff 75 08             	push   0x8(%ebp)
4020b4:	57                   	push   %edi
4020b5:	e8 27 43 00 00       	call   0x4063e1
4020ba:	8b f0                	mov    %eax,%esi
4020bc:	3b f3                	cmp    %ebx,%esi
4020be:	74 3d                	je     0x4020fd
4020c0:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
4020c3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4020c6:	74 17                	je     0x4020df
4020c8:	ff 75 d4             	push   -0x2c(%ebp)
4020cb:	e8 53 f3 ff ff       	call   0x401423
4020d0:	ff d6                	call   *%esi
4020d2:	85 c0                	test   %eax,%eax
4020d4:	74 31                	je     0x402107
4020d6:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4020dd:	eb 28                	jmp    0x402107
4020df:	68 00 90 40 00       	push   $0x409000
4020e4:	68 28 a8 40 00       	push   $0x40a828
4020e9:	68 00 40 42 00       	push   $0x424000
4020ee:	68 00 04 00 00       	push   $0x400
4020f3:	ff 75 f8             	push   -0x8(%ebp)
4020f6:	ff d6                	call   *%esi
4020f8:	83 c4 14             	add    $0x14,%esp
4020fb:	eb 0a                	jmp    0x402107
4020fd:	ff 75 08             	push   0x8(%ebp)
402100:	6a f7                	push   $0xfffffff7
402102:	e8 fa 2f 00 00       	call   0x405101
402107:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
40210a:	0f 85 a8 08 00 00    	jne    0x4029b8
402110:	57                   	push   %edi
402111:	e8 81 16 00 00       	call   0x403797
402116:	85 c0                	test   %eax,%eax
402118:	0f 84 9a 08 00 00    	je     0x4029b8
40211e:	57                   	push   %edi
40211f:	ff 15 4c 71 40 00    	call   *0x40714c
402125:	e9 8e 08 00 00       	jmp    0x4029b8
40212a:	6a f6                	push   $0xfffffff6
40212c:	e9 73 01 00 00       	jmp    0x4022a4
402131:	6a e7                	push   $0xffffffe7
402133:	e9 6c 01 00 00       	jmp    0x4022a4
402138:	6a f0                	push   $0xfffffff0
40213a:	e8 ed 09 00 00       	call   0x402b2c
40213f:	6a df                	push   $0xffffffdf
402141:	89 45 f0             	mov    %eax,-0x10(%ebp)
402144:	e8 e3 09 00 00       	call   0x402b2c
402149:	6a 02                	push   $0x2
40214b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40214e:	e8 d9 09 00 00       	call   0x402b2c
402153:	6a cd                	push   $0xffffffcd
402155:	89 45 bc             	mov    %eax,-0x44(%ebp)
402158:	e8 cf 09 00 00       	call   0x402b2c
40215d:	6a 45                	push   $0x45
40215f:	89 45 c0             	mov    %eax,-0x40(%ebp)
402162:	e8 c5 09 00 00       	call   0x402b2c
402167:	ff 75 f4             	push   -0xc(%ebp)
40216a:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40216d:	8b 45 dc             	mov    -0x24(%ebp),%eax
402170:	8b c8                	mov    %eax,%ecx
402172:	8b f8                	mov    %eax,%edi
402174:	8b f0                	mov    %eax,%esi
402176:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
40217c:	c1 f8 10             	sar    $0x10,%eax
40217f:	c1 fe 0c             	sar    $0xc,%esi
402182:	25 ff ff 00 00       	and    $0xffff,%eax
402187:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
40218d:	81 e7 00 80 00 00    	and    $0x8000,%edi
402193:	83 e6 07             	and    $0x7,%esi
402196:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402199:	e8 41 38 00 00       	call   0x4059df
40219e:	85 c0                	test   %eax,%eax
4021a0:	75 07                	jne    0x4021a9
4021a2:	6a 21                	push   $0x21
4021a4:	e8 83 09 00 00       	call   0x402b2c
4021a9:	8d 45 08             	lea    0x8(%ebp),%eax
4021ac:	50                   	push   %eax
4021ad:	68 00 74 40 00       	push   $0x407400
4021b2:	6a 01                	push   $0x1
4021b4:	53                   	push   %ebx
4021b5:	68 10 74 40 00       	push   $0x407410
4021ba:	ff 15 8c 72 40 00    	call   *0x40728c
4021c0:	3b c3                	cmp    %ebx,%eax
4021c2:	0f 8c d3 00 00 00    	jl     0x40229b
4021c8:	8b 45 08             	mov    0x8(%ebp),%eax
4021cb:	8d 55 e4             	lea    -0x1c(%ebp),%edx
4021ce:	52                   	push   %edx
4021cf:	68 20 74 40 00       	push   $0x407420
4021d4:	8b 08                	mov    (%eax),%ecx
4021d6:	50                   	push   %eax
4021d7:	ff 11                	call   *(%ecx)
4021d9:	3b c3                	cmp    %ebx,%eax
4021db:	89 45 f8             	mov    %eax,-0x8(%ebp)
4021de:	0f 8c a9 00 00 00    	jl     0x40228d
4021e4:	8b 45 08             	mov    0x8(%ebp),%eax
4021e7:	ff 75 f4             	push   -0xc(%ebp)
4021ea:	8b 08                	mov    (%eax),%ecx
4021ec:	50                   	push   %eax
4021ed:	ff 51 50             	call   *0x50(%ecx)
4021f0:	3b fb                	cmp    %ebx,%edi
4021f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4021f5:	75 0e                	jne    0x402205
4021f7:	8b 45 08             	mov    0x8(%ebp),%eax
4021fa:	68 00 98 42 00       	push   $0x429800
4021ff:	50                   	push   %eax
402200:	8b 08                	mov    (%eax),%ecx
402202:	ff 51 24             	call   *0x24(%ecx)
402205:	3b f3                	cmp    %ebx,%esi
402207:	74 0a                	je     0x402213
402209:	8b 45 08             	mov    0x8(%ebp),%eax
40220c:	56                   	push   %esi
40220d:	50                   	push   %eax
40220e:	8b 08                	mov    (%eax),%ecx
402210:	ff 51 3c             	call   *0x3c(%ecx)
402213:	8b 45 08             	mov    0x8(%ebp),%eax
402216:	ff 75 c4             	push   -0x3c(%ebp)
402219:	8b 08                	mov    (%eax),%ecx
40221b:	50                   	push   %eax
40221c:	ff 51 34             	call   *0x34(%ecx)
40221f:	8b 4d c0             	mov    -0x40(%ebp),%ecx
402222:	38 19                	cmp    %bl,(%ecx)
402224:	74 10                	je     0x402236
402226:	8b 45 08             	mov    0x8(%ebp),%eax
402229:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
40222f:	8b 10                	mov    (%eax),%edx
402231:	51                   	push   %ecx
402232:	50                   	push   %eax
402233:	ff 52 44             	call   *0x44(%edx)
402236:	8b 45 08             	mov    0x8(%ebp),%eax
402239:	ff 75 bc             	push   -0x44(%ebp)
40223c:	8b 08                	mov    (%eax),%ecx
40223e:	50                   	push   %eax
40223f:	ff 51 2c             	call   *0x2c(%ecx)
402242:	8b 45 08             	mov    0x8(%ebp),%eax
402245:	ff 75 b4             	push   -0x4c(%ebp)
402248:	8b 08                	mov    (%eax),%ecx
40224a:	50                   	push   %eax
40224b:	ff 51 1c             	call   *0x1c(%ecx)