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)
45f330:	75 0a                	jne    0x45f33c
45f332:	6a 01                	push   $0x1
45f334:	ff 76 08             	push   0x8(%esi)
45f337:	e8 2b ef ff ff       	call   0x45e267
45f33c:	33 c0                	xor    %eax,%eax
45f33e:	85 ff                	test   %edi,%edi
45f340:	0f 99 c0             	setns  %al
45f343:	5f                   	pop    %edi
45f344:	5e                   	pop    %esi
45f345:	5b                   	pop    %ebx
45f346:	5d                   	pop    %ebp
45f347:	c2 0c 00             	ret    $0xc
45f34a:	55                   	push   %ebp
45f34b:	8b ec                	mov    %esp,%ebp
45f34d:	53                   	push   %ebx
45f34e:	56                   	push   %esi
45f34f:	57                   	push   %edi
45f350:	8b 7d 10             	mov    0x10(%ebp),%edi
45f353:	6a 08                	push   $0x8
45f355:	0f b7 c7             	movzwl %di,%eax
45f358:	5b                   	pop    %ebx
45f359:	3b c3                	cmp    %ebx,%eax
45f35b:	74 60                	je     0x45f3bd
45f35d:	83 f8 1d             	cmp    $0x1d,%eax
45f360:	7e 0a                	jle    0x45f36c
45f362:	83 f8 1f             	cmp    $0x1f,%eax
45f365:	7e 56                	jle    0x45f3bd
45f367:	83 f8 48             	cmp    $0x48,%eax
45f36a:	74 51                	je     0x45f3bd
45f36c:	8b 5d 08             	mov    0x8(%ebp),%ebx
45f36f:	8b 75 0c             	mov    0xc(%ebp),%esi
45f372:	53                   	push   %ebx
45f373:	56                   	push   %esi
45f374:	ff 15 10 f4 48 00    	call   *0x48f410
45f37a:	85 c0                	test   %eax,%eax
45f37c:	79 58                	jns    0x45f3d6
45f37e:	66 83 ff 0c          	cmp    $0xc,%di
45f382:	75 52                	jne    0x45f3d6
45f384:	8b 7b 08             	mov    0x8(%ebx),%edi
45f387:	56                   	push   %esi
45f388:	0f b7 1f             	movzwl (%edi),%ebx
45f38b:	ff 15 5c f4 48 00    	call   *0x48f45c
45f391:	6a 08                	push   $0x8
45f393:	8b c3                	mov    %ebx,%eax
45f395:	59                   	pop    %ecx
45f396:	3b c1                	cmp    %ecx,%eax
45f398:	74 17                	je     0x45f3b1
45f39a:	83 f8 1d             	cmp    $0x1d,%eax
45f39d:	7e 0a                	jle    0x45f3a9
45f39f:	83 f8 1f             	cmp    $0x1f,%eax
45f3a2:	7e 0d                	jle    0x45f3b1
45f3a4:	83 f8 48             	cmp    $0x48,%eax
45f3a7:	74 08                	je     0x45f3b1
45f3a9:	66 89 1e             	mov    %bx,(%esi)
45f3ac:	8b 47 08             	mov    0x8(%edi),%eax
45f3af:	eb 22                	jmp    0x45f3d3
45f3b1:	53                   	push   %ebx
45f3b2:	57                   	push   %edi
45f3b3:	66 89 0e             	mov    %cx,(%esi)
45f3b6:	e8 21 ec ff ff       	call   0x45dfdc
45f3bb:	eb 16                	jmp    0x45f3d3
45f3bd:	8b 75 0c             	mov    0xc(%ebp),%esi
45f3c0:	56                   	push   %esi
45f3c1:	ff 15 5c f4 48 00    	call   *0x48f45c
45f3c7:	57                   	push   %edi
45f3c8:	ff 75 08             	push   0x8(%ebp)
45f3cb:	66 89 1e             	mov    %bx,(%esi)
45f3ce:	e8 e2 ec ff ff       	call   0x45e0b5
45f3d3:	89 46 08             	mov    %eax,0x8(%esi)
45f3d6:	5f                   	pop    %edi
45f3d7:	5e                   	pop    %esi
45f3d8:	5b                   	pop    %ebx
45f3d9:	5d                   	pop    %ebp
45f3da:	c2 0c 00             	ret    $0xc
45f3dd:	55                   	push   %ebp
45f3de:	8b ec                	mov    %esp,%ebp
45f3e0:	83 ec 20             	sub    $0x20,%esp
45f3e3:	53                   	push   %ebx
45f3e4:	8b 5d 08             	mov    0x8(%ebp),%ebx
45f3e7:	56                   	push   %esi
45f3e8:	57                   	push   %edi
45f3e9:	66 83 3b 24          	cmpw   $0x24,(%ebx)
45f3ed:	0f 85 50 01 00 00    	jne    0x45f543
45f3f3:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45f3f6:	50                   	push   %eax
45f3f7:	ff 15 7c f4 48 00    	call   *0x48f47c
45f3fd:	8b 43 0c             	mov    0xc(%ebx),%eax
45f400:	8d 55 e4             	lea    -0x1c(%ebp),%edx
45f403:	33 f6                	xor    %esi,%esi
45f405:	52                   	push   %edx
45f406:	56                   	push   %esi
45f407:	89 75 ec             	mov    %esi,-0x14(%ebp)
45f40a:	89 75 f0             	mov    %esi,-0x10(%ebp)
45f40d:	8b 08                	mov    (%eax),%ecx
45f40f:	56                   	push   %esi
45f410:	50                   	push   %eax
45f411:	ff 51 28             	call   *0x28(%ecx)
45f414:	8b 7d ec             	mov    -0x14(%ebp),%edi
45f417:	89 7d 08             	mov    %edi,0x8(%ebp)
45f41a:	85 c0                	test   %eax,%eax
45f41c:	0f 88 15 01 00 00    	js     0x45f537
45f422:	85 ff                	test   %edi,%edi
45f424:	0f 8e 0d 01 00 00    	jle    0x45f537
45f42a:	8b 43 0c             	mov    0xc(%ebx),%eax
45f42d:	8d 55 e4             	lea    -0x1c(%ebp),%edx
45f430:	56                   	push   %esi
45f431:	52                   	push   %edx
45f432:	56                   	push   %esi
45f433:	8b 08                	mov    (%eax),%ecx
45f435:	56                   	push   %esi
45f436:	50                   	push   %eax
45f437:	ff 51 2c             	call   *0x2c(%ecx)
45f43a:	85 c0                	test   %eax,%eax
45f43c:	0f 88 f5 00 00 00    	js     0x45f537
45f442:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45f445:	b8 00 40 00 00       	mov    $0x4000,%eax
45f44a:	8b 55 ec             	mov    -0x14(%ebp),%edx
45f44d:	89 55 f8             	mov    %edx,-0x8(%ebp)
45f450:	66 85 03             	test   %ax,(%ebx)
45f453:	74 34                	je     0x45f489
45f455:	8b 75 20             	mov    0x20(%ebp),%esi
45f458:	8b 7d 10             	mov    0x10(%ebp),%edi
45f45b:	6a 13                	push   $0x13
45f45d:	58                   	pop    %eax
45f45e:	66 89 03             	mov    %ax,(%ebx)
45f461:	8b 06                	mov    (%esi),%eax
45f463:	c1 e0 04             	shl    $0x4,%eax
45f466:	03 c7                	add    %edi,%eax
45f468:	50                   	push   %eax
45f469:	ff 15 5c f4 48 00    	call   *0x48f45c
45f46f:	8b 0e                	mov    (%esi),%ecx
45f471:	66 8b 03             	mov    (%ebx),%ax
45f474:	03 c9                	add    %ecx,%ecx
45f476:	66 89 04 cf          	mov    %ax,(%edi,%ecx,8)
45f47a:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f47d:	8b 40 08             	mov    0x8(%eax),%eax
45f480:	89 44 cf 08          	mov    %eax,0x8(%edi,%ecx,8)
45f484:	e9 ae 00 00 00       	jmp    0x45f537
45f489:	8b 42 0c             	mov    0xc(%edx),%eax
45f48c:	33 c9                	xor    %ecx,%ecx
45f48e:	41                   	inc    %ecx
45f48f:	2b cf                	sub    %edi,%ecx
45f491:	8d 04 88             	lea    (%eax,%ecx,4),%eax
45f494:	8b 4a 08             	mov    0x8(%edx),%ecx
45f497:	89 45 f8             	mov    %eax,-0x8(%ebp)
45f49a:	8b c6                	mov    %esi,%eax
45f49c:	8b 75 20             	mov    0x20(%ebp),%esi
45f49f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
45f4a2:	89 45 0c             	mov    %eax,0xc(%ebp)
45f4a5:	85 ff                	test   %edi,%edi
45f4a7:	0f 84 88 00 00 00    	je     0x45f535
45f4ad:	8b 5d 08             	mov    0x8(%ebp),%ebx
45f4b0:	8b 55 10             	mov    0x10(%ebp),%edx
45f4b3:	6a 13                	push   $0x13
45f4b5:	5f                   	pop    %edi
45f4b6:	8b 04 81             	mov    (%ecx,%eax,4),%eax
45f4b9:	89 45 20             	mov    %eax,0x20(%ebp)
45f4bc:	8b 06                	mov    (%esi),%eax
45f4be:	c1 e0 04             	shl    $0x4,%eax
45f4c1:	03 c2                	add    %edx,%eax
45f4c3:	50                   	push   %eax
45f4c4:	ff 15 5c f4 48 00    	call   *0x48f45c
45f4ca:	8b 16                	mov    (%esi),%edx
45f4cc:	8d 43 ff             	lea    -0x1(%ebx),%eax
45f4cf:	8b 4d 10             	mov    0x10(%ebp),%ecx
45f4d2:	c1 e2 04             	shl    $0x4,%edx
45f4d5:	66 89 3c 0a          	mov    %di,(%edx,%ecx,1)
45f4d9:	39 45 0c             	cmp    %eax,0xc(%ebp)
45f4dc:	75 1a                	jne    0x45f4f8
45f4de:	ff 75 f8             	push   -0x8(%ebp)
45f4e1:	8d 41 08             	lea    0x8(%ecx),%eax
45f4e4:	03 c2                	add    %edx,%eax
45f4e6:	8d 4d 20             	lea    0x20(%ebp),%ecx
45f4e9:	51                   	push   %ecx
45f4ea:	50                   	push   %eax