412e61:	6a 16                	push   $0x16
412e63:	5e                   	pop    %esi
412e64:	89 30                	mov    %esi,(%eax)
412e66:	8b c6                	mov    %esi,%eax
412e68:	5b                   	pop    %ebx
412e69:	5f                   	pop    %edi
412e6a:	5e                   	pop    %esi
412e6b:	c9                   	leave
412e6c:	c3                   	ret
412e6d:	e8 53 c5 00 00       	call   0x41f3c5
412e72:	8d 45 f8             	lea    -0x8(%ebp),%eax
412e75:	89 5d f8             	mov    %ebx,-0x8(%ebp)
412e78:	50                   	push   %eax
412e79:	89 5d f4             	mov    %ebx,-0xc(%ebp)
412e7c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
412e7f:	e8 73 b9 00 00       	call   0x41e7f7
412e84:	59                   	pop    %ecx
412e85:	85 c0                	test   %eax,%eax
412e87:	0f 85 ed 01 00 00    	jne    0x41307a
412e8d:	8d 45 f4             	lea    -0xc(%ebp),%eax
412e90:	50                   	push   %eax
412e91:	e8 8d b9 00 00       	call   0x41e823
412e96:	59                   	pop    %ecx
412e97:	85 c0                	test   %eax,%eax
412e99:	0f 85 db 01 00 00    	jne    0x41307a
412e9f:	8d 45 fc             	lea    -0x4(%ebp),%eax
412ea2:	50                   	push   %eax
412ea3:	e8 a7 b9 00 00       	call   0x41e84f
412ea8:	59                   	pop    %ecx
412ea9:	85 c0                	test   %eax,%eax
412eab:	0f 85 c9 01 00 00    	jne    0x41307a
412eb1:	8b 0f                	mov    (%edi),%ecx
412eb3:	8b d1                	mov    %ecx,%edx
412eb5:	8b 5f 04             	mov    0x4(%edi),%ebx
412eb8:	81 c2 7f 0b fc ff    	add    $0xfffc0b7f,%edx
412ebe:	8b c3                	mov    %ebx,%eax
412ec0:	83 d0 ff             	adc    $0xffffffff,%eax
412ec3:	83 f8 07             	cmp    $0x7,%eax
412ec6:	77 6e                	ja     0x412f36
412ec8:	72 08                	jb     0x412ed2
412eca:	81 fa fd 41 50 93    	cmp    $0x935041fd,%edx
412ed0:	77 64                	ja     0x412f36
412ed2:	8b 45 fc             	mov    -0x4(%ebp),%eax
412ed5:	99                   	cltd
412ed6:	2b c8                	sub    %eax,%ecx
412ed8:	8d 45 ec             	lea    -0x14(%ebp),%eax
412edb:	50                   	push   %eax
412edc:	1b da                	sbb    %edx,%ebx
412ede:	89 4d ec             	mov    %ecx,-0x14(%ebp)
412ee1:	56                   	push   %esi
412ee2:	89 5d f0             	mov    %ebx,-0x10(%ebp)
412ee5:	e8 11 bc 00 00       	call   0x41eafb
412eea:	59                   	pop    %ecx
412eeb:	59                   	pop    %ecx
412eec:	85 c0                	test   %eax,%eax
412eee:	0f 85 74 ff ff ff    	jne    0x412e68
412ef4:	39 45 f8             	cmp    %eax,-0x8(%ebp)
412ef7:	0f 84 76 01 00 00    	je     0x413073
412efd:	56                   	push   %esi
412efe:	e8 1f c5 00 00       	call   0x41f422
412f03:	59                   	pop    %ecx
412f04:	85 c0                	test   %eax,%eax
412f06:	0f 84 67 01 00 00    	je     0x413073
412f0c:	8b 45 f4             	mov    -0xc(%ebp),%eax
412f0f:	99                   	cltd
412f10:	29 45 ec             	sub    %eax,-0x14(%ebp)
412f13:	8d 45 ec             	lea    -0x14(%ebp),%eax
412f16:	50                   	push   %eax
412f17:	19 55 f0             	sbb    %edx,-0x10(%ebp)
412f1a:	56                   	push   %esi
412f1b:	e8 db bb 00 00       	call   0x41eafb
412f20:	59                   	pop    %ecx
412f21:	59                   	pop    %ecx
412f22:	85 c0                	test   %eax,%eax
412f24:	0f 85 3e ff ff ff    	jne    0x412e68
412f2a:	c7 46 20 01 00 00 00 	movl   $0x1,0x20(%esi)
412f31:	e9 3d 01 00 00       	jmp    0x413073
412f36:	57                   	push   %edi
412f37:	56                   	push   %esi
412f38:	e8 be bb 00 00       	call   0x41eafb
412f3d:	59                   	pop    %ecx
412f3e:	59                   	pop    %ecx
412f3f:	85 c0                	test   %eax,%eax
412f41:	0f 85 21 ff ff ff    	jne    0x412e68
412f47:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
412f4b:	8b 06                	mov    (%esi),%eax
412f4d:	99                   	cltd
412f4e:	8b f8                	mov    %eax,%edi
412f50:	8b da                	mov    %edx,%ebx
412f52:	74 1a                	je     0x412f6e
412f54:	56                   	push   %esi
412f55:	e8 c8 c4 00 00       	call   0x41f422
412f5a:	59                   	pop    %ecx
412f5b:	85 c0                	test   %eax,%eax
412f5d:	74 0f                	je     0x412f6e
412f5f:	8b 45 fc             	mov    -0x4(%ebp),%eax
412f62:	03 45 f4             	add    -0xc(%ebp),%eax
412f65:	c7 46 20 01 00 00 00 	movl   $0x1,0x20(%esi)
412f6c:	eb 03                	jmp    0x412f71
412f6e:	8b 45 fc             	mov    -0x4(%ebp),%eax
412f71:	99                   	cltd
412f72:	2b f8                	sub    %eax,%edi
412f74:	6a 00                	push   $0x0
412f76:	6a 3c                	push   $0x3c
412f78:	1b da                	sbb    %edx,%ebx
412f7a:	53                   	push   %ebx
412f7b:	57                   	push   %edi
412f7c:	e8 7f 70 ff ff       	call   0x40a000
412f81:	89 06                	mov    %eax,(%esi)
412f83:	85 c0                	test   %eax,%eax
412f85:	79 0b                	jns    0x412f92
412f87:	83 c0 3c             	add    $0x3c,%eax
412f8a:	83 c7 c4             	add    $0xffffffc4,%edi
412f8d:	89 06                	mov    %eax,(%esi)
412f8f:	83 d3 ff             	adc    $0xffffffff,%ebx
412f92:	6a 00                	push   $0x0
412f94:	6a 3c                	push   $0x3c
412f96:	53                   	push   %ebx
412f97:	57                   	push   %edi
412f98:	e8 73 6f ff ff       	call   0x409f10
412f9d:	8b f8                	mov    %eax,%edi
412f9f:	8b da                	mov    %edx,%ebx
412fa1:	8b 46 04             	mov    0x4(%esi),%eax
412fa4:	99                   	cltd
412fa5:	03 f8                	add    %eax,%edi
412fa7:	6a 00                	push   $0x0
412fa9:	6a 3c                	push   $0x3c
412fab:	13 da                	adc    %edx,%ebx
412fad:	53                   	push   %ebx
412fae:	57                   	push   %edi
412faf:	e8 4c 70 ff ff       	call   0x40a000
412fb4:	89 46 04             	mov    %eax,0x4(%esi)
412fb7:	85 c0                	test   %eax,%eax
412fb9:	79 0c                	jns    0x412fc7
412fbb:	83 c0 3c             	add    $0x3c,%eax
412fbe:	83 c7 c4             	add    $0xffffffc4,%edi
412fc1:	89 46 04             	mov    %eax,0x4(%esi)
412fc4:	83 d3 ff             	adc    $0xffffffff,%ebx
412fc7:	6a 00                	push   $0x0
412fc9:	6a 3c                	push   $0x3c
412fcb:	53                   	push   %ebx
412fcc:	57                   	push   %edi
412fcd:	e8 3e 6f ff ff       	call   0x409f10
412fd2:	8b f8                	mov    %eax,%edi
412fd4:	8b da                	mov    %edx,%ebx
412fd6:	8b 46 08             	mov    0x8(%esi),%eax
412fd9:	99                   	cltd
412fda:	03 f8                	add    %eax,%edi
412fdc:	6a 00                	push   $0x0
412fde:	6a 18                	push   $0x18
412fe0:	13 da                	adc    %edx,%ebx
412fe2:	53                   	push   %ebx
412fe3:	57                   	push   %edi
412fe4:	e8 17 70 ff ff       	call   0x40a000
412fe9:	89 46 08             	mov    %eax,0x8(%esi)
412fec:	85 c0                	test   %eax,%eax
412fee:	79 0c                	jns    0x412ffc
412ff0:	83 c0 18             	add    $0x18,%eax
412ff3:	83 c7 e8             	add    $0xffffffe8,%edi
412ff6:	89 46 08             	mov    %eax,0x8(%esi)
412ff9:	83 d3 ff             	adc    $0xffffffff,%ebx
412ffc:	6a 00                	push   $0x0
412ffe:	6a 18                	push   $0x18
413000:	53                   	push   %ebx
413001:	57                   	push   %edi
413002:	e8 09 6f ff ff       	call   0x409f10
413007:	8b c8                	mov    %eax,%ecx
413009:	85 d2                	test   %edx,%edx
41300b:	7c 26                	jl     0x413033
41300d:	7f 04                	jg     0x413013
41300f:	85 c9                	test   %ecx,%ecx
413011:	74 16                	je     0x413029
413013:	8b 46 18             	mov    0x18(%esi),%eax
413016:	03 c1                	add    %ecx,%eax
413018:	01 4e 0c             	add    %ecx,0xc(%esi)
41301b:	6a 07                	push   $0x7
41301d:	99                   	cltd
41301e:	5b                   	pop    %ebx
41301f:	f7 fb                	idiv   %ebx
413021:	01 4e 1c             	add    %ecx,0x1c(%esi)
413024:	89 56 18             	mov    %edx,0x18(%esi)
413027:	eb 4a                	jmp    0x413073
413029:	85 d2                	test   %edx,%edx
41302b:	7f 46                	jg     0x413073
41302d:	7c 04                	jl     0x413033
41302f:	85 c9                	test   %ecx,%ecx
413031:	73 40                	jae    0x413073
413033:	8b 46 18             	mov    0x18(%esi),%eax
413036:	83 c0 07             	add    $0x7,%eax
413039:	03 c1                	add    %ecx,%eax
41303b:	99                   	cltd
41303c:	6a 07                	push   $0x7
41303e:	5b                   	pop    %ebx
41303f:	f7 fb                	idiv   %ebx
413041:	8b 46 0c             	mov    0xc(%esi),%eax
413044:	89 56 18             	mov    %edx,0x18(%esi)
413047:	03 c1                	add    %ecx,%eax
413049:	8b 56 1c             	mov    0x1c(%esi),%edx
41304c:	03 d1                	add    %ecx,%edx
41304e:	89 46 0c             	mov    %eax,0xc(%esi)
413051:	85 c0                	test   %eax,%eax
413053:	7f 1b                	jg     0x413070
413055:	83 c0 1f             	add    $0x1f,%eax
413058:	c7 46 10 0b 00 00 00 	movl   $0xb,0x10(%esi)
41305f:	ff 4e 14             	decl   0x14(%esi)
413062:	89 46 0c             	mov    %eax,0xc(%esi)
413065:	8d 82 6d 01 00 00    	lea    0x16d(%edx),%eax
41306b:	89 46 1c             	mov    %eax,0x1c(%esi)
41306e:	eb 03                	jmp    0x413073
413070:	89 56 1c             	mov    %edx,0x1c(%esi)
413073:	33 c0                	xor    %eax,%eax
413075:	e9 ee fd ff ff       	jmp    0x412e68
41307a:	53                   	push   %ebx
41307b:	53                   	push   %ebx
41307c:	53                   	push   %ebx
41307d:	53                   	push   %ebx
41307e:	53                   	push   %ebx
41307f:	e8 97 a3 ff ff       	call   0x40d41b
413084:	cc                   	int3
413085:	8b ff                	mov    %edi,%edi
413087:	55                   	push   %ebp
413088:	8b ec                	mov    %esp,%ebp
41308a:	5d                   	pop    %ebp
41308b:	e9 64 fd ff ff       	jmp    0x412df4
413090:	8b ff                	mov    %edi,%edi
413092:	55                   	push   %ebp
413093:	8b ec                	mov    %esp,%ebp
413095:	8b 4d 10             	mov    0x10(%ebp),%ecx
413098:	57                   	push   %edi
413099:	8b 7d 08             	mov    0x8(%ebp),%edi
41309c:	85 c9                	test   %ecx,%ecx
41309e:	74 2a                	je     0x4130ca
4130a0:	8b 55 0c             	mov    0xc(%ebp),%edx
4130a3:	2b d7                	sub    %edi,%edx
4130a5:	0f b7 04 3a          	movzwl (%edx,%edi,1),%eax
4130a9:	66 89 07             	mov    %ax,(%edi)
4130ac:	83 c7 02             	add    $0x2,%edi
4130af:	49                   	dec    %ecx
4130b0:	66 85 c0             	test   %ax,%ax
4130b3:	74 06                	je     0x4130bb
4130b5:	85 c9                	test   %ecx,%ecx
4130b7:	75 ec                	jne    0x4130a5
4130b9:	eb 0f                	jmp    0x4130ca
4130bb:	85 c9                	test   %ecx,%ecx
4130bd:	74 0b                	je     0x4130ca
4130bf:	33 c0                	xor    %eax,%eax
4130c1:	d1 e9                	shr    $1,%ecx
4130c3:	f3 ab                	rep stos %eax,%es:(%edi)
4130c5:	13 c9                	adc    %ecx,%ecx
4130c7:	66 f3 ab             	rep stos %ax,%es:(%edi)
4130ca:	8b 45 08             	mov    0x8(%ebp),%eax
4130cd:	5f                   	pop    %edi
4130ce:	5d                   	pop    %ebp
4130cf:	c3                   	ret
4130d0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4130d4:	57                   	push   %edi
4130d5:	85 c9                	test   %ecx,%ecx
4130d7:	0f 84 92 00 00 00    	je     0x41316f
4130dd:	56                   	push   %esi
4130de:	53                   	push   %ebx
4130df:	8b d9                	mov    %ecx,%ebx
4130e1:	8b 74 24 14          	mov    0x14(%esp),%esi
4130e5:	f7 c6 03 00 00 00    	test   $0x3,%esi
4130eb:	8b 7c 24 10          	mov    0x10(%esp),%edi
4130ef:	75 0b                	jne    0x4130fc
4130f1:	c1 e9 02             	shr    $0x2,%ecx
4130f4:	0f 85 85 00 00 00    	jne    0x41317f
4130fa:	eb 27                	jmp    0x413123
4130fc:	8a 06                	mov    (%esi),%al
4130fe:	83 c6 01             	add    $0x1,%esi
413101:	88 07                	mov    %al,(%edi)
413103:	83 c7 01             	add    $0x1,%edi
413106:	83 e9 01             	sub    $0x1,%ecx
413109:	74 2b                	je     0x413136
41310b:	84 c0                	test   %al,%al
41310d:	74 2f                	je     0x41313e
41310f:	f7 c6 03 00 00 00    	test   $0x3,%esi
413115:	75 e5                	jne    0x4130fc
413117:	8b d9                	mov    %ecx,%ebx
413119:	c1 e9 02             	shr    $0x2,%ecx
41311c:	75 61                	jne    0x41317f
41311e:	83 e3 03             	and    $0x3,%ebx
413121:	74 13                	je     0x413136
413123:	8a 06                	mov    (%esi),%al
413125:	83 c6 01             	add    $0x1,%esi
413128:	88 07                	mov    %al,(%edi)
41312a:	83 c7 01             	add    $0x1,%edi
41312d:	84 c0                	test   %al,%al
41312f:	74 37                	je     0x413168
413131:	83 eb 01             	sub    $0x1,%ebx
413134:	75 ed                	jne    0x413123
413136:	8b 44 24 10          	mov    0x10(%esp),%eax
41313a:	5b                   	pop    %ebx
41313b:	5e                   	pop    %esi
41313c:	5f                   	pop    %edi
41313d:	c3                   	ret
41313e:	f7 c7 03 00 00 00    	test   $0x3,%edi
413144:	74 16                	je     0x41315c
413146:	88 07                	mov    %al,(%edi)
413148:	83 c7 01             	add    $0x1,%edi
41314b:	83 e9 01             	sub    $0x1,%ecx
41314e:	0f 84 98 00 00 00    	je     0x4131ec
413154:	f7 c7 03 00 00 00    	test   $0x3,%edi
41315a:	75 ea                	jne    0x413146
41315c:	8b d9                	mov    %ecx,%ebx
41315e:	c1 e9 02             	shr    $0x2,%ecx
413161:	75 74                	jne    0x4131d7
413163:	88 07                	mov    %al,(%edi)
413165:	83 c7 01             	add    $0x1,%edi
413168:	83 eb 01             	sub    $0x1,%ebx
41316b:	75 f6                	jne    0x413163
41316d:	5b                   	pop    %ebx
41316e:	5e                   	pop    %esi
41316f:	8b 44 24 08          	mov    0x8(%esp),%eax
413173:	5f                   	pop    %edi
413174:	c3                   	ret
413175:	89 17                	mov    %edx,(%edi)
413177:	83 c7 04             	add    $0x4,%edi
41317a:	83 e9 01             	sub    $0x1,%ecx
41317d:	74 9f                	je     0x41311e
41317f:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
413184:	8b 06                	mov    (%esi),%eax
413186:	03 d0                	add    %eax,%edx
413188:	83 f0 ff             	xor    $0xffffffff,%eax
41318b:	33 c2                	xor    %edx,%eax
41318d:	8b 16                	mov    (%esi),%edx
41318f:	83 c6 04             	add    $0x4,%esi
413192:	a9 00 01 01 81       	test   $0x81010100,%eax
413197:	74 dc                	je     0x413175
413199:	84 d2                	test   %dl,%dl
41319b:	74 2c                	je     0x4131c9
41319d:	84 f6                	test   %dh,%dh
41319f:	74 1e                	je     0x4131bf
4131a1:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
4131a7:	74 0c                	je     0x4131b5
4131a9:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
4131af:	75 c4                	jne    0x413175
4131b1:	89 17                	mov    %edx,(%edi)
4131b3:	eb 18                	jmp    0x4131cd
4131b5:	81 e2 ff ff 00 00    	and    $0xffff,%edx
4131bb:	89 17                	mov    %edx,(%edi)
4131bd:	eb 0e                	jmp    0x4131cd
4131bf:	81 e2 ff 00 00 00    	and    $0xff,%edx
4131c5:	89 17                	mov    %edx,(%edi)
4131c7:	eb 04                	jmp    0x4131cd
4131c9:	33 d2                	xor    %edx,%edx
4131cb:	89 17                	mov    %edx,(%edi)
4131cd:	83 c7 04             	add    $0x4,%edi
4131d0:	33 c0                	xor    %eax,%eax
4131d2:	83 e9 01             	sub    $0x1,%ecx