408dcb:	77 80                	ja     0x408d4d
408dcd:	ff 24 85 fa 8d 40 00 	jmp    *0x408dfa(,%eax,4)
408dd4:	6a 6a                	push   $0x6a
408dd6:	58                   	pop    %eax
408dd7:	66 89 07             	mov    %ax,(%edi)
408dda:	e9 6e ff ff ff       	jmp    0x408d4d
408ddf:	6a 6c                	push   $0x6c
408de1:	eb f3                	jmp    0x408dd6
408de3:	33 c0                	xor    %eax,%eax
408de5:	e9 a8 fe ff ff       	jmp    0x408c92
408dea:	33 c9                	xor    %ecx,%ecx
408dec:	41                   	inc    %ecx
408ded:	e9 cc fe ff ff       	jmp    0x408cbe
408df2:	6a 6b                	push   $0x6b
408df4:	eb e0                	jmp    0x408dd6
408df6:	6a 6d                	push   $0x6d
408df8:	eb dc                	jmp    0x408dd6
408dfa:	d4 8d                	aam    $0x8d
408dfc:	40                   	inc    %eax
408dfd:	00 d4                	add    %dl,%ah
408dff:	8d 40 00             	lea    0x0(%eax),%eax
408e02:	f2 8d 40 00          	repnz lea 0x0(%eax),%eax
408e06:	f2 8d 40 00          	repnz lea 0x0(%eax),%eax
408e0a:	df 8d 40 00 df 8d    	fisttps -0x7220ffc0(%ebp)
408e10:	40                   	inc    %eax
408e11:	00 f6                	add    %dh,%dh
408e13:	8d 40 00             	lea    0x0(%eax),%eax
408e16:	f6 8d 40 00 56 8b f1 	testb  $0xf1,-0x74a9ffc0(%ebp)
408e1d:	e8 10 00 00 00       	call   0x408e32
408e22:	8d 4e 14             	lea    0x14(%esi),%ecx
408e25:	e8 0d 3d 00 00       	call   0x40cb37
408e2a:	8b ce                	mov    %esi,%ecx
408e2c:	5e                   	pop    %esi
408e2d:	e9 05 3d 00 00       	jmp    0x40cb37
408e32:	53                   	push   %ebx
408e33:	56                   	push   %esi
408e34:	8b f1                	mov    %ecx,%esi
408e36:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
408e3a:	75 1c                	jne    0x408e58
408e3c:	33 db                	xor    %ebx,%ebx
408e3e:	89 5e 24             	mov    %ebx,0x24(%esi)
408e41:	39 5e 2c             	cmp    %ebx,0x2c(%esi)
408e44:	75 1d                	jne    0x408e63
408e46:	89 5e 2c             	mov    %ebx,0x2c(%esi)
408e49:	89 5e 30             	mov    %ebx,0x30(%esi)
408e4c:	89 5e 34             	mov    %ebx,0x34(%esi)
408e4f:	89 5e 38             	mov    %ebx,0x38(%esi)
408e52:	88 5e 10             	mov    %bl,0x10(%esi)
408e55:	5e                   	pop    %esi
408e56:	5b                   	pop    %ebx
408e57:	c3                   	ret
408e58:	ff 76 24             	push   0x24(%esi)
408e5b:	e8 3d 8e 01 00       	call   0x421c9d
408e60:	59                   	pop    %ecx
408e61:	eb d9                	jmp    0x408e3c
408e63:	ff 76 2c             	push   0x2c(%esi)
408e66:	e8 f3 66 01 00       	call   0x41f55e
408e6b:	59                   	pop    %ecx
408e6c:	eb d8                	jmp    0x408e46
408e6e:	55                   	push   %ebp
408e6f:	8b ec                	mov    %esp,%ebp
408e71:	83 ec 24             	sub    $0x24,%esp
408e74:	8b c1                	mov    %ecx,%eax
408e76:	53                   	push   %ebx
408e77:	89 55 dc             	mov    %edx,-0x24(%ebp)
408e7a:	8b 55 10             	mov    0x10(%ebp),%edx
408e7d:	56                   	push   %esi
408e7e:	8b 30                	mov    (%eax),%esi
408e80:	33 c9                	xor    %ecx,%ecx
408e82:	41                   	inc    %ecx
408e83:	c1 ea 0b             	shr    $0xb,%edx
408e86:	57                   	push   %edi
408e87:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
408e8b:	23 d1                	and    %ecx,%edx
408e8d:	33 db                	xor    %ebx,%ebx
408e8f:	83 c6 04             	add    $0x4,%esi
408e92:	89 45 e0             	mov    %eax,-0x20(%ebp)
408e95:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408e98:	89 55 fc             	mov    %edx,-0x4(%ebp)
408e9b:	85 d2                	test   %edx,%edx
408e9d:	74 12                	je     0x408eb1
408e9f:	8b c7                	mov    %edi,%eax
408ea1:	25 00 fc 00 00       	and    $0xfc00,%eax
408ea6:	3d 00 d8 00 00       	cmp    $0xd800,%eax
408eab:	0f 84 58 5a 07 00    	je     0x47e909
408eb1:	83 ee 02             	sub    $0x2,%esi
408eb4:	89 75 f0             	mov    %esi,-0x10(%ebp)
408eb7:	85 ff                	test   %edi,%edi
408eb9:	74 56                	je     0x408f11
408ebb:	8d 47 d0             	lea    -0x30(%edi),%eax
408ebe:	83 f8 4a             	cmp    $0x4a,%eax
408ec1:	77 2c                	ja     0x408eef
408ec3:	8d 47 d0             	lea    -0x30(%edi),%eax
408ec6:	c7 45 e8 7b 00 00 00 	movl   $0x7b,-0x18(%ebp)
408ecd:	0f bf 0c 45 88 e4 49 	movswl 0x49e488(,%eax,2),%ecx
408ed4:	00
408ed5:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408ed8:	85 c9                	test   %ecx,%ecx
408eda:	7f 31                	jg     0x408f0d
408edc:	0f 84 48 5a 07 00    	je     0x47e92a
408ee2:	8b d9                	mov    %ecx,%ebx
408ee4:	f7 db                	neg    %ebx
408ee6:	83 fb 0c             	cmp    $0xc,%ebx
408ee9:	0f 84 40 60 07 00    	je     0x47ef2f
408eef:	f7 45 10 00 00 00 20 	testl  $0x20000000,0x10(%ebp)
408ef6:	0f 85 5e 60 07 00    	jne    0x47ef5a
408efc:	8b 45 e0             	mov    -0x20(%ebp),%eax
408eff:	89 30                	mov    %esi,(%eax)
408f01:	8b 45 dc             	mov    -0x24(%ebp),%eax
408f04:	89 38                	mov    %edi,(%eax)
408f06:	5f                   	pop    %edi
408f07:	5e                   	pop    %esi
408f08:	8b c3                	mov    %ebx,%eax
408f0a:	5b                   	pop    %ebx
408f0b:	c9                   	leave
408f0c:	c3                   	ret
408f0d:	8b f9                	mov    %ecx,%edi
408f0f:	eb de                	jmp    0x408eef
408f11:	8b 45 08             	mov    0x8(%ebp),%eax
408f14:	89 08                	mov    %ecx,(%eax)
408f16:	eb d7                	jmp    0x408eef
408f18:	55                   	push   %ebp
408f19:	8b ec                	mov    %esp,%ebp
408f1b:	83 e4 f8             	and    $0xfffffff8,%esp
408f1e:	83 ec 6c             	sub    $0x6c,%esp
408f21:	53                   	push   %ebx
408f22:	56                   	push   %esi
408f23:	57                   	push   %edi
408f24:	8b f9                	mov    %ecx,%edi
408f26:	8d 4c 24 30          	lea    0x30(%esp),%ecx
408f2a:	e8 78 97 ff ff       	call   0x4026a7
408f2f:	8b 5d 08             	mov    0x8(%ebp),%ebx
408f32:	8b 43 04             	mov    0x4(%ebx),%eax
408f35:	8b 30                	mov    (%eax),%esi
408f37:	8b ce                	mov    %esi,%ecx
408f39:	e8 2e 04 00 00       	call   0x40936c
408f3e:	8b 46 08             	mov    0x8(%esi),%eax
408f41:	89 44 24 10          	mov    %eax,0x10(%esp)
408f45:	8b 43 04             	mov    0x4(%ebx),%eax
408f48:	8b 70 04             	mov    0x4(%eax),%esi
408f4b:	8b ce                	mov    %esi,%ecx
408f4d:	e8 1a 04 00 00       	call   0x40936c
408f52:	8b 46 08             	mov    0x8(%esi),%eax
408f55:	89 44 24 18          	mov    %eax,0x18(%esp)
408f59:	8b 43 04             	mov    0x4(%ebx),%eax
408f5c:	8b 70 08             	mov    0x8(%eax),%esi
408f5f:	8b ce                	mov    %esi,%ecx
408f61:	e8 06 04 00 00       	call   0x40936c
408f66:	8b 46 08             	mov    0x8(%esi),%eax
408f69:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
408f6e:	83 7b 08 04          	cmpl   $0x4,0x8(%ebx)
408f72:	89 44 24 1c          	mov    %eax,0x1c(%esp)
408f76:	0f 83 c3 39 07 00    	jae    0x47c93f
408f7c:	ff 74 24 18          	push   0x18(%esp)
408f80:	8d 4c 24 34          	lea    0x34(%esp),%ecx
408f84:	e8 f2 de ff ff       	call   0x406e7b
408f89:	8b 5c 24 10          	mov    0x10(%esp),%ebx
408f8d:	8b f0                	mov    %eax,%esi
408f8f:	53                   	push   %ebx
408f90:	85 f6                	test   %esi,%esi
408f92:	0f 85 bb 39 07 00    	jne    0x47c953
408f98:	8d 4c 24 34          	lea    0x34(%esp),%ecx
408f9c:	e8 bd de ff ff       	call   0x406e5e
408fa1:	ff 73 04             	push   0x4(%ebx)
408fa4:	8d 4c 24 24          	lea    0x24(%esp),%ecx
408fa8:	e8 62 db ff ff       	call   0x406b0f
408fad:	8d 44 24 20          	lea    0x20(%esp),%eax
408fb1:	50                   	push   %eax
408fb2:	ff 74 24 18          	push   0x18(%esp)
408fb6:	8d 4c 24 38          	lea    0x38(%esp),%ecx
408fba:	ff 74 24 24          	push   0x24(%esp)
408fbe:	e8 2d 04 00 00       	call   0x4093f0
408fc3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408fc6:	8b f0                	mov    %eax,%esi
408fc8:	8d 44 24 20          	lea    0x20(%esp),%eax
408fcc:	50                   	push   %eax
408fcd:	e8 96 db ff ff       	call   0x406b68
408fd2:	8b 07                	mov    (%edi),%eax
408fd4:	6a 00                	push   $0x0
408fd6:	8b 48 04             	mov    0x4(%eax),%ecx
408fd9:	56                   	push   %esi
408fda:	03 cf                	add    %edi,%ecx
408fdc:	e8 40 a3 ff ff       	call   0x403321
408fe1:	8d 4c 24 20          	lea    0x20(%esp),%ecx
408fe5:	e8 4d 3b 00 00       	call   0x40cb37
408fea:	8d 4c 24 30          	lea    0x30(%esp),%ecx
408fee:	e8 27 fe ff ff       	call   0x408e1a
408ff3:	5f                   	pop    %edi
408ff4:	5e                   	pop    %esi
408ff5:	33 c0                	xor    %eax,%eax
408ff7:	5b                   	pop    %ebx
408ff8:	8b e5                	mov    %ebp,%esp
408ffa:	5d                   	pop    %ebp
408ffb:	c2 08 00             	ret    $0x8
408ffe:	55                   	push   %ebp
408fff:	8b ec                	mov    %esp,%ebp
409001:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
409005:	53                   	push   %ebx
409006:	56                   	push   %esi
409007:	0f b7 31             	movzwl (%ecx),%esi
40900a:	57                   	push   %edi
40900b:	74 12                	je     0x40901f
40900d:	8b c6                	mov    %esi,%eax
40900f:	25 00 fc 00 00       	and    $0xfc00,%eax
409014:	3d 00 d8 00 00       	cmp    $0xd800,%eax
409019:	0f 84 9b 34 08 00    	je     0x48c4ba
40901f:	6a 02                	push   $0x2
409021:	5f                   	pop    %edi
409022:	6a 0a                	push   $0xa
409024:	5b                   	pop    %ebx
409025:	3b d7                	cmp    %edi,%edx
409027:	0f 85 e3 34 08 00    	jne    0x48c510
40902d:	3b f3                	cmp    %ebx,%esi
40902f:	74 10                	je     0x409041
409031:	83 fe 0d             	cmp    $0xd,%esi
409034:	0f 84 9d 34 08 00    	je     0x48c4d7
40903a:	33 c0                	xor    %eax,%eax
40903c:	5f                   	pop    %edi
40903d:	5e                   	pop    %esi
40903e:	5b                   	pop    %ebx
40903f:	5d                   	pop    %ebp
409040:	c3                   	ret
409041:	33 d2                	xor    %edx,%edx
409043:	e9 bb 34 08 00       	jmp    0x48c503
409048:	55                   	push   %ebp
409049:	8b ec                	mov    %esp,%ebp
40904b:	56                   	push   %esi
40904c:	6a 10                	push   $0x10
40904e:	8b f1                	mov    %ecx,%esi
409050:	e8 95 64 01 00       	call   0x41f4ea
409055:	8b d0                	mov    %eax,%edx
409057:	59                   	pop    %ecx
409058:	85 d2                	test   %edx,%edx
40905a:	0f 84 7e b4 06 00    	je     0x4744de
409060:	8b 45 08             	mov    0x8(%ebp),%eax
409063:	8b 08                	mov    (%eax),%ecx
409065:	89 0a                	mov    %ecx,(%edx)
409067:	8b 48 04             	mov    0x4(%eax),%ecx
40906a:	89 4a 04             	mov    %ecx,0x4(%edx)
40906d:	8b 48 08             	mov    0x8(%eax),%ecx
409070:	89 4a 08             	mov    %ecx,0x8(%edx)
409073:	8b 40 0c             	mov    0xc(%eax),%eax
409076:	89 42 0c             	mov    %eax,0xc(%edx)
409079:	ff 00                	incl   (%eax)
40907b:	89 56 08             	mov    %edx,0x8(%esi)
40907e:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
409085:	8b c6                	mov    %esi,%eax
409087:	5e                   	pop    %esi
409088:	5d                   	pop    %ebp
409089:	c2 04 00             	ret    $0x4
40908c:	55                   	push   %ebp
40908d:	8b ec                	mov    %esp,%ebp
40908f:	83 e4 f8             	and    $0xfffffff8,%esp
409092:	83 ec 5c             	sub    $0x5c,%esp
409095:	53                   	push   %ebx
409096:	8b 5d 08             	mov    0x8(%ebp),%ebx
409099:	56                   	push   %esi
40909a:	8b 43 04             	mov    0x4(%ebx),%eax
40909d:	89 4c 24 30          	mov    %ecx,0x30(%esp)
4090a1:	8b 30                	mov    (%eax),%esi
4090a3:	57                   	push   %edi
4090a4:	8b ce                	mov    %esi,%ecx
4090a6:	e8 c1 02 00 00       	call   0x40936c
4090ab:	8b 46 08             	mov    0x8(%esi),%eax
4090ae:	8b 00                	mov    (%eax),%eax
4090b0:	89 44 24 10          	mov    %eax,0x10(%esp)
4090b4:	8b 43 04             	mov    0x4(%ebx),%eax
4090b7:	8b 30                	mov    (%eax),%esi
4090b9:	8b ce                	mov    %esi,%ecx
4090bb:	e8 ac 02 00 00       	call   0x40936c
4090c0:	8b 46 08             	mov    0x8(%esi),%eax
4090c3:	8b 78 04             	mov    0x4(%eax),%edi
4090c6:	8b 43 04             	mov    0x4(%ebx),%eax
4090c9:	8b 70 04             	mov    0x4(%eax),%esi
4090cc:	8b ce                	mov    %esi,%ecx
4090ce:	e8 99 02 00 00       	call   0x40936c
4090d3:	8b 46 08             	mov    0x8(%esi),%eax
4090d6:	8b 00                	mov    (%eax),%eax
4090d8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4090dc:	8b 43 04             	mov    0x4(%ebx),%eax
4090df:	8b 70 04             	mov    0x4(%eax),%esi
4090e2:	8b ce                	mov    %esi,%ecx
4090e4:	e8 83 02 00 00       	call   0x40936c
4090e9:	8b 46 08             	mov    0x8(%esi),%eax
4090ec:	57                   	push   %edi
4090ed:	8b 70 04             	mov    0x4(%eax),%esi
4090f0:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
4090f4:	89 74 24 18          	mov    %esi,0x18(%esp)
4090f8:	e8 12 da ff ff       	call   0x406b0f
4090fd:	8b 45 08             	mov    0x8(%ebp),%eax
409100:	33 db                	xor    %ebx,%ebx
409102:	33 c9                	xor    %ecx,%ecx
409104:	8a d3                	mov    %bl,%dl
409106:	41                   	inc    %ecx
409107:	83 78 08 03          	cmpl   $0x3,0x8(%eax)
40910b:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
40910f:	88 54 24 0f          	mov    %dl,0xf(%esp)
409113:	0f 82 1e 02 00 00    	jb     0x409337
409119:	8b 40 04             	mov    0x4(%eax),%eax
40911c:	8b 48 08             	mov    0x8(%eax),%ecx
40911f:	e8 62 41 00 00       	call   0x40d286
409124:	33 c9                	xor    %ecx,%ecx
409126:	41                   	inc    %ecx
409127:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40912b:	a8 02                	test   $0x2,%al
40912d:	0f 84 fd 01 00 00    	je     0x409330
409133:	8a d1                	mov    %cl,%dl
409135:	23 c1                	and    %ecx,%eax
409137:	88 54 24 0f          	mov    %dl,0xf(%esp)
40913b:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40913f:	85 f6                	test   %esi,%esi
409141:	0f 84 3b 38 07 00    	je     0x47c982
409147:	2b c3                	sub    %ebx,%eax
409149:	0f 84 d9 38 07 00    	je     0x47ca28
40914f:	48                   	dec    %eax
409150:	0f 85 e8 01 00 00    	jne    0x40933e
409156:	89 5c 24 18          	mov    %ebx,0x18(%esp)
40915a:	85 ff                	test   %edi,%edi
40915c:	7e 5f                	jle    0x4091bd
40915e:	8b 74 24 10          	mov    0x10(%esp),%esi
409162:	8b 44 24 1c          	mov    0x1c(%esp),%eax
409166:	57                   	push   %edi
409167:	66 8b 10             	mov    (%eax),%dx
40916a:	8b ce                	mov    %esi,%ecx
40916c:	e8 de 01 00 00       	call   0x40934f
409171:	8b d0                	mov    %eax,%edx
409173:	59                   	pop    %ecx
409174:	89 54 24 30          	mov    %edx,0x30(%esp)
409178:	85 d2                	test   %edx,%edx
40917a:	0f 84 99 01 00 00    	je     0x409319
409180:	8b 44 24 14          	mov    0x14(%esp),%eax
409184:	8b ca                	mov    %edx,%ecx
409186:	2b ce                	sub    %esi,%ecx
409188:	d1 f9                	sar    $1,%ecx
40918a:	03 c8                	add    %eax,%ecx
40918c:	2b f9                	sub    %ecx,%edi
40918e:	0f 88 85 01 00 00    	js     0x409319
409194:	50                   	push   %eax
409195:	ff 74 24 20          	push   0x20(%esp)
409199:	52                   	push   %edx
40919a:	e8 56 85 01 00       	call   0x4216f5
40919f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4091a3:	8b 74 24 3c          	mov    0x3c(%esp),%esi
4091a7:	83 c4 0c             	add    $0xc,%esp
4091aa:	85 c0                	test   %eax,%eax
4091ac:	0f 85 6b 38 07 00    	jne    0x47ca1d
4091b2:	ff 44 24 18          	incl   0x18(%esp)
4091b6:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
4091b9:	85 ff                	test   %edi,%edi
4091bb:	7f a5                	jg     0x409162