401e34:	e8 d1 45 00 00       	call   0x40640a
401e39:	68 d8 cd 40 00       	push   $0x40cdd8
401e3e:	ff 15 54 80 40 00    	call   *0x408054
401e44:	e9 49 07 00 00       	jmp    0x402592
401e49:	53                   	push   %ebx
401e4a:	e8 d0 0d 00 00       	call   0x402c1f
401e4f:	6a 01                	push   $0x1
401e51:	8b f0                	mov    %eax,%esi
401e53:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401e56:	e8 c4 0d 00 00       	call   0x402c1f
401e5b:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401e5e:	59                   	pop    %ecx
401e5f:	59                   	pop    %ecx
401e60:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401e63:	50                   	push   %eax
401e64:	56                   	push   %esi
401e65:	75 0b                	jne    0x401e72
401e67:	ff 15 68 82 40 00    	call   *0x408268
401e6d:	e9 53 0c 00 00       	jmp    0x402ac5
401e72:	ff 15 10 82 40 00    	call   *0x408210
401e78:	e9 48 0c 00 00       	jmp    0x402ac5
401e7d:	53                   	push   %ebx
401e7e:	e8 be 0d 00 00       	call   0x402c41
401e83:	6a 31                	push   $0x31
401e85:	8b f0                	mov    %eax,%esi
401e87:	e8 b5 0d 00 00       	call   0x402c41
401e8c:	6a 22                	push   $0x22
401e8e:	8b d8                	mov    %eax,%ebx
401e90:	e8 ac 0d 00 00       	call   0x402c41
401e95:	6a 15                	push   $0x15
401e97:	8b f8                	mov    %eax,%edi
401e99:	e8 a3 0d 00 00       	call   0x402c41
401e9e:	6a ec                	push   $0xffffffec
401ea0:	e8 7e f5 ff ff       	call   0x401423
401ea5:	8b 45 e8             	mov    -0x18(%ebp),%eax
401ea8:	89 45 80             	mov    %eax,-0x80(%ebp)
401eab:	8b 45 f8             	mov    -0x8(%ebp),%eax
401eae:	89 45 84             	mov    %eax,-0x7c(%ebp)
401eb1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401eb4:	89 45 98             	mov    %eax,-0x68(%ebp)
401eb7:	66 8b 06             	mov    (%esi),%ax
401eba:	66 f7 d8             	neg    %ax
401ebd:	1b c0                	sbb    %eax,%eax
401ebf:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
401ec2:	23 c6                	and    %esi,%eax
401ec4:	89 45 88             	mov    %eax,-0x78(%ebp)
401ec7:	66 8b 07             	mov    (%edi),%ax
401eca:	66 f7 d8             	neg    %ax
401ecd:	1b c0                	sbb    %eax,%eax
401ecf:	c7 45 94 00 60 43 00 	movl   $0x436000,-0x6c(%ebp)
401ed6:	23 c7                	and    %edi,%eax
401ed8:	89 45 90             	mov    %eax,-0x70(%ebp)
401edb:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
401ee1:	50                   	push   %eax
401ee2:	e8 2d 3b 00 00       	call   0x405a14
401ee7:	85 c0                	test   %eax,%eax
401ee9:	0f 84 9c 09 00 00    	je     0x40288b
401eef:	f6 45 80 40          	testb  $0x40,-0x80(%ebp)
401ef3:	0f 84 cc 0b 00 00    	je     0x402ac5
401ef9:	ff 75 b4             	push   -0x4c(%ebp)
401efc:	e8 72 49 00 00       	call   0x406873
401f01:	ff 75 b4             	push   -0x4c(%ebp)
401f04:	eb 47                	jmp    0x401f4d
401f06:	53                   	push   %ebx
401f07:	e8 35 0d 00 00       	call   0x402c41
401f0c:	8b f0                	mov    %eax,%esi
401f0e:	56                   	push   %esi
401f0f:	6a eb                	push   $0xffffffeb
401f11:	e8 3a 35 00 00       	call   0x405450
401f16:	56                   	push   %esi
401f17:	e8 b5 3a 00 00       	call   0x4059d1
401f1c:	8b f0                	mov    %eax,%esi
401f1e:	3b f3                	cmp    %ebx,%esi
401f20:	0f 84 65 09 00 00    	je     0x40288b
401f26:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
401f29:	74 21                	je     0x401f4c
401f2b:	56                   	push   %esi
401f2c:	e8 42 49 00 00       	call   0x406873
401f31:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
401f34:	7c 0b                	jl     0x401f41
401f36:	50                   	push   %eax
401f37:	ff 75 f4             	push   -0xc(%ebp)
401f3a:	e8 f0 43 00 00       	call   0x40632f
401f3f:	eb 0b                	jmp    0x401f4c
401f41:	3b c3                	cmp    %ebx,%eax
401f43:	74 07                	je     0x401f4c
401f45:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401f4c:	56                   	push   %esi
401f4d:	ff 15 20 81 40 00    	call   *0x408120
401f53:	e9 6d 0b 00 00       	jmp    0x402ac5
401f58:	6a 02                	push   $0x2
401f5a:	e8 e2 0c 00 00       	call   0x402c41
401f5f:	50                   	push   %eax
401f60:	e8 c6 47 00 00       	call   0x40672b
401f65:	8b f8                	mov    %eax,%edi
401f67:	3b fb                	cmp    %ebx,%edi
401f69:	74 13                	je     0x401f7e
401f6b:	ff 77 14             	push   0x14(%edi)
401f6e:	ff 75 f4             	push   -0xc(%ebp)
401f71:	e8 b9 43 00 00       	call   0x40632f
401f76:	ff 77 18             	push   0x18(%edi)
401f79:	e9 ef f5 ff ff       	jmp    0x40156d
401f7e:	8b 45 f4             	mov    -0xc(%ebp),%eax
401f81:	66 89 1e             	mov    %bx,(%esi)
401f84:	66 89 18             	mov    %bx,(%eax)
401f87:	e9 ff 08 00 00       	jmp    0x40288b
401f8c:	6a ee                	push   $0xffffffee
401f8e:	e8 ae 0c 00 00       	call   0x402c41
401f93:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
401f96:	89 45 d0             	mov    %eax,-0x30(%ebp)
401f99:	51                   	push   %ecx
401f9a:	50                   	push   %eax
401f9b:	6a 09                	push   $0x9
401f9d:	e8 20 48 00 00       	call   0x4067c2
401fa2:	ff d0                	call   *%eax
401fa4:	8b f8                	mov    %eax,%edi
401fa6:	8b 45 f4             	mov    -0xc(%ebp),%eax
401fa9:	66 89 1e             	mov    %bx,(%esi)
401fac:	3b fb                	cmp    %ebx,%edi
401fae:	66 89 18             	mov    %bx,(%eax)
401fb1:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401fb8:	0f 84 07 0b 00 00    	je     0x402ac5
401fbe:	57                   	push   %edi
401fbf:	6a 40                	push   $0x40
401fc1:	ff 15 34 81 40 00    	call   *0x408134
401fc7:	3b c3                	cmp    %ebx,%eax
401fc9:	89 45 08             	mov    %eax,0x8(%ebp)
401fcc:	0f 84 f3 0a 00 00    	je     0x402ac5
401fd2:	6a 0a                	push   $0xa
401fd4:	e8 e9 47 00 00       	call   0x4067c2
401fd9:	6a 0b                	push   $0xb
401fdb:	89 45 c8             	mov    %eax,-0x38(%ebp)
401fde:	e8 df 47 00 00       	call   0x4067c2
401fe3:	ff 75 08             	push   0x8(%ebp)
401fe6:	89 45 f0             	mov    %eax,-0x10(%ebp)
401fe9:	57                   	push   %edi
401fea:	53                   	push   %ebx
401feb:	ff 75 d0             	push   -0x30(%ebp)
401fee:	ff 55 c8             	call   *-0x38(%ebp)
401ff1:	85 c0                	test   %eax,%eax
401ff3:	74 34                	je     0x402029
401ff5:	8d 45 b8             	lea    -0x48(%ebp),%eax
401ff8:	50                   	push   %eax
401ff9:	8d 45 c4             	lea    -0x3c(%ebp),%eax
401ffc:	50                   	push   %eax
401ffd:	68 14 a0 40 00       	push   $0x40a014
402002:	ff 75 08             	push   0x8(%ebp)
402005:	ff 55 f0             	call   *-0x10(%ebp)
402008:	85 c0                	test   %eax,%eax
40200a:	74 1d                	je     0x402029
40200c:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40200f:	ff 70 08             	push   0x8(%eax)
402012:	56                   	push   %esi
402013:	e8 17 43 00 00       	call   0x40632f
402018:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40201b:	ff 70 0c             	push   0xc(%eax)
40201e:	ff 75 f4             	push   -0xc(%ebp)
402021:	e8 09 43 00 00       	call   0x40632f
402026:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402029:	ff 75 08             	push   0x8(%ebp)
40202c:	e9 b6 fb ff ff       	jmp    0x401be7
402031:	39 1d 18 a3 42 00    	cmp    %ebx,0x42a318
402037:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40203e:	0f 8c b9 00 00 00    	jl     0x4020fd
402044:	6a f0                	push   $0xfffffff0
402046:	e8 f6 0b 00 00       	call   0x402c41
40204b:	6a 01                	push   $0x1
40204d:	8b f0                	mov    %eax,%esi
40204f:	e8 ed 0b 00 00       	call   0x402c41
402054:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402057:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40205a:	74 0e                	je     0x40206a
40205c:	56                   	push   %esi
40205d:	ff 15 70 81 40 00    	call   *0x408170
402063:	3b c3                	cmp    %ebx,%eax
402065:	89 45 08             	mov    %eax,0x8(%ebp)
402068:	75 11                	jne    0x40207b
40206a:	6a 08                	push   $0x8
40206c:	53                   	push   %ebx
40206d:	56                   	push   %esi
40206e:	ff 15 6c 81 40 00    	call   *0x40816c
402074:	3b c3                	cmp    %ebx,%eax
402076:	89 45 08             	mov    %eax,0x8(%ebp)
402079:	74 7b                	je     0x4020f6
40207b:	ff 75 c4             	push   -0x3c(%ebp)
40207e:	ff 75 08             	push   0x8(%ebp)
402081:	e8 ab 47 00 00       	call   0x406831
402086:	8b f0                	mov    %eax,%esi
402088:	3b f3                	cmp    %ebx,%esi
40208a:	74 39                	je     0x4020c5
40208c:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
40208f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402092:	74 17                	je     0x4020ab
402094:	ff 75 e0             	push   -0x20(%ebp)
402097:	e8 87 f3 ff ff       	call   0x401423
40209c:	ff d6                	call   *%esi
40209e:	85 c0                	test   %eax,%eax
4020a0:	74 2d                	je     0x4020cf
4020a2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4020a9:	eb 24                	jmp    0x4020cf
4020ab:	68 00 a0 40 00       	push   $0x40a000
4020b0:	68 38 ce 40 00       	push   $0x40ce38
4020b5:	57                   	push   %edi
4020b6:	68 00 04 00 00       	push   $0x400
4020bb:	ff 75 f8             	push   -0x8(%ebp)
4020be:	ff d6                	call   *%esi
4020c0:	83 c4 14             	add    $0x14,%esp
4020c3:	eb 0a                	jmp    0x4020cf
4020c5:	ff 75 c4             	push   -0x3c(%ebp)
4020c8:	6a f7                	push   $0xfffffff7
4020ca:	e8 81 33 00 00       	call   0x405450
4020cf:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4020d2:	0f 85 ed 09 00 00    	jne    0x402ac5
4020d8:	ff 75 08             	push   0x8(%ebp)
4020db:	e8 98 19 00 00       	call   0x403a78
4020e0:	85 c0                	test   %eax,%eax
4020e2:	0f 84 dd 09 00 00    	je     0x402ac5
4020e8:	ff 75 08             	push   0x8(%ebp)
4020eb:	ff 15 68 81 40 00    	call   *0x408168
4020f1:	e9 cf 09 00 00       	jmp    0x402ac5
4020f6:	6a f6                	push   $0xfffffff6
4020f8:	e9 4e 01 00 00       	jmp    0x40224b
4020fd:	6a e7                	push   $0xffffffe7
4020ff:	e9 47 01 00 00       	jmp    0x40224b
402104:	6a f0                	push   $0xfffffff0
402106:	e8 36 0b 00 00       	call   0x402c41
40210b:	6a df                	push   $0xffffffdf
40210d:	89 45 b4             	mov    %eax,-0x4c(%ebp)
402110:	e8 2c 0b 00 00       	call   0x402c41
402115:	6a 02                	push   $0x2
402117:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40211a:	e8 22 0b 00 00       	call   0x402c41
40211f:	6a cd                	push   $0xffffffcd
402121:	89 45 f8             	mov    %eax,-0x8(%ebp)
402124:	e8 18 0b 00 00       	call   0x402c41
402129:	6a 45                	push   $0x45
40212b:	89 45 b8             	mov    %eax,-0x48(%ebp)
40212e:	e8 0e 0b 00 00       	call   0x402c41
402133:	ff 75 c4             	push   -0x3c(%ebp)
402136:	89 45 f4             	mov    %eax,-0xc(%ebp)
402139:	8b 45 e8             	mov    -0x18(%ebp),%eax
40213c:	8b c8                	mov    %eax,%ecx
40213e:	8b f8                	mov    %eax,%edi
402140:	8b f0                	mov    %eax,%esi
402142:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
402148:	c1 f8 10             	sar    $0x10,%eax
40214b:	c1 fe 0c             	sar    $0xc,%esi
40214e:	25 ff ff 00 00       	and    $0xffff,%eax
402153:	89 4d bc             	mov    %ecx,-0x44(%ebp)
402156:	81 e7 00 80 00 00    	and    $0x8000,%edi
40215c:	83 e6 07             	and    $0x7,%esi
40215f:	89 45 c8             	mov    %eax,-0x38(%ebp)
402162:	e8 cd 3b 00 00       	call   0x405d34
402167:	85 c0                	test   %eax,%eax
402169:	75 07                	jne    0x402172
40216b:	6a 21                	push   $0x21
40216d:	e8 cf 0a 00 00       	call   0x402c41
402172:	8d 45 08             	lea    0x8(%ebp),%eax
402175:	50                   	push   %eax
402176:	68 d4 84 40 00       	push   $0x4084d4
40217b:	6a 01                	push   $0x1
40217d:	53                   	push   %ebx
40217e:	68 e4 84 40 00       	push   $0x4084e4
402183:	ff 15 a8 82 40 00    	call   *0x4082a8
402189:	3b c3                	cmp    %ebx,%eax
40218b:	0f 8c b1 00 00 00    	jl     0x402242
402191:	8b 45 08             	mov    0x8(%ebp),%eax
402194:	8d 55 d0             	lea    -0x30(%ebp),%edx
402197:	52                   	push   %edx
402198:	68 f4 84 40 00       	push   $0x4084f4
40219d:	8b 08                	mov    (%eax),%ecx
40219f:	50                   	push   %eax
4021a0:	ff 11                	call   *(%ecx)
4021a2:	3b c3                	cmp    %ebx,%eax
4021a4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4021a7:	0f 8c 87 00 00 00    	jl     0x402234
4021ad:	8b 45 08             	mov    0x8(%ebp),%eax
4021b0:	ff 75 c4             	push   -0x3c(%ebp)
4021b3:	8b 08                	mov    (%eax),%ecx
4021b5:	50                   	push   %eax
4021b6:	ff 51 50             	call   *0x50(%ecx)
4021b9:	3b fb                	cmp    %ebx,%edi
4021bb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4021be:	75 0e                	jne    0x4021ce
4021c0:	8b 45 08             	mov    0x8(%ebp),%eax
4021c3:	68 00 60 43 00       	push   $0x436000
4021c8:	50                   	push   %eax
4021c9:	8b 08                	mov    (%eax),%ecx
4021cb:	ff 51 24             	call   *0x24(%ecx)
4021ce:	3b f3                	cmp    %ebx,%esi
4021d0:	74 0a                	je     0x4021dc
4021d2:	8b 45 08             	mov    0x8(%ebp),%eax
4021d5:	56                   	push   %esi
4021d6:	50                   	push   %eax
4021d7:	8b 08                	mov    (%eax),%ecx
4021d9:	ff 51 3c             	call   *0x3c(%ecx)
4021dc:	8b 45 08             	mov    0x8(%ebp),%eax
4021df:	ff 75 c8             	push   -0x38(%ebp)
4021e2:	8b 08                	mov    (%eax),%ecx
4021e4:	50                   	push   %eax
4021e5:	ff 51 34             	call   *0x34(%ecx)
4021e8:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4021eb:	66 39 19             	cmp    %bx,(%ecx)
4021ee:	74 0d                	je     0x4021fd
4021f0:	8b 45 08             	mov    0x8(%ebp),%eax
4021f3:	ff 75 bc             	push   -0x44(%ebp)
4021f6:	8b 10                	mov    (%eax),%edx
4021f8:	51                   	push   %ecx
4021f9:	50                   	push   %eax
4021fa:	ff 52 44             	call   *0x44(%edx)
4021fd:	8b 45 08             	mov    0x8(%ebp),%eax
402200:	ff 75 f8             	push   -0x8(%ebp)
402203:	8b 08                	mov    (%eax),%ecx
402205:	50                   	push   %eax
402206:	ff 51 2c             	call   *0x2c(%ecx)
402209:	8b 45 08             	mov    0x8(%ebp),%eax
40220c:	ff 75 f4             	push   -0xc(%ebp)
40220f:	8b 08                	mov    (%eax),%ecx
402211:	50                   	push   %eax
402212:	ff 51 1c             	call   *0x1c(%ecx)
402215:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
402218:	7c 11                	jl     0x40222b
40221a:	8b 45 d0             	mov    -0x30(%ebp),%eax
40221d:	6a 01                	push   $0x1
40221f:	ff 75 b4             	push   -0x4c(%ebp)
402222:	8b 08                	mov    (%eax),%ecx
402224:	50                   	push   %eax
402225:	ff 51 18             	call   *0x18(%ecx)
402228:	89 45 f0             	mov    %eax,-0x10(%ebp)
40222b:	8b 45 d0             	mov    -0x30(%ebp),%eax
40222e:	50                   	push   %eax
40222f:	8b 08                	mov    (%eax),%ecx
402231:	ff 51 08             	call   *0x8(%ecx)
402234:	8b 45 08             	mov    0x8(%ebp),%eax
402237:	50                   	push   %eax
402238:	8b 08                	mov    (%eax),%ecx
40223a:	ff 51 08             	call   *0x8(%ecx)
40223d:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
402240:	7d 13                	jge    0x402255
402242:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402249:	6a f0                	push   $0xfffffff0
40224b:	e8 d3 f1 ff ff       	call   0x401423
402250:	e9 70 08 00 00       	jmp    0x402ac5
402255:	6a f4                	push   $0xfffffff4
402257:	eb f2                	jmp    0x40224b
402259:	53                   	push   %ebx
40225a:	e8 e2 09 00 00       	call   0x402c41
40225f:	6a 11                	push   $0x11
402261:	8b f0                	mov    %eax,%esi
402263:	e8 d9 09 00 00       	call   0x402c41