46fdfb:	8b 0c 3e             	mov    (%esi,%edi,1),%ecx
46fdfe:	83 c0 04             	add    $0x4,%eax
46fe01:	89 8d 2c fd ff ff    	mov    %ecx,-0x2d4(%ebp)
46fe07:	8b 8c 9f a0 00 00 00 	mov    0xa0(%edi,%ebx,4),%ecx
46fe0e:	89 8d 20 fd ff ff    	mov    %ecx,-0x2e0(%ebp)
46fe14:	8b 4f 08             	mov    0x8(%edi),%ecx
46fe17:	89 8d 1c fd ff ff    	mov    %ecx,-0x2e4(%ebp)
46fe1d:	8d 8d f4 fe ff ff    	lea    -0x10c(%ebp),%ecx
46fe23:	51                   	push   %ecx
46fe24:	ff b5 34 fd ff ff    	push   -0x2cc(%ebp)
46fe2a:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
46fe30:	50                   	push   %eax
46fe31:	e8 31 80 ff ff       	call   0x467e67
46fe36:	83 c4 0c             	add    $0xc,%esp
46fe39:	85 c0                	test   %eax,%eax
46fe3b:	0f 85 53 02 00 00    	jne    0x470094
46fe41:	66 83 bd f4 fe ff ff 	cmpw   $0x43,-0x10c(%ebp)
46fe48:	43
46fe49:	8b 85 40 fd ff ff    	mov    -0x2c0(%ebp),%eax
46fe4f:	89 04 3e             	mov    %eax,(%esi,%edi,1)
46fe52:	75 19                	jne    0x46fe6d
46fe54:	66 83 bd f6 fe ff ff 	cmpw   $0x0,-0x10a(%ebp)
46fe5b:	00
46fe5c:	75 0f                	jne    0x46fe6d
46fe5e:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
46fe64:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
46fe6b:	eb 1a                	jmp    0x46fe87
46fe6d:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
46fe73:	50                   	push   %eax
46fe74:	e8 4d f0 ff ff       	call   0x46eec6
46fe79:	59                   	pop    %ecx
46fe7a:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
46fe80:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
46fe87:	83 fb 02             	cmp    $0x2,%ebx
46fe8a:	0f 85 17 01 00 00    	jne    0x46ffa7
46fe90:	8b b5 30 fd ff ff    	mov    -0x2d0(%ebp),%esi
46fe96:	8b d1                	mov    %ecx,%edx
46fe98:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46fe9e:	8b ce                	mov    %esi,%ecx
46fea0:	89 47 08             	mov    %eax,0x8(%edi)
46fea3:	89 b5 40 fd ff ff    	mov    %esi,-0x2c0(%ebp)
46fea9:	8b 46 20             	mov    0x20(%esi),%eax
46feac:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
46feb2:	8b 46 24             	mov    0x24(%esi),%eax
46feb5:	89 85 3c fd ff ff    	mov    %eax,-0x2c4(%ebp)
46febb:	8b 47 08             	mov    0x8(%edi),%eax
46febe:	3b 01                	cmp    (%ecx),%eax
46fec0:	74 47                	je     0x46ff09
46fec2:	8b b5 40 fd ff ff    	mov    -0x2c0(%ebp),%esi
46fec8:	42                   	inc    %edx
46fec9:	8b 01                	mov    (%ecx),%eax
46fecb:	8b 9d 34 fd ff ff    	mov    -0x2cc(%ebp),%ebx
46fed1:	8b 49 04             	mov    0x4(%ecx),%ecx
46fed4:	89 1e                	mov    %ebx,(%esi)
46fed6:	8b 9d 3c fd ff ff    	mov    -0x2c4(%ebp),%ebx
46fedc:	89 8d 3c fd ff ff    	mov    %ecx,-0x2c4(%ebp)
46fee2:	8b ce                	mov    %esi,%ecx
46fee4:	83 c1 08             	add    $0x8,%ecx
46fee7:	89 5e 04             	mov    %ebx,0x4(%esi)
46feea:	8b 9d 24 fd ff ff    	mov    -0x2dc(%ebp),%ebx
46fef0:	8b b5 30 fd ff ff    	mov    -0x2d0(%ebp),%esi
46fef6:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
46fefc:	89 8d 40 fd ff ff    	mov    %ecx,-0x2c0(%ebp)
46ff02:	83 fa 05             	cmp    $0x5,%edx
46ff05:	7c b4                	jl     0x46febb
46ff07:	eb 23                	jmp    0x46ff2c
46ff09:	85 d2                	test   %edx,%edx
46ff0b:	74 1f                	je     0x46ff2c
46ff0d:	8b 04 d6             	mov    (%esi,%edx,8),%eax
46ff10:	89 06                	mov    %eax,(%esi)
46ff12:	8b 44 d6 04          	mov    0x4(%esi,%edx,8),%eax
46ff16:	89 46 04             	mov    %eax,0x4(%esi)
46ff19:	8b 85 34 fd ff ff    	mov    -0x2cc(%ebp),%eax
46ff1f:	89 04 d6             	mov    %eax,(%esi,%edx,8)
46ff22:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46ff28:	89 44 d6 04          	mov    %eax,0x4(%esi,%edx,8)
46ff2c:	83 fa 05             	cmp    $0x5,%edx
46ff2f:	75 6e                	jne    0x46ff9f
46ff31:	6a 01                	push   $0x1
46ff33:	ff 77 08             	push   0x8(%edi)
46ff36:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
46ff3c:	50                   	push   %eax
46ff3d:	6a 7f                	push   $0x7f
46ff3f:	68 e0 d8 49 00       	push   $0x49d8e0
46ff44:	6a 01                	push   $0x1
46ff46:	ff b5 44 fd ff ff    	push   -0x2bc(%ebp)
46ff4c:	e8 f4 ab 00 00       	call   0x47ab45
46ff51:	83 c4 1c             	add    $0x1c,%esp
46ff54:	85 c0                	test   %eax,%eax
46ff56:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
46ff5c:	74 39                	je     0x46ff97
46ff5e:	b9 ff 01 00 00       	mov    $0x1ff,%ecx
46ff63:	66 21 8c 45 f4 fd ff 	and    %cx,-0x20c(%ebp,%eax,2)
46ff6a:	ff
46ff6b:	40                   	inc    %eax
46ff6c:	83 f8 7f             	cmp    $0x7f,%eax
46ff6f:	72 ed                	jb     0x46ff5e
46ff71:	68 fe 00 00 00       	push   $0xfe
46ff76:	ff 35 14 82 4b 00    	push   0x4b8214
46ff7c:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
46ff82:	50                   	push   %eax
46ff83:	e8 4a 16 fd ff       	call   0x4415d2
46ff88:	33 c9                	xor    %ecx,%ecx
46ff8a:	83 c4 0c             	add    $0xc,%esp
46ff8d:	85 c0                	test   %eax,%eax
46ff8f:	0f 94 c1             	sete   %cl
46ff92:	89 4e 04             	mov    %ecx,0x4(%esi)
46ff95:	eb 03                	jmp    0x46ff9a
46ff97:	89 46 04             	mov    %eax,0x4(%esi)
46ff9a:	8b 47 08             	mov    0x8(%edi),%eax
46ff9d:	89 06                	mov    %eax,(%esi)
46ff9f:	8b 46 04             	mov    0x4(%esi),%eax
46ffa2:	89 47 18             	mov    %eax,0x18(%edi)
46ffa5:	eb 1e                	jmp    0x46ffc5
46ffa7:	83 fb 01             	cmp    $0x1,%ebx
46ffaa:	75 0b                	jne    0x46ffb7
46ffac:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46ffb2:	89 47 10             	mov    %eax,0x10(%edi)
46ffb5:	eb 0e                	jmp    0x46ffc5
46ffb7:	83 fb 05             	cmp    $0x5,%ebx
46ffba:	75 09                	jne    0x46ffc5
46ffbc:	8b 85 3c fd ff ff    	mov    -0x2c4(%ebp),%eax
46ffc2:	89 47 14             	mov    %eax,0x14(%edi)
46ffc5:	6b c3 0c             	imul   $0xc,%ebx,%eax
46ffc8:	57                   	push   %edi
46ffc9:	8b b0 20 d8 49 00    	mov    0x49d820(%eax),%esi
46ffcf:	8b ce                	mov    %esi,%ecx
46ffd1:	ff 15 54 43 49 00    	call   *0x494354
46ffd7:	ff d6                	call   *%esi
46ffd9:	59                   	pop    %ecx
46ffda:	8b 8d 2c fd ff ff    	mov    -0x2d4(%ebp),%ecx
46ffe0:	85 c0                	test   %eax,%eax
46ffe2:	74 3e                	je     0x470022
46ffe4:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
46ffea:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
46ffed:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
46fff4:	e8 40 23 00 00       	call   0x472339
46fff9:	8b 8d 28 fd ff ff    	mov    -0x2d8(%ebp),%ecx
46ffff:	8b 85 20 fd ff ff    	mov    -0x2e0(%ebp),%eax
470005:	51                   	push   %ecx
470006:	89 84 9f a0 00 00 00 	mov    %eax,0xa0(%edi,%ebx,4)
47000d:	e8 27 23 00 00       	call   0x472339
470012:	8b 85 1c fd ff ff    	mov    -0x2e4(%ebp),%eax
470018:	59                   	pop    %ecx
470019:	59                   	pop    %ecx
47001a:	89 47 08             	mov    %eax,0x8(%edi)
47001d:	e9 17 fd ff ff       	jmp    0x46fd39
470022:	81 f9 f0 82 4b 00    	cmp    $0x4b82f0,%ecx
470028:	74 4a                	je     0x470074
47002a:	8b f3                	mov    %ebx,%esi
47002c:	83 c9 ff             	or     $0xffffffff,%ecx
47002f:	03 f6                	add    %esi,%esi
470031:	8b 44 f7 28          	mov    0x28(%edi,%esi,8),%eax
470035:	f0 0f c1 08          	lock xadd %ecx,(%eax)
470039:	75 39                	jne    0x470074
47003b:	ff 74 f7 28          	push   0x28(%edi,%esi,8)
47003f:	e8 f5 22 00 00       	call   0x472339
470044:	ff 74 f7 24          	push   0x24(%edi,%esi,8)
470048:	e8 ec 22 00 00       	call   0x472339
47004d:	ff b4 9f a0 00 00 00 	push   0xa0(%edi,%ebx,4)
470054:	e8 e0 22 00 00       	call   0x472339
470059:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
47005f:	83 c4 0c             	add    $0xc,%esp
470062:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
470068:	89 0c 38             	mov    %ecx,(%eax,%edi,1)
47006b:	89 8c 9f a0 00 00 00 	mov    %ecx,0xa0(%edi,%ebx,4)
470072:	eb 06                	jmp    0x47007a
470074:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
47007a:	8b 8d 28 fd ff ff    	mov    -0x2d8(%ebp),%ecx
470080:	03 db                	add    %ebx,%ebx
470082:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
470088:	8b 04 38             	mov    (%eax,%edi,1),%eax
47008b:	89 4c df 28          	mov    %ecx,0x28(%edi,%ebx,8)
47008f:	e9 a7 fc ff ff       	jmp    0x46fd3b
470094:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
47009a:	50                   	push   %eax
47009b:	50                   	push   %eax
47009c:	50                   	push   %eax
47009d:	50                   	push   %eax
47009e:	50                   	push   %eax
47009f:	e8 5f cc fd ff       	call   0x44cd03
4700a4:	cc                   	int3
4700a5:	a1 14 bf 4b 00       	mov    0x4bbf14,%eax
4700aa:	8b 88 88 00 00 00    	mov    0x88(%eax),%ecx
4700b0:	89 0d f8 81 4b 00    	mov    %ecx,0x4b81f8
4700b6:	8b 08                	mov    (%eax),%ecx
4700b8:	89 0d fc 81 4b 00    	mov    %ecx,0x4b81fc
4700be:	8b 40 04             	mov    0x4(%eax),%eax
4700c1:	a3 28 82 4b 00       	mov    %eax,0x4b8228
4700c6:	c3                   	ret
4700c7:	8b c1                	mov    %ecx,%eax
4700c9:	c3                   	ret
4700ca:	a1 0c bf 4b 00       	mov    0x4bbf0c,%eax
4700cf:	c3                   	ret
4700d0:	8b ff                	mov    %edi,%edi
4700d2:	55                   	push   %ebp
4700d3:	8b ec                	mov    %esp,%ebp
4700d5:	8b 45 08             	mov    0x8(%ebp),%eax
4700d8:	85 c0                	test   %eax,%eax
4700da:	74 1a                	je     0x4700f6
4700dc:	83 f8 01             	cmp    $0x1,%eax
4700df:	74 15                	je     0x4700f6
4700e1:	e8 49 cd fd ff       	call   0x44ce2f
4700e6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4700ec:	e8 e5 cb fd ff       	call   0x44ccd6
4700f1:	83 c8 ff             	or     $0xffffffff,%eax
4700f4:	5d                   	pop    %ebp
4700f5:	c3                   	ret
4700f6:	b9 0c bf 4b 00       	mov    $0x4bbf0c,%ecx
4700fb:	87 01                	xchg   %eax,(%ecx)
4700fd:	5d                   	pop    %ebp
4700fe:	c3                   	ret
4700ff:	b8 10 bf 4b 00       	mov    $0x4bbf10,%eax
470104:	c3                   	ret
470105:	8b ff                	mov    %edi,%edi
470107:	55                   	push   %ebp
470108:	8b ec                	mov    %esp,%ebp
47010a:	8b 4d 10             	mov    0x10(%ebp),%ecx
47010d:	8b 45 0c             	mov    0xc(%ebp),%eax
470110:	81 e1 ff ff f7 ff    	and    $0xfff7ffff,%ecx
470116:	23 c1                	and    %ecx,%eax
470118:	56                   	push   %esi
470119:	8b 75 08             	mov    0x8(%ebp),%esi
47011c:	a9 e0 fc f0 fc       	test   $0xfcf0fce0,%eax
470121:	74 24                	je     0x470147
470123:	85 f6                	test   %esi,%esi
470125:	74 0d                	je     0x470134
470127:	6a 00                	push   $0x0
470129:	6a 00                	push   $0x0
47012b:	e8 cf 22 01 00       	call   0x4823ff
470130:	59                   	pop    %ecx
470131:	59                   	pop    %ecx
470132:	89 06                	mov    %eax,(%esi)
470134:	e8 f6 cc fd ff       	call   0x44ce2f
470139:	6a 16                	push   $0x16
47013b:	5e                   	pop    %esi
47013c:	89 30                	mov    %esi,(%eax)
47013e:	e8 93 cb fd ff       	call   0x44ccd6
470143:	8b c6                	mov    %esi,%eax
470145:	eb 1a                	jmp    0x470161
470147:	51                   	push   %ecx
470148:	ff 75 0c             	push   0xc(%ebp)
47014b:	85 f6                	test   %esi,%esi
47014d:	74 09                	je     0x470158
47014f:	e8 ab 22 01 00       	call   0x4823ff
470154:	89 06                	mov    %eax,(%esi)
470156:	eb 05                	jmp    0x47015d
470158:	e8 a2 22 01 00       	call   0x4823ff
47015d:	59                   	pop    %ecx
47015e:	59                   	pop    %ecx
47015f:	33 c0                	xor    %eax,%eax
470161:	5e                   	pop    %esi
470162:	5d                   	pop    %ebp
470163:	c3                   	ret
470164:	8b ff                	mov    %edi,%edi
470166:	55                   	push   %ebp
470167:	8b ec                	mov    %esp,%ebp
470169:	5d                   	pop    %ebp
47016a:	e9 00 00 00 00       	jmp    0x47016f
47016f:	8b ff                	mov    %edi,%edi
470171:	55                   	push   %ebp
470172:	8b ec                	mov    %esp,%ebp
470174:	56                   	push   %esi
470175:	8b 75 0c             	mov    0xc(%ebp),%esi
470178:	85 f6                	test   %esi,%esi
47017a:	74 1b                	je     0x470197
47017c:	6a e0                	push   $0xffffffe0
47017e:	33 d2                	xor    %edx,%edx
470180:	58                   	pop    %eax
470181:	f7 f6                	div    %esi
470183:	3b 45 10             	cmp    0x10(%ebp),%eax
470186:	73 0f                	jae    0x470197
470188:	e8 a2 cc fd ff       	call   0x44ce2f
47018d:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
470193:	33 c0                	xor    %eax,%eax
470195:	eb 42                	jmp    0x4701d9
470197:	53                   	push   %ebx
470198:	8b 5d 08             	mov    0x8(%ebp),%ebx
47019b:	57                   	push   %edi
47019c:	85 db                	test   %ebx,%ebx
47019e:	74 0b                	je     0x4701ab
4701a0:	53                   	push   %ebx
4701a1:	e8 b8 27 01 00       	call   0x48295e
4701a6:	59                   	pop    %ecx
4701a7:	8b f8                	mov    %eax,%edi
4701a9:	eb 02                	jmp    0x4701ad
4701ab:	33 ff                	xor    %edi,%edi
4701ad:	0f af 75 10          	imul   0x10(%ebp),%esi
4701b1:	56                   	push   %esi
4701b2:	53                   	push   %ebx
4701b3:	e8 bb 21 00 00       	call   0x472373
4701b8:	8b d8                	mov    %eax,%ebx
4701ba:	59                   	pop    %ecx
4701bb:	59                   	pop    %ecx
4701bc:	85 db                	test   %ebx,%ebx
4701be:	74 15                	je     0x4701d5
4701c0:	3b fe                	cmp    %esi,%edi
4701c2:	73 11                	jae    0x4701d5
4701c4:	2b f7                	sub    %edi,%esi
4701c6:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4701c9:	56                   	push   %esi
4701ca:	6a 00                	push   $0x0
4701cc:	50                   	push   %eax
4701cd:	e8 8e 3c fd ff       	call   0x443e60
4701d2:	83 c4 0c             	add    $0xc,%esp
4701d5:	5f                   	pop    %edi
4701d6:	8b c3                	mov    %ebx,%eax
4701d8:	5b                   	pop    %ebx
4701d9:	5e                   	pop    %esi
4701da:	5d                   	pop    %ebp
4701db:	c3                   	ret
4701dc:	8b ff                	mov    %edi,%edi
4701de:	55                   	push   %ebp
4701df:	8b ec                	mov    %esp,%ebp
4701e1:	8b 55 08             	mov    0x8(%ebp),%edx
4701e4:	56                   	push   %esi
4701e5:	85 d2                	test   %edx,%edx
4701e7:	74 11                	je     0x4701fa
4701e9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4701ec:	85 c9                	test   %ecx,%ecx
4701ee:	74 0a                	je     0x4701fa
4701f0:	8b 75 10             	mov    0x10(%ebp),%esi
4701f3:	85 f6                	test   %esi,%esi
4701f5:	75 17                	jne    0x47020e
4701f7:	c6 02 00             	movb   $0x0,(%edx)
4701fa:	e8 30 cc fd ff       	call   0x44ce2f
4701ff:	6a 16                	push   $0x16
470201:	5e                   	pop    %esi
470202:	89 30                	mov    %esi,(%eax)
470204:	e8 cd ca fd ff       	call   0x44ccd6
470209:	8b c6                	mov    %esi,%eax
47020b:	5e                   	pop    %esi
47020c:	5d                   	pop    %ebp
47020d:	c3                   	ret
47020e:	57                   	push   %edi
47020f:	8b fa                	mov    %edx,%edi
470211:	2b f2                	sub    %edx,%esi
470213:	8a 04 3e             	mov    (%esi,%edi,1),%al
470216:	88 07                	mov    %al,(%edi)
470218:	47                   	inc    %edi
470219:	84 c0                	test   %al,%al
47021b:	74 05                	je     0x470222
47021d:	83 e9 01             	sub    $0x1,%ecx
470220:	75 f1                	jne    0x470213
470222:	5f                   	pop    %edi
470223:	85 c9                	test   %ecx,%ecx
470225:	75 0b                	jne    0x470232
470227:	88 0a                	mov    %cl,(%edx)
470229:	e8 01 cc fd ff       	call   0x44ce2f
47022e:	6a 22                	push   $0x22