45f008:	6a 3b                	push   $0x3b
45f00a:	5f                   	pop    %edi
45f00b:	66 39 3b             	cmp    %di,(%ebx)
45f00e:	6a 00                	push   $0x0
45f010:	5f                   	pop    %edi
45f011:	75 38                	jne    0x45f04b
45f013:	33 c0                	xor    %eax,%eax
45f015:	52                   	push   %edx
45f016:	66 89 03             	mov    %ax,(%ebx)
45f019:	e8 8f 05 00 00       	call   0x45f5ad
45f01e:	8b 4e 08             	mov    0x8(%esi),%ecx
45f021:	8b 55 f4             	mov    -0xc(%ebp),%edx
45f024:	8b 7d 08             	mov    0x8(%ebp),%edi
45f027:	8b 0c 11             	mov    (%ecx,%edx,1),%ecx
45f02a:	66 89 44 f9 04       	mov    %ax,0x4(%ecx,%edi,8)
45f02f:	8b cf                	mov    %edi,%ecx
45f031:	8b 46 08             	mov    0x8(%esi),%eax
45f034:	8b 04 10             	mov    (%eax,%edx,1),%eax
45f037:	33 d2                	xor    %edx,%edx
45f039:	89 14 c8             	mov    %edx,(%eax,%ecx,8)
45f03c:	41                   	inc    %ecx
45f03d:	8b 45 f0             	mov    -0x10(%ebp),%eax
45f040:	8d 53 02             	lea    0x2(%ebx),%edx
45f043:	89 4d 08             	mov    %ecx,0x8(%ebp)
45f046:	33 ff                	xor    %edi,%edi
45f048:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45f04b:	41                   	inc    %ecx
45f04c:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
45f04f:	8d 1c 48             	lea    (%eax,%ecx,2),%ebx
45f052:	66 39 3b             	cmp    %di,(%ebx)
45f055:	75 b1                	jne    0x45f008
45f057:	8b 5d fc             	mov    -0x4(%ebp),%ebx
45f05a:	52                   	push   %edx
45f05b:	e8 4d 05 00 00       	call   0x45f5ad
45f060:	8b 4e 08             	mov    0x8(%esi),%ecx
45f063:	8b 55 f4             	mov    -0xc(%ebp),%edx
45f066:	8b 7d 08             	mov    0x8(%ebp),%edi
45f069:	8b 0c 11             	mov    (%ecx,%edx,1),%ecx
45f06c:	66 89 44 f9 04       	mov    %ax,0x4(%ecx,%edi,8)
45f071:	8b cf                	mov    %edi,%ecx
45f073:	8b 46 08             	mov    0x8(%esi),%eax
45f076:	33 ff                	xor    %edi,%edi
45f078:	8b 04 10             	mov    (%eax,%edx,1),%eax
45f07b:	89 3c c8             	mov    %edi,(%eax,%ecx,8)
45f07e:	8b 7d ec             	mov    -0x14(%ebp),%edi
45f081:	8b 46 08             	mov    0x8(%esi),%eax
45f084:	8b 4e 0c             	mov    0xc(%esi),%ecx
45f087:	8b 04 02             	mov    (%edx,%eax,1),%eax
45f08a:	89 44 0f 04          	mov    %eax,0x4(%edi,%ecx,1)
45f08e:	eb 10                	jmp    0x45f0a0
45f090:	8b 46 08             	mov    0x8(%esi),%eax
45f093:	8b 55 f4             	mov    -0xc(%ebp),%edx
45f096:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
45f099:	8b 46 0c             	mov    0xc(%esi),%eax
45f09c:	89 4c 07 04          	mov    %ecx,0x4(%edi,%eax,1)
45f0a0:	8b 45 e0             	mov    -0x20(%ebp),%eax
45f0a3:	83 c2 04             	add    $0x4,%edx
45f0a6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
45f0a9:	83 c7 1c             	add    $0x1c,%edi
45f0ac:	89 45 e0             	mov    %eax,-0x20(%ebp)
45f0af:	8b 45 dc             	mov    -0x24(%ebp),%eax
45f0b2:	89 55 f4             	mov    %edx,-0xc(%ebp)
45f0b5:	8d 51 01             	lea    0x1(%ecx),%edx
45f0b8:	89 7d ec             	mov    %edi,-0x14(%ebp)
45f0bb:	8d 14 50             	lea    (%eax,%edx,2),%edx
45f0be:	89 55 e4             	mov    %edx,-0x1c(%ebp)
45f0c1:	8b 55 d8             	mov    -0x28(%ebp),%edx
45f0c4:	41                   	inc    %ecx
45f0c5:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
45f0c8:	3b cb                	cmp    %ebx,%ecx
45f0ca:	0f 8c f3 fd ff ff    	jl     0x45eec3
45f0d0:	6a 08                	push   $0x8
45f0d2:	58                   	pop    %eax
45f0d3:	50                   	push   %eax
45f0d4:	e8 1d 1f fc ff       	call   0x420ff6
45f0d9:	59                   	pop    %ecx
45f0da:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f0dd:	89 46 10             	mov    %eax,0x10(%esi)
45f0e0:	89 48 04             	mov    %ecx,0x4(%eax)
45f0e3:	8b 4e 10             	mov    0x10(%esi),%ecx
45f0e6:	8b 46 0c             	mov    0xc(%esi),%eax
45f0e9:	5f                   	pop    %edi
45f0ea:	5e                   	pop    %esi
45f0eb:	89 01                	mov    %eax,(%ecx)
45f0ed:	5b                   	pop    %ebx
45f0ee:	8b e5                	mov    %ebp,%esp
45f0f0:	5d                   	pop    %ebp
45f0f1:	c2 04 00             	ret    $0x4
45f0f4:	55                   	push   %ebp
45f0f5:	8b ec                	mov    %esp,%ebp
45f0f7:	83 ec 18             	sub    $0x18,%esp
45f0fa:	53                   	push   %ebx
45f0fb:	56                   	push   %esi
45f0fc:	57                   	push   %edi
45f0fd:	6a 10                	push   $0x10
45f0ff:	e8 f2 1e fc ff       	call   0x420ff6
45f104:	8b 75 08             	mov    0x8(%ebp),%esi
45f107:	8b d8                	mov    %eax,%ebx
45f109:	59                   	pop    %ecx
45f10a:	0f b7 06             	movzwl (%esi),%eax
45f10d:	83 f8 08             	cmp    $0x8,%eax
45f110:	75 0c                	jne    0x45f11e
45f112:	53                   	push   %ebx
45f113:	ff 76 08             	push   0x8(%esi)
45f116:	ff 15 30 f8 48 00    	call   *0x48f830
45f11c:	eb 69                	jmp    0x45f187
45f11e:	83 f8 24             	cmp    $0x24,%eax
45f121:	75 5b                	jne    0x45f17e
45f123:	8d 45 ec             	lea    -0x14(%ebp),%eax
45f126:	50                   	push   %eax
45f127:	ff 15 7c f4 48 00    	call   *0x48f47c
45f12d:	8b 46 0c             	mov    0xc(%esi),%eax
45f130:	8d 55 ec             	lea    -0x14(%ebp),%edx
45f133:	33 ff                	xor    %edi,%edi
45f135:	57                   	push   %edi
45f136:	52                   	push   %edx
45f137:	57                   	push   %edi
45f138:	89 7d f4             	mov    %edi,-0xc(%ebp)
45f13b:	89 7d f8             	mov    %edi,-0x8(%ebp)
45f13e:	8b 08                	mov    (%eax),%ecx
45f140:	57                   	push   %edi
45f141:	50                   	push   %eax
45f142:	ff 51 2c             	call   *0x2c(%ecx)
45f145:	85 c0                	test   %eax,%eax
45f147:	78 20                	js     0x45f169
45f149:	b8 0c 80 00 00       	mov    $0x800c,%eax
45f14e:	66 39 45 ec          	cmp    %ax,-0x14(%ebp)
45f152:	75 0c                	jne    0x45f160
45f154:	8b 45 f4             	mov    -0xc(%ebp),%eax
45f157:	8b fb                	mov    %ebx,%edi
45f159:	8b 70 08             	mov    0x8(%eax),%esi
45f15c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f15d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f15e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f15f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f160:	6a 1a                	push   $0x1a
45f162:	58                   	pop    %eax
45f163:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
45f167:	eb 09                	jmp    0x45f172
45f169:	53                   	push   %ebx
45f16a:	e8 fd 1e fc ff       	call   0x42106c
45f16f:	59                   	pop    %ecx
45f170:	8b df                	mov    %edi,%ebx
45f172:	8d 45 ec             	lea    -0x14(%ebp),%eax
45f175:	50                   	push   %eax
45f176:	ff 15 5c f4 48 00    	call   *0x48f45c
45f17c:	eb 09                	jmp    0x45f187
45f17e:	8b 76 08             	mov    0x8(%esi),%esi
45f181:	8b fb                	mov    %ebx,%edi
45f183:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f184:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f185:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f186:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45f187:	5f                   	pop    %edi
45f188:	5e                   	pop    %esi
45f189:	8b c3                	mov    %ebx,%eax
45f18b:	5b                   	pop    %ebx
45f18c:	8b e5                	mov    %ebp,%esp
45f18e:	5d                   	pop    %ebp
45f18f:	c2 04 00             	ret    $0x4
45f192:	55                   	push   %ebp
45f193:	8b ec                	mov    %esp,%ebp
45f195:	56                   	push   %esi
45f196:	6a 04                	push   $0x4
45f198:	e8 59 1e fc ff       	call   0x420ff6
45f19d:	8b f0                	mov    %eax,%esi
45f19f:	8b 45 08             	mov    0x8(%ebp),%eax
45f1a2:	59                   	pop    %ecx
45f1a3:	66 83 38 09          	cmpw   $0x9,(%eax)
45f1a7:	75 14                	jne    0x45f1bd
45f1a9:	8b 48 08             	mov    0x8(%eax),%ecx
45f1ac:	89 0e                	mov    %ecx,(%esi)
45f1ae:	8b 48 08             	mov    0x8(%eax),%ecx
45f1b1:	85 c9                	test   %ecx,%ecx
45f1b3:	74 0b                	je     0x45f1c0
45f1b5:	8b 01                	mov    (%ecx),%eax
45f1b7:	51                   	push   %ecx
45f1b8:	ff 50 04             	call   *0x4(%eax)
45f1bb:	eb 03                	jmp    0x45f1c0
45f1bd:	83 26 00             	andl   $0x0,(%esi)
45f1c0:	8b c6                	mov    %esi,%eax
45f1c2:	5e                   	pop    %esi
45f1c3:	5d                   	pop    %ebp
45f1c4:	c2 04 00             	ret    $0x4
45f1c7:	55                   	push   %ebp
45f1c8:	8b ec                	mov    %esp,%ebp
45f1ca:	8b 45 08             	mov    0x8(%ebp),%eax
45f1cd:	53                   	push   %ebx
45f1ce:	56                   	push   %esi
45f1cf:	57                   	push   %edi
45f1d0:	8b 58 08             	mov    0x8(%eax),%ebx
45f1d3:	53                   	push   %ebx
45f1d4:	ff 15 48 f4 48 00    	call   *0x48f448
45f1da:	8b f8                	mov    %eax,%edi
45f1dc:	b9 00 00 01 00       	mov    $0x10000,%ecx
45f1e1:	3b f9                	cmp    %ecx,%edi
45f1e3:	7e 02                	jle    0x45f1e7
45f1e5:	8b cf                	mov    %edi,%ecx
45f1e7:	41                   	inc    %ecx
45f1e8:	51                   	push   %ecx
45f1e9:	e8 08 1e fc ff       	call   0x420ff6
45f1ee:	59                   	pop    %ecx
45f1ef:	8b f0                	mov    %eax,%esi
45f1f1:	8d 4f 01             	lea    0x1(%edi),%ecx
45f1f4:	33 c0                	xor    %eax,%eax
45f1f6:	50                   	push   %eax
45f1f7:	50                   	push   %eax
45f1f8:	51                   	push   %ecx
45f1f9:	56                   	push   %esi
45f1fa:	6a ff                	push   $0xffffffff
45f1fc:	53                   	push   %ebx
45f1fd:	50                   	push   %eax
45f1fe:	50                   	push   %eax
45f1ff:	ff 15 ac f1 48 00    	call   *0x48f1ac
45f205:	5f                   	pop    %edi
45f206:	8b c6                	mov    %esi,%eax
45f208:	5e                   	pop    %esi
45f209:	5b                   	pop    %ebx
45f20a:	5d                   	pop    %ebp
45f20b:	c2 04 00             	ret    $0x4
45f20e:	55                   	push   %ebp
45f20f:	8b ec                	mov    %esp,%ebp
45f211:	51                   	push   %ecx
45f212:	51                   	push   %ecx
45f213:	56                   	push   %esi
45f214:	6a 08                	push   $0x8
45f216:	e8 db 1d fc ff       	call   0x420ff6
45f21b:	8b 55 08             	mov    0x8(%ebp),%edx
45f21e:	8b f0                	mov    %eax,%esi
45f220:	6a 08                	push   $0x8
45f222:	8d 45 f8             	lea    -0x8(%ebp),%eax
45f225:	50                   	push   %eax
45f226:	8b 4a 08             	mov    0x8(%edx),%ecx
45f229:	89 4d f8             	mov    %ecx,-0x8(%ebp)
45f22c:	8b 4a 0c             	mov    0xc(%edx),%ecx
45f22f:	56                   	push   %esi
45f230:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45f233:	e8 48 1e fc ff       	call   0x421080
45f238:	83 c4 10             	add    $0x10,%esp
45f23b:	8b c6                	mov    %esi,%eax
45f23d:	5e                   	pop    %esi
45f23e:	8b e5                	mov    %ebp,%esp
45f240:	5d                   	pop    %ebp
45f241:	c2 04 00             	ret    $0x4
45f244:	55                   	push   %ebp
45f245:	8b ec                	mov    %esp,%ebp
45f247:	56                   	push   %esi
45f248:	57                   	push   %edi
45f249:	6a 10                	push   $0x10
45f24b:	e8 a6 1d fc ff       	call   0x420ff6
45f250:	59                   	pop    %ecx
45f251:	8b f8                	mov    %eax,%edi
45f253:	57                   	push   %edi
45f254:	ff 15 7c f4 48 00    	call   *0x48f47c
45f25a:	8b 75 08             	mov    0x8(%ebp),%esi
45f25d:	56                   	push   %esi
45f25e:	57                   	push   %edi
45f25f:	ff 15 58 f4 48 00    	call   *0x48f458
45f265:	85 c0                	test   %eax,%eax
45f267:	79 08                	jns    0x45f271
45f269:	83 66 08 00          	andl   $0x0,0x8(%esi)
45f26d:	83 66 0c 00          	andl   $0x0,0xc(%esi)
45f271:	8b c7                	mov    %edi,%eax
45f273:	5f                   	pop    %edi
45f274:	5e                   	pop    %esi
45f275:	5d                   	pop    %ebp
45f276:	c2 04 00             	ret    $0x4
45f279:	55                   	push   %ebp
45f27a:	8b ec                	mov    %esp,%ebp
45f27c:	8b 45 08             	mov    0x8(%ebp),%eax
45f27f:	53                   	push   %ebx
45f280:	56                   	push   %esi
45f281:	57                   	push   %edi
45f282:	8b 58 08             	mov    0x8(%eax),%ebx
45f285:	53                   	push   %ebx
45f286:	ff 15 48 f4 48 00    	call   *0x48f448
45f28c:	8b f0                	mov    %eax,%esi
45f28e:	b8 00 00 01 00       	mov    $0x10000,%eax
45f293:	3b f0                	cmp    %eax,%esi
45f295:	7e 02                	jle    0x45f299
45f297:	8b c6                	mov    %esi,%eax
45f299:	33 c9                	xor    %ecx,%ecx
45f29b:	40                   	inc    %eax
45f29c:	6a 02                	push   $0x2
45f29e:	5a                   	pop    %edx
45f29f:	f7 e2                	mul    %edx
45f2a1:	0f 90 c1             	seto   %cl
45f2a4:	f7 d9                	neg    %ecx
45f2a6:	0b c8                	or     %eax,%ecx
45f2a8:	51                   	push   %ecx
45f2a9:	e8 48 1d fc ff       	call   0x420ff6
45f2ae:	8b f8                	mov    %eax,%edi
45f2b0:	59                   	pop    %ecx
45f2b1:	85 db                	test   %ebx,%ebx
45f2b3:	74 08                	je     0x45f2bd
45f2b5:	53                   	push   %ebx
45f2b6:	57                   	push   %edi
45f2b7:	ff 15 b0 f1 48 00    	call   *0x48f1b0
45f2bd:	33 c0                	xor    %eax,%eax
45f2bf:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
45f2c3:	8b c7                	mov    %edi,%eax
45f2c5:	5f                   	pop    %edi
45f2c6:	5e                   	pop    %esi
45f2c7:	5b                   	pop    %ebx
45f2c8:	5d                   	pop    %ebp
45f2c9:	c2 04 00             	ret    $0x4
45f2cc:	55                   	push   %ebp
45f2cd:	8b ec                	mov    %esp,%ebp
45f2cf:	53                   	push   %ebx
45f2d0:	8b 5d 08             	mov    0x8(%ebp),%ebx
45f2d3:	56                   	push   %esi
45f2d4:	8b 75 0c             	mov    0xc(%ebp),%esi
45f2d7:	53                   	push   %ebx
45f2d8:	56                   	push   %esi
45f2d9:	ff 15 58 f4 48 00    	call   *0x48f458
45f2df:	85 c0                	test   %eax,%eax
45f2e1:	79 04                	jns    0x45f2e7
45f2e3:	33 c0                	xor    %eax,%eax
45f2e5:	eb 5d                	jmp    0x45f344
45f2e7:	57                   	push   %edi
45f2e8:	8b 7d 10             	mov    0x10(%ebp),%edi
45f2eb:	66 83 ff 0c          	cmp    $0xc,%di
45f2ef:	74 18                	je     0x45f309
45f2f1:	0f b7 c7             	movzwl %di,%eax
45f2f4:	83 c0 e2             	add    $0xffffffe2,%eax
45f2f7:	6a 08                	push   $0x8
45f2f9:	5a                   	pop    %edx
45f2fa:	83 f8 01             	cmp    $0x1,%eax
45f2fd:	77 02                	ja     0x45f301
45f2ff:	8b fa                	mov    %edx,%edi
45f301:	0f b7 0b             	movzwl (%ebx),%ecx
45f304:	66 3b cf             	cmp    %di,%cx
45f307:	75 05                	jne    0x45f30e
45f309:	33 c0                	xor    %eax,%eax
45f30b:	40                   	inc    %eax
45f30c:	eb 35                	jmp    0x45f343
45f30e:	66 3b ca             	cmp    %dx,%cx
45f311:	75 0a                	jne    0x45f31d
45f313:	6a 00                	push   $0x0
45f315:	ff 76 08             	push   0x8(%esi)
45f318:	e8 4a ef ff ff       	call   0x45e267
45f31d:	57                   	push   %edi
45f31e:	6a 00                	push   $0x0
45f320:	56                   	push   %esi
45f321:	56                   	push   %esi
45f322:	ff 15 44 f4 48 00    	call   *0x48f444
45f328:	6a 08                	push   $0x8
45f32a:	8b f8                	mov    %eax,%edi
45f32c:	58                   	pop    %eax
45f32d:	66 39 06             	cmp    %ax,(%esi)