410e84:	f6 46 1c 0c          	testb  $0xc,0x1c(%esi)
410e88:	89 55 dc             	mov    %edx,-0x24(%ebp)
410e8b:	75 5e                	jne    0x410eeb
410e8d:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
410e90:	85 d2                	test   %edx,%edx
410e92:	7e 57                	jle    0x410eeb
410e94:	8b 5e 14             	mov    0x14(%esi),%ebx
410e97:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
410e9a:	8b be 48 04 00 00    	mov    0x448(%esi),%edi
410ea0:	8b 47 08             	mov    0x8(%edi),%eax
410ea3:	3b 47 04             	cmp    0x4(%edi),%eax
410ea6:	75 11                	jne    0x410eb9
410ea8:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
410eac:	74 03                	je     0x410eb1
410eae:	43                   	inc    %ebx
410eaf:	eb 03                	jmp    0x410eb4
410eb1:	83 cb ff             	or     $0xffffffff,%ebx
410eb4:	89 5e 14             	mov    %ebx,0x14(%esi)
410eb7:	eb 20                	jmp    0x410ed9
410eb9:	8d 43 01             	lea    0x1(%ebx),%eax
410ebc:	89 46 14             	mov    %eax,0x14(%esi)
410ebf:	ff 47 08             	incl   0x8(%edi)
410ec2:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
410ec8:	6a 20                	push   $0x20
410eca:	5b                   	pop    %ebx
410ecb:	8b 00                	mov    (%eax),%eax
410ecd:	66 89 18             	mov    %bx,(%eax)
410ed0:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
410ed6:	83 00 02             	addl   $0x2,(%eax)
410ed9:	8b 5e 14             	mov    0x14(%esi),%ebx
410edc:	83 fb ff             	cmp    $0xffffffff,%ebx
410edf:	74 05                	je     0x410ee6
410ee1:	41                   	inc    %ecx
410ee2:	3b ca                	cmp    %edx,%ecx
410ee4:	7c b4                	jl     0x410e9a
410ee6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410ee9:	33 db                	xor    %ebx,%ebx
410eeb:	ff 76 08             	push   0x8(%esi)
410eee:	8d 7e 14             	lea    0x14(%esi),%edi
410ef1:	57                   	push   %edi
410ef2:	51                   	push   %ecx
410ef3:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
410ef9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
410efc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
410eff:	51                   	push   %ecx
410f00:	8b c8                	mov    %eax,%ecx
410f02:	e8 0e 0c 00 00       	call   0x411b15
410f07:	8b 4e 1c             	mov    0x1c(%esi),%ecx
410f0a:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
410f10:	8b c1                	mov    %ecx,%eax
410f12:	c1 e8 03             	shr    $0x3,%eax
410f15:	a8 01                	test   $0x1,%al
410f17:	74 5b                	je     0x410f74
410f19:	c1 e9 02             	shr    $0x2,%ecx
410f1c:	f6 c1 01             	test   $0x1,%cl
410f1f:	75 53                	jne    0x410f74
410f21:	8b 4d dc             	mov    -0x24(%ebp),%ecx
410f24:	89 5d ec             	mov    %ebx,-0x14(%ebp)
410f27:	85 c9                	test   %ecx,%ecx
410f29:	7e 49                	jle    0x410f74
410f2b:	8b 02                	mov    (%edx),%eax
410f2d:	89 45 f0             	mov    %eax,-0x10(%ebp)
410f30:	8b d8                	mov    %eax,%ebx
410f32:	8b 40 08             	mov    0x8(%eax),%eax
410f35:	3b 43 04             	cmp    0x4(%ebx),%eax
410f38:	8b c3                	mov    %ebx,%eax
410f3a:	75 12                	jne    0x410f4e
410f3c:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
410f40:	74 05                	je     0x410f47
410f42:	8b 07                	mov    (%edi),%eax
410f44:	40                   	inc    %eax
410f45:	eb 03                	jmp    0x410f4a
410f47:	83 c8 ff             	or     $0xffffffff,%eax
410f4a:	89 07                	mov    %eax,(%edi)
410f4c:	eb 14                	jmp    0x410f62
410f4e:	ff 07                	incl   (%edi)
410f50:	ff 40 08             	incl   0x8(%eax)
410f53:	8b 02                	mov    (%edx),%eax
410f55:	8b 5d e8             	mov    -0x18(%ebp),%ebx
410f58:	8b 00                	mov    (%eax),%eax
410f5a:	66 89 18             	mov    %bx,(%eax)
410f5d:	8b 02                	mov    (%edx),%eax
410f5f:	83 00 02             	addl   $0x2,(%eax)
410f62:	83 3f ff             	cmpl   $0xffffffff,(%edi)
410f65:	74 0b                	je     0x410f72
410f67:	8b 45 ec             	mov    -0x14(%ebp),%eax
410f6a:	40                   	inc    %eax
410f6b:	89 45 ec             	mov    %eax,-0x14(%ebp)
410f6e:	3b c1                	cmp    %ecx,%eax
410f70:	7c b9                	jl     0x410f2b
410f72:	33 db                	xor    %ebx,%ebx
410f74:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
410f78:	0f 85 ad 00 00 00    	jne    0x41102b
410f7e:	39 5e 34             	cmp    %ebx,0x34(%esi)
410f81:	0f 8e a4 00 00 00    	jle    0x41102b
410f87:	8b 46 08             	mov    0x8(%esi),%eax
410f8a:	89 45 e0             	mov    %eax,-0x20(%ebp)
410f8d:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
410f91:	75 0a                	jne    0x410f9d
410f93:	8b c8                	mov    %eax,%ecx
410f95:	e8 26 09 00 00       	call   0x4118c0
410f9a:	8b 45 e0             	mov    -0x20(%ebp),%eax
410f9d:	8b 4e 30             	mov    0x30(%esi),%ecx
410fa0:	89 4d e8             	mov    %ecx,-0x18(%ebp)
410fa3:	89 5d ec             	mov    %ebx,-0x14(%ebp)
410fa6:	39 5e 34             	cmp    %ebx,0x34(%esi)
410fa9:	0f 84 8d 00 00 00    	je     0x41103c
410faf:	8b 40 0c             	mov    0xc(%eax),%eax
410fb2:	33 d2                	xor    %edx,%edx
410fb4:	ff 76 08             	push   0x8(%esi)
410fb7:	66 89 55 f0          	mov    %dx,-0x10(%ebp)
410fbb:	ff 70 04             	push   0x4(%eax)
410fbe:	8d 45 f0             	lea    -0x10(%ebp),%eax
410fc1:	51                   	push   %ecx
410fc2:	50                   	push   %eax
410fc3:	e8 0d c7 00 00       	call   0x41d6d5
410fc8:	83 c4 10             	add    $0x10,%esp
410fcb:	89 45 f4             	mov    %eax,-0xc(%ebp)
410fce:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
410fd4:	85 c0                	test   %eax,%eax
410fd6:	7e 4e                	jle    0x411026
410fd8:	8b 0a                	mov    (%edx),%ecx
410fda:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
410fde:	89 45 d8             	mov    %eax,-0x28(%ebp)
410fe1:	8b 41 08             	mov    0x8(%ecx),%eax
410fe4:	3b 41 04             	cmp    0x4(%ecx),%eax
410fe7:	75 0f                	jne    0x410ff8
410fe9:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
410fed:	74 04                	je     0x410ff3
410fef:	ff 07                	incl   (%edi)
410ff1:	eb 19                	jmp    0x41100c
410ff3:	83 0f ff             	orl    $0xffffffff,(%edi)
410ff6:	eb 14                	jmp    0x41100c
410ff8:	ff 07                	incl   (%edi)
410ffa:	ff 41 08             	incl   0x8(%ecx)
410ffd:	8b 02                	mov    (%edx),%eax
410fff:	8b 4d d8             	mov    -0x28(%ebp),%ecx
411002:	8b 00                	mov    (%eax),%eax
411004:	66 89 08             	mov    %cx,(%eax)
411007:	8b 02                	mov    (%edx),%eax
411009:	83 00 02             	addl   $0x2,(%eax)
41100c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41100f:	03 4d f4             	add    -0xc(%ebp),%ecx
411012:	8b 45 ec             	mov    -0x14(%ebp),%eax
411015:	40                   	inc    %eax
411016:	89 4d e8             	mov    %ecx,-0x18(%ebp)
411019:	3b 46 34             	cmp    0x34(%esi),%eax
41101c:	89 45 ec             	mov    %eax,-0x14(%ebp)
41101f:	8b 45 e0             	mov    -0x20(%ebp),%eax
411022:	75 8b                	jne    0x410faf
411024:	eb 1c                	jmp    0x411042
411026:	83 0f ff             	orl    $0xffffffff,(%edi)
411029:	eb 17                	jmp    0x411042
41102b:	ff 76 08             	push   0x8(%esi)
41102e:	8b ca                	mov    %edx,%ecx
411030:	57                   	push   %edi
411031:	ff 76 34             	push   0x34(%esi)
411034:	ff 76 30             	push   0x30(%esi)
411037:	e8 d9 0a 00 00       	call   0x411b15
41103c:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
411042:	8b 0f                	mov    (%edi),%ecx
411044:	85 c9                	test   %ecx,%ecx
411046:	78 54                	js     0x41109c
411048:	8b 46 1c             	mov    0x1c(%esi),%eax
41104b:	c1 e8 02             	shr    $0x2,%eax
41104e:	a8 01                	test   $0x1,%al
411050:	74 4a                	je     0x41109c
411052:	8b 75 dc             	mov    -0x24(%ebp),%esi
411055:	85 f6                	test   %esi,%esi
411057:	7e 43                	jle    0x41109c
411059:	8b 12                	mov    (%edx),%edx
41105b:	8b 42 08             	mov    0x8(%edx),%eax
41105e:	3b 42 04             	cmp    0x4(%edx),%eax
411061:	75 13                	jne    0x411076
411063:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
411067:	74 03                	je     0x41106c
411069:	41                   	inc    %ecx
41106a:	eb 03                	jmp    0x41106f
41106c:	83 c9 ff             	or     $0xffffffff,%ecx
41106f:	8b 55 e4             	mov    -0x1c(%ebp),%edx
411072:	89 0f                	mov    %ecx,(%edi)
411074:	eb 1a                	jmp    0x411090
411076:	8d 41 01             	lea    0x1(%ecx),%eax
411079:	89 07                	mov    %eax,(%edi)
41107b:	ff 42 08             	incl   0x8(%edx)
41107e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
411081:	6a 20                	push   $0x20
411083:	59                   	pop    %ecx
411084:	8b 02                	mov    (%edx),%eax
411086:	8b 00                	mov    (%eax),%eax
411088:	66 89 08             	mov    %cx,(%eax)
41108b:	8b 02                	mov    (%edx),%eax
41108d:	83 00 02             	addl   $0x2,(%eax)
411090:	8b 0f                	mov    (%edi),%ecx
411092:	83 f9 ff             	cmp    $0xffffffff,%ecx
411095:	74 05                	je     0x41109c
411097:	43                   	inc    %ebx
411098:	3b de                	cmp    %esi,%ebx
41109a:	7c bd                	jl     0x411059
41109c:	b0 01                	mov    $0x1,%al
41109e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4110a1:	5f                   	pop    %edi
4110a2:	5e                   	pop    %esi
4110a3:	33 cd                	xor    %ebp,%ecx
4110a5:	5b                   	pop    %ebx
4110a6:	e8 fc 8b ff ff       	call   0x409ca7
4110ab:	c9                   	leave
4110ac:	c3                   	ret
4110ad:	8b ff                	mov    %edi,%edi
4110af:	55                   	push   %ebp
4110b0:	8b ec                	mov    %esp,%ebp
4110b2:	8b 45 08             	mov    0x8(%ebp),%eax
4110b5:	83 f8 0b             	cmp    $0xb,%eax
4110b8:	77 20                	ja     0x4110da
4110ba:	0f b6 80 f5 10 41 00 	movzbl 0x4110f5(%eax),%eax
4110c1:	ff 24 85 e1 10 41 00 	jmp    *0x4110e1(,%eax,4)
4110c8:	33 c0                	xor    %eax,%eax
4110ca:	40                   	inc    %eax
4110cb:	5d                   	pop    %ebp
4110cc:	c3                   	ret
4110cd:	6a 02                	push   $0x2
4110cf:	58                   	pop    %eax
4110d0:	5d                   	pop    %ebp
4110d1:	c3                   	ret
4110d2:	6a 04                	push   $0x4
4110d4:	eb f9                	jmp    0x4110cf
4110d6:	6a 08                	push   $0x8
4110d8:	eb f5                	jmp    0x4110cf
4110da:	33 c0                	xor    %eax,%eax
4110dc:	5d                   	pop    %ebp
4110dd:	c3                   	ret
4110de:	8d 49 00             	lea    0x0(%ecx),%ecx
4110e1:	d2 10                	rclb   %cl,(%eax)
4110e3:	41                   	inc    %ecx
4110e4:	00 c8                	add    %cl,%al
4110e6:	10 41 00             	adc    %al,0x0(%ecx)
4110e9:	cd 10                	int    $0x10
4110eb:	41                   	inc    %ecx
4110ec:	00 d6                	add    %dl,%dh
4110ee:	10 41 00             	adc    %al,0x0(%ecx)
4110f1:	da 10                	ficoml (%eax)
4110f3:	41                   	inc    %ecx
4110f4:	00 00                	add    %al,(%eax)
4110f6:	01 02                	add    %eax,(%edx)
4110f8:	00 03                	add    %al,(%ebx)
4110fa:	03 00                	add    (%eax),%eax
4110fc:	00 04 00             	add    %al,(%eax,%eax,1)
4110ff:	00 03                	add    %al,(%ebx)
411101:	8b ff                	mov    %edi,%edi
411103:	53                   	push   %ebx
411104:	56                   	push   %esi
411105:	8b f1                	mov    %ecx,%esi
411107:	57                   	push   %edi
411108:	8b 56 10             	mov    0x10(%esi),%edx
41110b:	8d 42 04             	lea    0x4(%edx),%eax
41110e:	89 46 10             	mov    %eax,0x10(%esi)
411111:	8b 3a                	mov    (%edx),%edi
411113:	85 ff                	test   %edi,%edi
411115:	74 33                	je     0x41114a
411117:	8b 5f 04             	mov    0x4(%edi),%ebx
41111a:	85 db                	test   %ebx,%ebx
41111c:	74 2c                	je     0x41114a
41111e:	ff 76 28             	push   0x28(%esi)
411121:	0f b6 46 2d          	movzbl 0x2d(%esi),%eax
411125:	50                   	push   %eax
411126:	ff 76 04             	push   0x4(%esi)
411129:	ff 36                	push   (%esi)
41112b:	e8 26 ca ff ff       	call   0x40db56
411130:	83 c4 10             	add    $0x10,%esp
411133:	89 5e 30             	mov    %ebx,0x30(%esi)
411136:	0f b7 0f             	movzwl (%edi),%ecx
411139:	84 c0                	test   %al,%al
41113b:	8b c1                	mov    %ecx,%eax
41113d:	6a 34                	push   $0x34
41113f:	59                   	pop    %ecx
411140:	74 15                	je     0x411157
411142:	c6 46 38 01          	movb   $0x1,0x38(%esi)
411146:	d1 e8                	shr    $1,%eax
411148:	eb 11                	jmp    0x41115b
41114a:	6a 06                	push   $0x6
41114c:	58                   	pop    %eax
41114d:	6a 34                	push   $0x34
41114f:	c7 46 30 10 25 43 00 	movl   $0x432510,0x30(%esi)
411156:	59                   	pop    %ecx
411157:	c6 46 38 00          	movb   $0x0,0x38(%esi)
41115b:	5f                   	pop    %edi
41115c:	89 04 0e             	mov    %eax,(%esi,%ecx,1)
41115f:	b0 01                	mov    $0x1,%al
411161:	5e                   	pop    %esi
411162:	5b                   	pop    %ebx
411163:	c3                   	ret
411164:	8b ff                	mov    %edi,%edi
411166:	53                   	push   %ebx
411167:	56                   	push   %esi
411168:	8b f1                	mov    %ecx,%esi
41116a:	57                   	push   %edi
41116b:	8b 56 10             	mov    0x10(%esi),%edx
41116e:	8d 42 04             	lea    0x4(%edx),%eax
411171:	89 46 10             	mov    %eax,0x10(%esi)
411174:	8b 3a                	mov    (%edx),%edi
411176:	85 ff                	test   %edi,%edi
411178:	74 33                	je     0x4111ad
41117a:	8b 5f 04             	mov    0x4(%edi),%ebx
41117d:	85 db                	test   %ebx,%ebx
41117f:	74 2c                	je     0x4111ad
411181:	ff 76 28             	push   0x28(%esi)
411184:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
411188:	50                   	push   %eax
411189:	ff 76 04             	push   0x4(%esi)
41118c:	ff 36                	push   (%esi)
41118e:	e8 f4 c9 ff ff       	call   0x40db87
411193:	83 c4 10             	add    $0x10,%esp
411196:	89 5e 30             	mov    %ebx,0x30(%esi)
411199:	0f b7 0f             	movzwl (%edi),%ecx
41119c:	84 c0                	test   %al,%al
41119e:	8b c1                	mov    %ecx,%eax
4111a0:	6a 34                	push   $0x34
4111a2:	59                   	pop    %ecx
4111a3:	74 15                	je     0x4111ba
4111a5:	c6 46 38 01          	movb   $0x1,0x38(%esi)
4111a9:	d1 e8                	shr    $1,%eax
4111ab:	eb 11                	jmp    0x4111be
4111ad:	6a 06                	push   $0x6
4111af:	58                   	pop    %eax
4111b0:	6a 34                	push   $0x34
4111b2:	c7 46 30 10 25 43 00 	movl   $0x432510,0x30(%esi)
4111b9:	59                   	pop    %ecx
4111ba:	c6 46 38 00          	movb   $0x0,0x38(%esi)
4111be:	5f                   	pop    %edi
4111bf:	89 04 0e             	mov    %eax,(%esi,%ecx,1)
4111c2:	b0 01                	mov    $0x1,%al
4111c4:	5e                   	pop    %esi
4111c5:	5b                   	pop    %ebx
4111c6:	c3                   	ret
4111c7:	8b ff                	mov    %edi,%edi
4111c9:	55                   	push   %ebp
4111ca:	8b ec                	mov    %esp,%ebp
4111cc:	83 ec 14             	sub    $0x14,%esp
4111cf:	33 d2                	xor    %edx,%edx
4111d1:	42                   	inc    %edx
4111d2:	56                   	push   %esi
4111d3:	8b f1                	mov    %ecx,%esi
4111d5:	57                   	push   %edi
4111d6:	83 4e 1c 10          	orl    $0x10,0x1c(%esi)
4111da:	8b 46 24             	mov    0x24(%esi),%eax
4111dd:	85 c0                	test   %eax,%eax
4111df:	79 17                	jns    0x4111f8
4111e1:	8a 46 2d             	mov    0x2d(%esi),%al
4111e4:	3c 61                	cmp    $0x61,%al
4111e6:	74 08                	je     0x4111f0