46ae35:	50                   	push   %eax
46ae36:	57                   	push   %edi
46ae37:	68 3e 11 00 00       	push   $0x113e
46ae3c:	ff 76 34             	push   0x34(%esi)
46ae3f:	ff 15 70 d6 48 00    	call   *0x48d670
46ae45:	85 c0                	test   %eax,%eax
46ae47:	0f 84 88 03 00 00    	je     0x46b1d5
46ae4d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
46ae50:	ba 00 01 00 00       	mov    $0x100,%edx
46ae55:	85 55 08             	test   %edx,0x8(%ebp)
46ae58:	74 12                	je     0x46ae6c
46ae5a:	8b c1                	mov    %ecx,%eax
46ae5c:	c1 e8 0c             	shr    $0xc,%eax
46ae5f:	48                   	dec    %eax
46ae60:	f7 d8                	neg    %eax
46ae62:	1b c0                	sbb    %eax,%eax
46ae64:	83 e0 fd             	and    $0xfffffffd,%eax
46ae67:	83 c0 04             	add    $0x4,%eax
46ae6a:	89 03                	mov    %eax,(%ebx)
46ae6c:	f6 c1 02             	test   $0x2,%cl
46ae6f:	74 02                	je     0x46ae73
46ae71:	09 13                	or     %edx,(%ebx)
46ae73:	f6 c1 20             	test   $0x20,%cl
46ae76:	74 06                	je     0x46ae7e
46ae78:	81 0b 00 04 00 00    	orl    $0x400,(%ebx)
46ae7e:	f6 c1 10             	test   $0x10,%cl
46ae81:	0f 84 4e 03 00 00    	je     0x46b1d5
46ae87:	81 0b 00 02 00 00    	orl    $0x200,(%ebx)
46ae8d:	e9 43 03 00 00       	jmp    0x46b1d5
46ae92:	83 f8 12             	cmp    $0x12,%eax
46ae95:	0f 84 28 03 00 00    	je     0x46b1c3
46ae9b:	83 f8 13             	cmp    $0x13,%eax
46ae9e:	0f 84 d6 02 00 00    	je     0x46b17a
46aea4:	83 f8 14             	cmp    $0x14,%eax
46aea7:	0f 84 84 01 00 00    	je     0x46b031
46aead:	83 f8 15             	cmp    $0x15,%eax
46aeb0:	0f 84 0a 01 00 00    	je     0x46afc0
46aeb6:	83 f8 18             	cmp    $0x18,%eax
46aeb9:	0f 8e ca 00 00 00    	jle    0x46af89
46aebf:	83 f8 1a             	cmp    $0x1a,%eax
46aec2:	7e 53                	jle    0x46af17
46aec4:	83 f8 1c             	cmp    $0x1c,%eax
46aec7:	0f 85 bc 00 00 00    	jne    0x46af89
46aecd:	8d 45 8c             	lea    -0x74(%ebp),%eax
46aed0:	50                   	push   %eax
46aed1:	33 ff                	xor    %edi,%edi
46aed3:	57                   	push   %edi
46aed4:	68 01 10 00 00       	push   $0x1001
46aed9:	56                   	push   %esi
46aeda:	ff 15 70 d6 48 00    	call   *0x48d670
46aee0:	85 c0                	test   %eax,%eax
46aee2:	74 2c                	je     0x46af10
46aee4:	6a 16                	push   $0x16
46aee6:	e8 ff 45 fb ff       	call   0x41f4ea
46aeeb:	0f b7 4d 92          	movzwl -0x6e(%ebp),%ecx
46aeef:	51                   	push   %ecx
46aef0:	0f b7 4d 8e          	movzwl -0x72(%ebp),%ecx
46aef4:	51                   	push   %ecx
46aef5:	0f b7 4d 8c          	movzwl -0x74(%ebp),%ecx
46aef9:	51                   	push   %ecx
46aefa:	8b f0                	mov    %eax,%esi
46aefc:	68 b8 4a 4b 00       	push   $0x4b4ab8
46af01:	56                   	push   %esi
46af02:	ff 15 48 d5 48 00    	call   *0x48d548
46af08:	83 c4 18             	add    $0x18,%esp
46af0b:	e9 99 fc ff ff       	jmp    0x46aba9
46af10:	89 3b                	mov    %edi,(%ebx)
46af12:	e9 be 02 00 00       	jmp    0x46b1d5
46af17:	33 ff                	xor    %edi,%edi
46af19:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
46af1d:	57                   	push   %edi
46af1e:	57                   	push   %edi
46af1f:	74 47                	je     0x46af68
46af21:	6a 0e                	push   $0xe
46af23:	56                   	push   %esi
46af24:	ff 15 70 d6 48 00    	call   *0x48d670
46af2a:	8d 70 01             	lea    0x1(%eax),%esi
46af2d:	33 c9                	xor    %ecx,%ecx
46af2f:	6a 02                	push   $0x2
46af31:	5a                   	pop    %edx
46af32:	8b c6                	mov    %esi,%eax
46af34:	f7 e2                	mul    %edx
46af36:	0f 90 c1             	seto   %cl
46af39:	f7 d9                	neg    %ecx
46af3b:	0b c8                	or     %eax,%ecx
46af3d:	51                   	push   %ecx
46af3e:	e8 a7 45 fb ff       	call   0x41f4ea
46af43:	59                   	pop    %ecx
46af44:	56                   	push   %esi
46af45:	50                   	push   %eax
46af46:	ff 75 0c             	push   0xc(%ebp)
46af49:	89 45 10             	mov    %eax,0x10(%ebp)
46af4c:	ff 15 30 d7 48 00    	call   *0x48d730
46af52:	85 c0                	test   %eax,%eax
46af54:	75 0a                	jne    0x46af60
46af56:	ff 75 10             	push   0x10(%ebp)
46af59:	89 3b                	mov    %edi,(%ebx)
46af5b:	e9 64 fd ff ff       	jmp    0x46acc4
46af60:	8b 45 10             	mov    0x10(%ebp),%eax
46af63:	e9 6f 02 00 00       	jmp    0x46b1d7
46af68:	68 f0 00 00 00       	push   $0xf0
46af6d:	56                   	push   %esi
46af6e:	ff 15 70 d6 48 00    	call   *0x48d670
46af74:	89 03                	mov    %eax,(%ebx)
46af76:	85 c0                	test   %eax,%eax
46af78:	0f 85 57 02 00 00    	jne    0x46b1d5
46af7e:	c7 03 04 00 00 00    	movl   $0x4,(%ebx)
46af84:	e9 4c 02 00 00       	jmp    0x46b1d5
46af89:	57                   	push   %edi
46af8a:	57                   	push   %edi
46af8b:	6a 0e                	push   $0xe
46af8d:	56                   	push   %esi
46af8e:	ff 15 70 d6 48 00    	call   *0x48d670
46af94:	8d 78 01             	lea    0x1(%eax),%edi
46af97:	33 c9                	xor    %ecx,%ecx
46af99:	6a 02                	push   $0x2
46af9b:	5a                   	pop    %edx
46af9c:	8b c7                	mov    %edi,%eax
46af9e:	f7 e2                	mul    %edx
46afa0:	0f 90 c1             	seto   %cl
46afa3:	f7 d9                	neg    %ecx
46afa5:	0b c8                	or     %eax,%ecx
46afa7:	51                   	push   %ecx
46afa8:	e8 3d 45 fb ff       	call   0x41f4ea
46afad:	59                   	pop    %ecx
46afae:	57                   	push   %edi
46afaf:	8b f0                	mov    %eax,%esi
46afb1:	56                   	push   %esi
46afb2:	ff 75 0c             	push   0xc(%ebp)
46afb5:	ff 15 30 d7 48 00    	call   *0x48d730
46afbb:	e9 e9 fb ff ff       	jmp    0x46aba9
46afc0:	8d 71 70             	lea    0x70(%ecx),%esi
46afc3:	6a 04                	push   $0x4
46afc5:	8b ce                	mov    %esi,%ecx
46afc7:	89 75 10             	mov    %esi,0x10(%ebp)
46afca:	e8 15 26 fa ff       	call   0x40d5e4
46afcf:	8b ce                	mov    %esi,%ecx
46afd1:	84 c0                	test   %al,%al
46afd3:	74 52                	je     0x46b027
46afd5:	e8 92 e3 f9 ff       	call   0x40936c
46afda:	8b 46 08             	mov    0x8(%esi),%eax
46afdd:	33 c9                	xor    %ecx,%ecx
46afdf:	8b 40 04             	mov    0x4(%eax),%eax
46afe2:	6a 02                	push   $0x2
46afe4:	40                   	inc    %eax
46afe5:	5a                   	pop    %edx
46afe6:	f7 e2                	mul    %edx
46afe8:	0f 90 c1             	seto   %cl
46afeb:	f7 d9                	neg    %ecx
46afed:	0b c8                	or     %eax,%ecx
46afef:	51                   	push   %ecx
46aff0:	e8 f5 44 fb ff       	call   0x41f4ea
46aff5:	59                   	pop    %ecx
46aff6:	8b ce                	mov    %esi,%ecx
46aff8:	8b f8                	mov    %eax,%edi
46affa:	e8 6d e3 f9 ff       	call   0x40936c
46afff:	8b 4e 08             	mov    0x8(%esi),%ecx
46b002:	8b 5d 10             	mov    0x10(%ebp),%ebx
46b005:	8b 71 04             	mov    0x4(%ecx),%esi
46b008:	8b cb                	mov    %ebx,%ecx
46b00a:	e8 5d e3 f9 ff       	call   0x40936c
46b00f:	8b 53 08             	mov    0x8(%ebx),%edx
46b012:	8d 4e 01             	lea    0x1(%esi),%ecx
46b015:	8b 12                	mov    (%edx),%edx
46b017:	51                   	push   %ecx
46b018:	8b cf                	mov    %edi,%ecx
46b01a:	e8 c7 a0 f9 ff       	call   0x4050e6
46b01f:	59                   	pop    %ecx
46b020:	8b c7                	mov    %edi,%eax
46b022:	e9 b0 01 00 00       	jmp    0x46b1d7
46b027:	e8 5a 22 fa ff       	call   0x40d286
46b02c:	e9 a2 01 00 00       	jmp    0x46b1d3
46b031:	83 0b ff             	orl    $0xffffffff,(%ebx)
46b034:	6a ec                	push   $0xffffffec
46b036:	ff 71 34             	push   0x34(%ecx)
46b039:	ff 15 44 d6 48 00    	call   *0x48d644
46b03f:	6a 34                	push   $0x34
46b041:	89 45 0c             	mov    %eax,0xc(%ebp)
46b044:	33 ff                	xor    %edi,%edi
46b046:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b049:	57                   	push   %edi
46b04a:	50                   	push   %eax
46b04b:	e8 00 5d fb ff       	call   0x420d50
46b050:	8b 45 08             	mov    0x8(%ebp),%eax
46b053:	8b 75 f8             	mov    -0x8(%ebp),%esi
46b056:	83 c4 0c             	add    $0xc,%esp
46b059:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
46b05f:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
46b065:	50                   	push   %eax
46b066:	6a ff                	push   $0xffffffff
46b068:	68 53 10 00 00       	push   $0x1053
46b06d:	ff 76 34             	push   0x34(%esi)
46b070:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
46b077:	00 00 00
46b07a:	ff 15 70 d6 48 00    	call   *0x48d670
46b080:	89 45 a0             	mov    %eax,-0x60(%ebp)
46b083:	83 f8 ff             	cmp    $0xffffffff,%eax
46b086:	0f 84 49 01 00 00    	je     0x46b1d5
46b08c:	f6 45 0c 04          	testb  $0x4,0xc(%ebp)
46b090:	74 45                	je     0x46b0d7
46b092:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
46b096:	74 3f                	je     0x46b0d7
46b098:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b09b:	50                   	push   %eax
46b09c:	57                   	push   %edi
46b09d:	68 4b 10 00 00       	push   $0x104b
46b0a2:	ff 76 34             	push   0x34(%esi)
46b0a5:	c7 45 9c 08 00 00 00 	movl   $0x8,-0x64(%ebp)
46b0ac:	c7 45 ac 00 f0 00 00 	movl   $0xf000,-0x54(%ebp)
46b0b3:	ff 15 70 d6 48 00    	call   *0x48d670
46b0b9:	85 c0                	test   %eax,%eax
46b0bb:	0f 84 14 01 00 00    	je     0x46b1d5
46b0c1:	8b 45 a8             	mov    -0x58(%ebp),%eax
46b0c4:	c1 e8 0c             	shr    $0xc,%eax
46b0c7:	48                   	dec    %eax
46b0c8:	f7 d8                	neg    %eax
46b0ca:	1b c0                	sbb    %eax,%eax
46b0cc:	83 e0 fd             	and    $0xfffffffd,%eax
46b0cf:	83 c0 04             	add    $0x4,%eax
46b0d2:	e9 fc 00 00 00       	jmp    0x46b1d3
46b0d7:	68 00 20 00 00       	push   $0x2000
46b0dc:	e8 09 44 fb ff       	call   0x41f4ea
46b0e1:	8b d8                	mov    %eax,%ebx
46b0e3:	59                   	pop    %ecx
46b0e4:	8b d3                	mov    %ebx,%edx
46b0e6:	33 c9                	xor    %ecx,%ecx
46b0e8:	66 3b 8e 94 00 00 00 	cmp    0x94(%esi),%cx
46b0ef:	89 55 10             	mov    %edx,0x10(%ebp)
46b0f2:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%ebp)
46b0f9:	c7 45 b4 ff 0f 00 00 	movl   $0xfff,-0x4c(%ebp)
46b100:	8b c7                	mov    %edi,%eax
46b102:	eb 53                	jmp    0x46b157
46b104:	ff 15 70 d6 48 00    	call   *0x48d670
46b10a:	ff 75 10             	push   0x10(%ebp)
46b10d:	e8 c9 5b fb ff       	call   0x420cdb
46b112:	59                   	pop    %ecx
46b113:	b9 fe 0f 00 00       	mov    $0xffe,%ecx
46b118:	2b c8                	sub    %eax,%ecx
46b11a:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
46b11d:	85 c9                	test   %ecx,%ecx
46b11f:	0f 8e 97 fb ff ff    	jle    0x46acbc
46b125:	53                   	push   %ebx
46b126:	e8 b0 5b fb ff       	call   0x420cdb
46b12b:	59                   	pop    %ecx
46b12c:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
46b12f:	66 a1 3c 16 4c 00    	mov    0x4c163c,%ax
46b135:	66 89 01             	mov    %ax,(%ecx)
46b138:	33 c0                	xor    %eax,%eax
46b13a:	51                   	push   %ecx
46b13b:	66 89 41 02          	mov    %ax,0x2(%ecx)
46b13f:	ff 15 44 d5 48 00    	call   *0x48d544
46b145:	0f bf 8e 94 00 00 00 	movswl 0x94(%esi),%ecx
46b14c:	8b d0                	mov    %eax,%edx
46b14e:	89 45 10             	mov    %eax,0x10(%ebp)
46b151:	8b 45 08             	mov    0x8(%ebp),%eax
46b154:	40                   	inc    %eax
46b155:	3b c1                	cmp    %ecx,%eax
46b157:	89 45 08             	mov    %eax,0x8(%ebp)
46b15a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
46b15d:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b160:	50                   	push   %eax
46b161:	57                   	push   %edi
46b162:	68 4b 10 00 00       	push   $0x104b
46b167:	ff 76 34             	push   0x34(%esi)
46b16a:	89 55 b0             	mov    %edx,-0x50(%ebp)
46b16d:	7c 95                	jl     0x46b104
46b16f:	ff 15 70 d6 48 00    	call   *0x48d670
46b175:	e9 42 fb ff ff       	jmp    0x46acbc
46b17a:	6a 02                	push   $0x2
46b17c:	6a ff                	push   $0xffffffff
46b17e:	68 0c 10 00 00       	push   $0x100c
46b183:	56                   	push   %esi
46b184:	8b 35 70 d6 48 00    	mov    0x48d670,%esi
46b18a:	ff d6                	call   *%esi
46b18c:	6a 34                	push   $0x34
46b18e:	89 03                	mov    %eax,(%ebx)
46b190:	33 ff                	xor    %edi,%edi
46b192:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b195:	57                   	push   %edi
46b196:	50                   	push   %eax
46b197:	e8 b4 5b fb ff       	call   0x420d50
46b19c:	8b 03                	mov    (%ebx),%eax
46b19e:	83 c4 0c             	add    $0xc,%esp
46b1a1:	89 45 a0             	mov    %eax,-0x60(%ebp)
46b1a4:	8d 45 9c             	lea    -0x64(%ebp),%eax
46b1a7:	50                   	push   %eax
46b1a8:	57                   	push   %edi
46b1a9:	68 4b 10 00 00       	push   $0x104b
46b1ae:	ff 75 0c             	push   0xc(%ebp)
46b1b1:	c7 45 9c 04 00 00 00 	movl   $0x4,-0x64(%ebp)
46b1b8:	ff d6                	call   *%esi
46b1ba:	f7 d8                	neg    %eax
46b1bc:	1b c0                	sbb    %eax,%eax
46b1be:	23 45 bc             	and    -0x44(%ebp),%eax
46b1c1:	eb 10                	jmp    0x46b1d3
46b1c3:	33 ff                	xor    %edi,%edi
46b1c5:	57                   	push   %edi
46b1c6:	57                   	push   %edi
46b1c7:	68 00 04 00 00       	push   $0x400
46b1cc:	56                   	push   %esi
46b1cd:	ff 15 70 d6 48 00    	call   *0x48d670
46b1d3:	89 03                	mov    %eax,(%ebx)
46b1d5:	33 c0                	xor    %eax,%eax
46b1d7:	5f                   	pop    %edi
46b1d8:	5e                   	pop    %esi
46b1d9:	5b                   	pop    %ebx
46b1da:	c9                   	leave
46b1db:	c2 0c 00             	ret    $0xc
46b1de:	55                   	push   %ebp
46b1df:	8b ec                	mov    %esp,%ebp
46b1e1:	83 ec 18             	sub    $0x18,%esp
46b1e4:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b1e7:	50                   	push   %eax
46b1e8:	8d 45 f8             	lea    -0x8(%ebp),%eax
46b1eb:	50                   	push   %eax
46b1ec:	ff 75 08             	push   0x8(%ebp)
46b1ef:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46b1f4:	e8 05 22 fa ff       	call   0x40d3fe
46b1f9:	84 c0                	test   %al,%al
46b1fb:	75 04                	jne    0x46b201
46b1fd:	33 c0                	xor    %eax,%eax
46b1ff:	eb 71                	jmp    0x46b272
46b201:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46b204:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46b209:	56                   	push   %esi
46b20a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46b20d:	33 f6                	xor    %esi,%esi
46b20f:	8b 00                	mov    (%eax),%eax
46b211:	8b 08                	mov    (%eax),%ecx
46b213:	8b 45 14             	mov    0x14(%ebp),%eax
46b216:	2b c6                	sub    %esi,%eax
46b218:	74 43                	je     0x46b25d
46b21a:	48                   	dec    %eax
46b21b:	74 38                	je     0x46b255
46b21d:	48                   	dec    %eax
46b21e:	75 4f                	jne    0x46b26f
46b220:	8d 45 e8             	lea    -0x18(%ebp),%eax
46b223:	50                   	push   %eax
46b224:	ff 75 10             	push   0x10(%ebp)
46b227:	ff 75 0c             	push   0xc(%ebp)
46b22a:	51                   	push   %ecx
46b22b:	ff 15 70 d6 48 00    	call   *0x48d670
46b231:	8b 55 18             	mov    0x18(%ebp),%edx
46b234:	8b 4d e8             	mov    -0x18(%ebp),%ecx
46b237:	89 0a                	mov    %ecx,(%edx)
46b239:	8b 55 1c             	mov    0x1c(%ebp),%edx
46b23c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46b23f:	89 0a                	mov    %ecx,(%edx)
46b241:	8b 55 20             	mov    0x20(%ebp),%edx
46b244:	8b 4d f0             	mov    -0x10(%ebp),%ecx