422f29:	5b                   	pop    %ebx
422f2a:	5e                   	pop    %esi
422f2b:	c9                   	leave
422f2c:	c3                   	ret
422f2d:	8b ff                	mov    %edi,%edi
422f2f:	56                   	push   %esi
422f30:	ff 15 54 10 43 00    	call   *0x431054
422f36:	8b f0                	mov    %eax,%esi
422f38:	85 f6                	test   %esi,%esi
422f3a:	75 02                	jne    0x422f3e
422f3c:	5e                   	pop    %esi
422f3d:	c3                   	ret
422f3e:	53                   	push   %ebx
422f3f:	57                   	push   %edi
422f40:	56                   	push   %esi
422f41:	e8 10 ff ff ff       	call   0x422e56
422f46:	8b d8                	mov    %eax,%ebx
422f48:	2b de                	sub    %esi,%ebx
422f4a:	83 e3 fe             	and    $0xfffffffe,%ebx
422f4d:	53                   	push   %ebx
422f4e:	e8 dd 3c fe ff       	call   0x406c30
422f53:	8b f8                	mov    %eax,%edi
422f55:	59                   	pop    %ecx
422f56:	59                   	pop    %ecx
422f57:	85 ff                	test   %edi,%edi
422f59:	74 0b                	je     0x422f66
422f5b:	53                   	push   %ebx
422f5c:	56                   	push   %esi
422f5d:	57                   	push   %edi
422f5e:	e8 dd 7e fe ff       	call   0x40ae40
422f63:	83 c4 0c             	add    $0xc,%esp
422f66:	6a 00                	push   $0x0
422f68:	e8 a3 3c fe ff       	call   0x406c10
422f6d:	59                   	pop    %ecx
422f6e:	56                   	push   %esi
422f6f:	ff 15 50 10 43 00    	call   *0x431050
422f75:	8b c7                	mov    %edi,%eax
422f77:	5f                   	pop    %edi
422f78:	5b                   	pop    %ebx
422f79:	5e                   	pop    %esi
422f7a:	c3                   	ret
422f7b:	8b ff                	mov    %edi,%edi
422f7d:	55                   	push   %ebp
422f7e:	8b ec                	mov    %esp,%ebp
422f80:	83 ec 14             	sub    $0x14,%esp
422f83:	53                   	push   %ebx
422f84:	56                   	push   %esi
422f85:	8b 75 08             	mov    0x8(%ebp),%esi
422f88:	85 f6                	test   %esi,%esi
422f8a:	75 13                	jne    0x422f9f
422f8c:	e8 e0 96 ff ff       	call   0x41c671
422f91:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
422f97:	83 c8 ff             	or     $0xffffffff,%eax
422f9a:	e9 58 02 00 00       	jmp    0x4231f7
422f9f:	57                   	push   %edi
422fa0:	6a 3d                	push   $0x3d
422fa2:	56                   	push   %esi
422fa3:	8b fe                	mov    %esi,%edi
422fa5:	e8 dd c3 00 00       	call   0x42f387
422faa:	89 45 f0             	mov    %eax,-0x10(%ebp)
422fad:	59                   	pop    %ecx
422fae:	59                   	pop    %ecx
422faf:	85 c0                	test   %eax,%eax
422fb1:	0f 84 2a 02 00 00    	je     0x4231e1
422fb7:	3b c6                	cmp    %esi,%eax
422fb9:	0f 84 22 02 00 00    	je     0x4231e1
422fbf:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
422fc3:	8b c1                	mov    %ecx,%eax
422fc5:	89 45 ec             	mov    %eax,-0x14(%ebp)
422fc8:	89 45 f4             	mov    %eax,-0xc(%ebp)
422fcb:	e8 f4 02 00 00       	call   0x4232c4
422fd0:	a1 9c f7 43 00       	mov    0x43f79c,%eax
422fd5:	33 db                	xor    %ebx,%ebx
422fd7:	89 45 fc             	mov    %eax,-0x4(%ebp)
422fda:	85 c0                	test   %eax,%eax
422fdc:	0f 85 96 00 00 00    	jne    0x423078
422fe2:	a1 98 f7 43 00       	mov    0x43f798,%eax
422fe7:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
422fea:	74 30                	je     0x42301c
422fec:	85 c0                	test   %eax,%eax
422fee:	74 2c                	je     0x42301c
422ff0:	e8 b4 6c ff ff       	call   0x419ca9
422ff5:	85 c0                	test   %eax,%eax
422ff7:	75 14                	jne    0x42300d
422ff9:	e8 73 96 ff ff       	call   0x41c671
422ffe:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
423004:	83 cb ff             	or     $0xffffffff,%ebx
423007:	56                   	push   %esi
423008:	e9 ba 01 00 00       	jmp    0x4231c7
42300d:	e8 b2 02 00 00       	call   0x4232c4
423012:	a1 9c f7 43 00       	mov    0x43f79c,%eax
423017:	89 45 fc             	mov    %eax,-0x4(%ebp)
42301a:	eb 58                	jmp    0x423074
42301c:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
423020:	74 e5                	je     0x423007
423022:	85 c0                	test   %eax,%eax
423024:	75 2b                	jne    0x423051
423026:	6a 04                	push   $0x4
423028:	6a 01                	push   $0x1
42302a:	e8 81 3b fe ff       	call   0x406bb0
42302f:	53                   	push   %ebx
423030:	a3 98 f7 43 00       	mov    %eax,0x43f798
423035:	e8 d6 3b fe ff       	call   0x406c10
42303a:	83 c4 0c             	add    $0xc,%esp
42303d:	39 1d 98 f7 43 00    	cmp    %ebx,0x43f798
423043:	74 bf                	je     0x423004
423045:	a1 9c f7 43 00       	mov    0x43f79c,%eax
42304a:	89 45 fc             	mov    %eax,-0x4(%ebp)
42304d:	85 c0                	test   %eax,%eax
42304f:	75 27                	jne    0x423078
423051:	6a 04                	push   $0x4
423053:	6a 01                	push   $0x1
423055:	e8 56 3b fe ff       	call   0x406bb0
42305a:	53                   	push   %ebx
42305b:	a3 9c f7 43 00       	mov    %eax,0x43f79c
423060:	e8 ab 3b fe ff       	call   0x406c10
423065:	a1 9c f7 43 00       	mov    0x43f79c,%eax
42306a:	83 c4 0c             	add    $0xc,%esp
42306d:	89 45 fc             	mov    %eax,-0x4(%ebp)
423070:	85 c0                	test   %eax,%eax
423072:	74 90                	je     0x423004
423074:	85 c0                	test   %eax,%eax
423076:	74 8c                	je     0x423004
423078:	8b 45 f0             	mov    -0x10(%ebp),%eax
42307b:	2b c6                	sub    %esi,%eax
42307d:	d1 f8                	sar    $1,%eax
42307f:	50                   	push   %eax
423080:	56                   	push   %esi
423081:	89 45 f0             	mov    %eax,-0x10(%ebp)
423084:	e8 55 02 00 00       	call   0x4232de
423089:	59                   	pop    %ecx
42308a:	59                   	pop    %ecx
42308b:	8b c8                	mov    %eax,%ecx
42308d:	8b 45 fc             	mov    -0x4(%ebp),%eax
423090:	89 4d f8             	mov    %ecx,-0x8(%ebp)
423093:	85 c9                	test   %ecx,%ecx
423095:	78 50                	js     0x4230e7
423097:	39 18                	cmp    %ebx,(%eax)
423099:	74 4c                	je     0x4230e7
42309b:	ff 34 88             	push   (%eax,%ecx,4)
42309e:	e8 6d 3b fe ff       	call   0x406c10
4230a3:	8b 55 f8             	mov    -0x8(%ebp),%edx
4230a6:	59                   	pop    %ecx
4230a7:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
4230ab:	75 30                	jne    0x4230dd
4230ad:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4230b0:	eb 08                	jmp    0x4230ba
4230b2:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
4230b6:	89 04 91             	mov    %eax,(%ecx,%edx,4)
4230b9:	42                   	inc    %edx
4230ba:	39 1c 91             	cmp    %ebx,(%ecx,%edx,4)
4230bd:	75 f3                	jne    0x4230b2
4230bf:	6a 04                	push   $0x4
4230c1:	52                   	push   %edx
4230c2:	51                   	push   %ecx
4230c3:	e8 98 3b fe ff       	call   0x406c60
4230c8:	53                   	push   %ebx
4230c9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4230cc:	e8 3f 3b fe ff       	call   0x406c10
4230d1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4230d4:	83 c4 10             	add    $0x10,%esp
4230d7:	85 c0                	test   %eax,%eax
4230d9:	74 63                	je     0x42313e
4230db:	eb 5c                	jmp    0x423139
4230dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4230e0:	8b fb                	mov    %ebx,%edi
4230e2:	89 34 90             	mov    %esi,(%eax,%edx,4)
4230e5:	eb 57                	jmp    0x42313e
4230e7:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
4230eb:	0f 84 16 ff ff ff    	je     0x423007
4230f1:	f7 d9                	neg    %ecx
4230f3:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4230f6:	8d 51 02             	lea    0x2(%ecx),%edx
4230f9:	3b d1                	cmp    %ecx,%edx
4230fb:	0f 82 03 ff ff ff    	jb     0x423004
423101:	81 fa ff ff ff 3f    	cmp    $0x3fffffff,%edx
423107:	0f 83 f7 fe ff ff    	jae    0x423004
42310d:	6a 04                	push   $0x4
42310f:	52                   	push   %edx
423110:	50                   	push   %eax
423111:	e8 4a 3b fe ff       	call   0x406c60
423116:	53                   	push   %ebx
423117:	89 45 f4             	mov    %eax,-0xc(%ebp)
42311a:	e8 f1 3a fe ff       	call   0x406c10
42311f:	8b 45 f4             	mov    -0xc(%ebp),%eax
423122:	83 c4 10             	add    $0x10,%esp
423125:	85 c0                	test   %eax,%eax
423127:	0f 84 d7 fe ff ff    	je     0x423004
42312d:	8b 55 f8             	mov    -0x8(%ebp),%edx
423130:	8b fb                	mov    %ebx,%edi
423132:	89 34 90             	mov    %esi,(%eax,%edx,4)
423135:	89 5c 90 04          	mov    %ebx,0x4(%eax,%edx,4)
423139:	a3 9c f7 43 00       	mov    %eax,0x43f79c
42313e:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
423141:	0f 84 90 00 00 00    	je     0x4231d7
423147:	8d 4e 02             	lea    0x2(%esi),%ecx
42314a:	66 8b 06             	mov    (%esi),%ax
42314d:	83 c6 02             	add    $0x2,%esi
423150:	66 3b c3             	cmp    %bx,%ax
423153:	75 f5                	jne    0x42314a
423155:	2b f1                	sub    %ecx,%esi
423157:	d1 fe                	sar    $1,%esi
423159:	6a 02                	push   $0x2
42315b:	8d 46 02             	lea    0x2(%esi),%eax
42315e:	50                   	push   %eax
42315f:	89 45 f4             	mov    %eax,-0xc(%ebp)
423162:	e8 49 3a fe ff       	call   0x406bb0
423167:	8b f0                	mov    %eax,%esi
423169:	59                   	pop    %ecx
42316a:	59                   	pop    %ecx
42316b:	85 f6                	test   %esi,%esi
42316d:	75 08                	jne    0x423177
42316f:	53                   	push   %ebx
423170:	e8 9b 3a fe ff       	call   0x406c10
423175:	eb 4e                	jmp    0x4231c5
423177:	ff 75 08             	push   0x8(%ebp)
42317a:	ff 75 f4             	push   -0xc(%ebp)
42317d:	56                   	push   %esi
42317e:	e8 05 f9 fe ff       	call   0x412a88
423183:	83 c4 0c             	add    $0xc,%esp
423186:	85 c0                	test   %eax,%eax
423188:	75 71                	jne    0x4231fb
42318a:	8b 45 f0             	mov    -0x10(%ebp),%eax
42318d:	33 d2                	xor    %edx,%edx
42318f:	8d 48 01             	lea    0x1(%eax),%ecx
423192:	66 89 14 46          	mov    %dx,(%esi,%eax,2)
423196:	8b 45 ec             	mov    -0x14(%ebp),%eax
423199:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
42319c:	0f b7 c0             	movzwl %ax,%eax
42319f:	f7 d8                	neg    %eax
4231a1:	1b c0                	sbb    %eax,%eax
4231a3:	23 c1                	and    %ecx,%eax
4231a5:	50                   	push   %eax
4231a6:	56                   	push   %esi
4231a7:	ff 15 4c 10 43 00    	call   *0x43104c
4231ad:	85 c0                	test   %eax,%eax
4231af:	75 1f                	jne    0x4231d0
4231b1:	e8 bb 94 ff ff       	call   0x41c671
4231b6:	56                   	push   %esi
4231b7:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
4231bd:	e8 4e 3a fe ff       	call   0x406c10
4231c2:	83 cb ff             	or     $0xffffffff,%ebx
4231c5:	59                   	pop    %ecx
4231c6:	57                   	push   %edi
4231c7:	e8 44 3a fe ff       	call   0x406c10
4231cc:	8b c3                	mov    %ebx,%eax
4231ce:	eb 25                	jmp    0x4231f5
4231d0:	56                   	push   %esi
4231d1:	e8 3a 3a fe ff       	call   0x406c10
4231d6:	59                   	pop    %ecx
4231d7:	57                   	push   %edi
4231d8:	e8 33 3a fe ff       	call   0x406c10
4231dd:	33 c0                	xor    %eax,%eax
4231df:	eb 14                	jmp    0x4231f5
4231e1:	e8 8b 94 ff ff       	call   0x41c671
4231e6:	56                   	push   %esi
4231e7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4231ed:	e8 1e 3a fe ff       	call   0x406c10
4231f2:	83 c8 ff             	or     $0xffffffff,%eax
4231f5:	59                   	pop    %ecx
4231f6:	5f                   	pop    %edi
4231f7:	5e                   	pop    %esi
4231f8:	5b                   	pop    %ebx
4231f9:	c9                   	leave
4231fa:	c3                   	ret
4231fb:	53                   	push   %ebx
4231fc:	53                   	push   %ebx
4231fd:	53                   	push   %ebx
4231fe:	53                   	push   %ebx
4231ff:	53                   	push   %ebx
423200:	e8 16 a2 fe ff       	call   0x40d41b
423205:	cc                   	int3
423206:	8b ff                	mov    %edi,%edi
423208:	55                   	push   %ebp
423209:	8b ec                	mov    %esp,%ebp
42320b:	51                   	push   %ecx
42320c:	51                   	push   %ecx
42320d:	57                   	push   %edi
42320e:	8b 7d 08             	mov    0x8(%ebp),%edi
423211:	85 ff                	test   %edi,%edi
423213:	75 05                	jne    0x42321a
423215:	33 c0                	xor    %eax,%eax
423217:	5f                   	pop    %edi
423218:	c9                   	leave
423219:	c3                   	ret
42321a:	33 d2                	xor    %edx,%edx
42321c:	8b c7                	mov    %edi,%eax
42321e:	8b ca                	mov    %edx,%ecx
423220:	89 55 fc             	mov    %edx,-0x4(%ebp)
423223:	39 17                	cmp    %edx,(%edi)
423225:	74 08                	je     0x42322f
423227:	8d 40 04             	lea    0x4(%eax),%eax
42322a:	41                   	inc    %ecx
42322b:	39 10                	cmp    %edx,(%eax)
42322d:	75 f8                	jne    0x423227
42322f:	56                   	push   %esi
423230:	8d 41 01             	lea    0x1(%ecx),%eax
423233:	6a 04                	push   $0x4
423235:	50                   	push   %eax
423236:	e8 75 39 fe ff       	call   0x406bb0
42323b:	8b f0                	mov    %eax,%esi
42323d:	59                   	pop    %ecx
42323e:	59                   	pop    %ecx
42323f:	85 f6                	test   %esi,%esi
423241:	74 6f                	je     0x4232b2
423243:	8b 0f                	mov    (%edi),%ecx
423245:	85 c9                	test   %ecx,%ecx
423247:	74 58                	je     0x4232a1
423249:	53                   	push   %ebx
42324a:	8b de                	mov    %esi,%ebx
42324c:	2b df                	sub    %edi,%ebx
42324e:	8d 51 02             	lea    0x2(%ecx),%edx
423251:	66 8b 01             	mov    (%ecx),%ax
423254:	83 c1 02             	add    $0x2,%ecx
423257:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
42325b:	75 f4                	jne    0x423251
42325d:	2b ca                	sub    %edx,%ecx
42325f:	d1 f9                	sar    $1,%ecx
423261:	6a 02                	push   $0x2
423263:	8d 41 01             	lea    0x1(%ecx),%eax
423266:	50                   	push   %eax
423267:	89 45 f8             	mov    %eax,-0x8(%ebp)
42326a:	e8 41 39 fe ff       	call   0x406bb0
42326f:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
423272:	33 c0                	xor    %eax,%eax
423274:	50                   	push   %eax
423275:	e8 96 39 fe ff       	call   0x406c10
42327a:	83 c4 0c             	add    $0xc,%esp
42327d:	83 3c 3b 00          	cmpl   $0x0,(%ebx,%edi,1)
423281:	74 2f                	je     0x4232b2
423283:	ff 37                	push   (%edi)
423285:	ff 75 f8             	push   -0x8(%ebp)
423288:	ff 34 3b             	push   (%ebx,%edi,1)
42328b:	e8 f8 f7 fe ff       	call   0x412a88
423290:	83 c4 0c             	add    $0xc,%esp
423293:	85 c0                	test   %eax,%eax
423295:	75 20                	jne    0x4232b7
423297:	83 c7 04             	add    $0x4,%edi
42329a:	8b 0f                	mov    (%edi),%ecx
42329c:	85 c9                	test   %ecx,%ecx
42329e:	75 ae                	jne    0x42324e
4232a0:	5b                   	pop    %ebx
4232a1:	33 c0                	xor    %eax,%eax
4232a3:	50                   	push   %eax
4232a4:	e8 67 39 fe ff       	call   0x406c10
4232a9:	59                   	pop    %ecx
4232aa:	8b c6                	mov    %esi,%eax
4232ac:	5e                   	pop    %esi
4232ad:	e9 65 ff ff ff       	jmp    0x423217
4232b2:	e8 da 8b ff ff       	call   0x41be91