411df3:	74 1a                	je     0x411e0f
411df5:	83 f8 01             	cmp    $0x1,%eax
411df8:	74 15                	je     0x411e0f
411dfa:	e8 fc cf ff ff       	call   0x40edfb
411dff:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
411e05:	e8 77 b2 ff ff       	call   0x40d081
411e0a:	83 c8 ff             	or     $0xffffffff,%eax
411e0d:	5d                   	pop    %ebp
411e0e:	c3                   	ret
411e0f:	b9 c0 49 43 00       	mov    $0x4349c0,%ecx
411e14:	87 01                	xchg   %eax,(%ecx)
411e16:	5d                   	pop    %ebp
411e17:	c3                   	ret
411e18:	b8 c4 49 43 00       	mov    $0x4349c4,%eax
411e1d:	c3                   	ret
411e1e:	6a 0c                	push   $0xc
411e20:	68 18 17 43 00       	push   $0x431718
411e25:	e8 96 61 ff ff       	call   0x407fc0
411e2a:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
411e2e:	8b 45 08             	mov    0x8(%ebp),%eax
411e31:	ff 30                	push   (%eax)
411e33:	e8 eb b2 ff ff       	call   0x40d123
411e38:	59                   	pop    %ecx
411e39:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
411e3d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
411e40:	e8 b8 01 00 00       	call   0x411ffd
411e45:	8b f0                	mov    %eax,%esi
411e47:	89 75 e4             	mov    %esi,-0x1c(%ebp)
411e4a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
411e51:	e8 17 00 00 00       	call   0x411e6d
411e56:	8b c6                	mov    %esi,%eax
411e58:	8b 4d f0             	mov    -0x10(%ebp),%ecx
411e5b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
411e62:	59                   	pop    %ecx
411e63:	5f                   	pop    %edi
411e64:	5e                   	pop    %esi
411e65:	5b                   	pop    %ebx
411e66:	c9                   	leave
411e67:	c2 0c 00             	ret    $0xc
411e6a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
411e6d:	8b 45 10             	mov    0x10(%ebp),%eax
411e70:	ff 30                	push   (%eax)
411e72:	e8 f4 b2 ff ff       	call   0x40d16b
411e77:	59                   	pop    %ecx
411e78:	c3                   	ret
411e79:	6a 0c                	push   $0xc
411e7b:	68 f8 16 43 00       	push   $0x4316f8
411e80:	e8 3b 61 ff ff       	call   0x407fc0
411e85:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
411e89:	8b 45 08             	mov    0x8(%ebp),%eax
411e8c:	ff 30                	push   (%eax)
411e8e:	e8 90 b2 ff ff       	call   0x40d123
411e93:	59                   	pop    %ecx
411e94:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
411e98:	8b 4d 0c             	mov    0xc(%ebp),%ecx
411e9b:	e8 34 00 00 00       	call   0x411ed4
411ea0:	8b f0                	mov    %eax,%esi
411ea2:	89 75 e4             	mov    %esi,-0x1c(%ebp)
411ea5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
411eac:	e8 17 00 00 00       	call   0x411ec8
411eb1:	8b c6                	mov    %esi,%eax
411eb3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
411eb6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
411ebd:	59                   	pop    %ecx
411ebe:	5f                   	pop    %edi
411ebf:	5e                   	pop    %esi
411ec0:	5b                   	pop    %ebx
411ec1:	c9                   	leave
411ec2:	c2 0c 00             	ret    $0xc
411ec5:	8b 75 e4             	mov    -0x1c(%ebp),%esi
411ec8:	8b 45 10             	mov    0x10(%ebp),%eax
411ecb:	ff 30                	push   (%eax)
411ecd:	e8 99 b2 ff ff       	call   0x40d16b
411ed2:	59                   	pop    %ecx
411ed3:	c3                   	ret
411ed4:	8b ff                	mov    %edi,%edi
411ed6:	55                   	push   %ebp
411ed7:	8b ec                	mov    %esp,%ebp
411ed9:	83 ec 0c             	sub    $0xc,%esp
411edc:	8b c1                	mov    %ecx,%eax
411ede:	89 45 f8             	mov    %eax,-0x8(%ebp)
411ee1:	53                   	push   %ebx
411ee2:	56                   	push   %esi
411ee3:	8b 00                	mov    (%eax),%eax
411ee5:	57                   	push   %edi
411ee6:	8b 30                	mov    (%eax),%esi
411ee8:	85 f6                	test   %esi,%esi
411eea:	0f 84 05 01 00 00    	je     0x411ff5
411ef0:	a1 14 30 43 00       	mov    0x433014,%eax
411ef5:	8b c8                	mov    %eax,%ecx
411ef7:	8b 1e                	mov    (%esi),%ebx
411ef9:	83 e1 1f             	and    $0x1f,%ecx
411efc:	8b 7e 04             	mov    0x4(%esi),%edi
411eff:	33 d8                	xor    %eax,%ebx
411f01:	8b 76 08             	mov    0x8(%esi),%esi
411f04:	33 f8                	xor    %eax,%edi
411f06:	33 f0                	xor    %eax,%esi
411f08:	d3 cf                	ror    %cl,%edi
411f0a:	d3 ce                	ror    %cl,%esi
411f0c:	d3 cb                	ror    %cl,%ebx
411f0e:	3b fe                	cmp    %esi,%edi
411f10:	0f 85 9d 00 00 00    	jne    0x411fb3
411f16:	2b f3                	sub    %ebx,%esi
411f18:	b8 00 02 00 00       	mov    $0x200,%eax
411f1d:	c1 fe 02             	sar    $0x2,%esi
411f20:	3b f0                	cmp    %eax,%esi
411f22:	77 02                	ja     0x411f26
411f24:	8b c6                	mov    %esi,%eax
411f26:	8d 3c 30             	lea    (%eax,%esi,1),%edi
411f29:	85 ff                	test   %edi,%edi
411f2b:	75 03                	jne    0x411f30
411f2d:	6a 20                	push   $0x20
411f2f:	5f                   	pop    %edi
411f30:	3b fe                	cmp    %esi,%edi
411f32:	72 1d                	jb     0x411f51
411f34:	6a 04                	push   $0x4
411f36:	57                   	push   %edi
411f37:	53                   	push   %ebx
411f38:	e8 fc bb 00 00       	call   0x41db39
411f3d:	6a 00                	push   $0x0
411f3f:	89 45 fc             	mov    %eax,-0x4(%ebp)
411f42:	e8 c4 11 00 00       	call   0x41310b
411f47:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411f4a:	83 c4 10             	add    $0x10,%esp
411f4d:	85 c9                	test   %ecx,%ecx
411f4f:	75 24                	jne    0x411f75
411f51:	6a 04                	push   $0x4
411f53:	8d 7e 04             	lea    0x4(%esi),%edi
411f56:	57                   	push   %edi
411f57:	53                   	push   %ebx
411f58:	e8 dc bb 00 00       	call   0x41db39
411f5d:	6a 00                	push   $0x0
411f5f:	89 45 fc             	mov    %eax,-0x4(%ebp)
411f62:	e8 a4 11 00 00       	call   0x41310b
411f67:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411f6a:	83 c4 10             	add    $0x10,%esp
411f6d:	85 c9                	test   %ecx,%ecx
411f6f:	0f 84 80 00 00 00    	je     0x411ff5
411f75:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
411f78:	8b d9                	mov    %ecx,%ebx
411f7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
411f7d:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
411f80:	a1 14 30 43 00       	mov    0x433014,%eax
411f85:	8b 7d fc             	mov    -0x4(%ebp),%edi
411f88:	8b cf                	mov    %edi,%ecx
411f8a:	89 45 f4             	mov    %eax,-0xc(%ebp)
411f8d:	8b c6                	mov    %esi,%eax
411f8f:	2b c7                	sub    %edi,%eax
411f91:	83 c0 03             	add    $0x3,%eax
411f94:	c1 e8 02             	shr    $0x2,%eax
411f97:	3b f7                	cmp    %edi,%esi
411f99:	1b d2                	sbb    %edx,%edx
411f9b:	f7 d2                	not    %edx
411f9d:	23 d0                	and    %eax,%edx
411f9f:	74 12                	je     0x411fb3
411fa1:	8b 7d f4             	mov    -0xc(%ebp),%edi
411fa4:	33 c0                	xor    %eax,%eax
411fa6:	40                   	inc    %eax
411fa7:	89 39                	mov    %edi,(%ecx)
411fa9:	8d 49 04             	lea    0x4(%ecx),%ecx
411fac:	3b c2                	cmp    %edx,%eax
411fae:	75 f6                	jne    0x411fa6
411fb0:	8b 7d fc             	mov    -0x4(%ebp),%edi
411fb3:	8b 45 f8             	mov    -0x8(%ebp),%eax
411fb6:	8b 40 04             	mov    0x4(%eax),%eax
411fb9:	ff 30                	push   (%eax)
411fbb:	e8 83 dc ff ff       	call   0x40fc43
411fc0:	53                   	push   %ebx
411fc1:	89 07                	mov    %eax,(%edi)
411fc3:	e8 7b dc ff ff       	call   0x40fc43
411fc8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
411fcb:	8b 0b                	mov    (%ebx),%ecx
411fcd:	8b 09                	mov    (%ecx),%ecx
411fcf:	89 01                	mov    %eax,(%ecx)
411fd1:	8d 47 04             	lea    0x4(%edi),%eax
411fd4:	50                   	push   %eax
411fd5:	e8 69 dc ff ff       	call   0x40fc43
411fda:	8b 0b                	mov    (%ebx),%ecx
411fdc:	56                   	push   %esi
411fdd:	8b 09                	mov    (%ecx),%ecx
411fdf:	89 41 04             	mov    %eax,0x4(%ecx)
411fe2:	e8 5c dc ff ff       	call   0x40fc43
411fe7:	8b 0b                	mov    (%ebx),%ecx
411fe9:	83 c4 10             	add    $0x10,%esp
411fec:	8b 09                	mov    (%ecx),%ecx
411fee:	89 41 08             	mov    %eax,0x8(%ecx)
411ff1:	33 c0                	xor    %eax,%eax
411ff3:	eb 03                	jmp    0x411ff8
411ff5:	83 c8 ff             	or     $0xffffffff,%eax
411ff8:	5f                   	pop    %edi
411ff9:	5e                   	pop    %esi
411ffa:	5b                   	pop    %ebx
411ffb:	c9                   	leave
411ffc:	c3                   	ret
411ffd:	8b ff                	mov    %edi,%edi
411fff:	55                   	push   %ebp
412000:	8b ec                	mov    %esp,%ebp
412002:	83 ec 14             	sub    $0x14,%esp
412005:	53                   	push   %ebx
412006:	8b d9                	mov    %ecx,%ebx
412008:	57                   	push   %edi
412009:	89 5d ec             	mov    %ebx,-0x14(%ebp)
41200c:	8b 03                	mov    (%ebx),%eax
41200e:	8b 38                	mov    (%eax),%edi
412010:	85 ff                	test   %edi,%edi
412012:	75 08                	jne    0x41201c
412014:	83 c8 ff             	or     $0xffffffff,%eax
412017:	e9 b7 00 00 00       	jmp    0x4120d3
41201c:	8b 15 14 30 43 00    	mov    0x433014,%edx
412022:	8b ca                	mov    %edx,%ecx
412024:	56                   	push   %esi
412025:	8b 37                	mov    (%edi),%esi
412027:	83 e1 1f             	and    $0x1f,%ecx
41202a:	8b 7f 04             	mov    0x4(%edi),%edi
41202d:	33 f2                	xor    %edx,%esi
41202f:	33 fa                	xor    %edx,%edi
412031:	d3 ce                	ror    %cl,%esi
412033:	d3 cf                	ror    %cl,%edi
412035:	85 f6                	test   %esi,%esi
412037:	0f 84 93 00 00 00    	je     0x4120d0
41203d:	83 fe ff             	cmp    $0xffffffff,%esi
412040:	0f 84 8a 00 00 00    	je     0x4120d0
412046:	89 55 fc             	mov    %edx,-0x4(%ebp)
412049:	89 7d f4             	mov    %edi,-0xc(%ebp)
41204c:	89 75 f8             	mov    %esi,-0x8(%ebp)
41204f:	83 ef 04             	sub    $0x4,%edi
412052:	3b fe                	cmp    %esi,%edi
412054:	72 54                	jb     0x4120aa
412056:	8b 07                	mov    (%edi),%eax
412058:	3b 45 fc             	cmp    -0x4(%ebp),%eax
41205b:	74 f2                	je     0x41204f
41205d:	33 c2                	xor    %edx,%eax
41205f:	8b 55 fc             	mov    -0x4(%ebp),%edx
412062:	d3 c8                	ror    %cl,%eax
412064:	8b c8                	mov    %eax,%ecx
412066:	89 17                	mov    %edx,(%edi)
412068:	89 45 f0             	mov    %eax,-0x10(%ebp)
41206b:	ff 15 54 41 42 00    	call   *0x424154
412071:	ff 55 f0             	call   *-0x10(%ebp)
412074:	8b 03                	mov    (%ebx),%eax
412076:	8b 15 14 30 43 00    	mov    0x433014,%edx
41207c:	8b ca                	mov    %edx,%ecx
41207e:	83 e1 1f             	and    $0x1f,%ecx
412081:	8b 00                	mov    (%eax),%eax
412083:	8b 18                	mov    (%eax),%ebx
412085:	8b 40 04             	mov    0x4(%eax),%eax
412088:	33 da                	xor    %edx,%ebx
41208a:	d3 cb                	ror    %cl,%ebx
41208c:	33 c2                	xor    %edx,%eax
41208e:	d3 c8                	ror    %cl,%eax
412090:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
412093:	89 5d f0             	mov    %ebx,-0x10(%ebp)
412096:	8b 5d ec             	mov    -0x14(%ebp),%ebx
412099:	75 05                	jne    0x4120a0
41209b:	3b 45 f4             	cmp    -0xc(%ebp),%eax
41209e:	74 af                	je     0x41204f
4120a0:	8b 75 f0             	mov    -0x10(%ebp),%esi
4120a3:	8b f8                	mov    %eax,%edi
4120a5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4120a8:	eb a2                	jmp    0x41204c
4120aa:	83 fe ff             	cmp    $0xffffffff,%esi
4120ad:	74 0d                	je     0x4120bc
4120af:	56                   	push   %esi
4120b0:	e8 56 10 00 00       	call   0x41310b
4120b5:	8b 15 14 30 43 00    	mov    0x433014,%edx
4120bb:	59                   	pop    %ecx
4120bc:	8b 03                	mov    (%ebx),%eax
4120be:	8b 00                	mov    (%eax),%eax
4120c0:	89 10                	mov    %edx,(%eax)
4120c2:	8b 03                	mov    (%ebx),%eax
4120c4:	8b 00                	mov    (%eax),%eax
4120c6:	89 50 04             	mov    %edx,0x4(%eax)
4120c9:	8b 03                	mov    (%ebx),%eax
4120cb:	8b 00                	mov    (%eax),%eax
4120cd:	89 50 08             	mov    %edx,0x8(%eax)
4120d0:	33 c0                	xor    %eax,%eax
4120d2:	5e                   	pop    %esi
4120d3:	5f                   	pop    %edi
4120d4:	5b                   	pop    %ebx
4120d5:	c9                   	leave
4120d6:	c3                   	ret
4120d7:	8b ff                	mov    %edi,%edi
4120d9:	55                   	push   %ebp
4120da:	8b ec                	mov    %esp,%ebp
4120dc:	ff 75 08             	push   0x8(%ebp)
4120df:	68 c8 49 43 00       	push   $0x4349c8
4120e4:	e8 5a 00 00 00       	call   0x412143
4120e9:	59                   	pop    %ecx
4120ea:	59                   	pop    %ecx
4120eb:	5d                   	pop    %ebp
4120ec:	c3                   	ret
4120ed:	8b ff                	mov    %edi,%edi
4120ef:	55                   	push   %ebp
4120f0:	8b ec                	mov    %esp,%ebp
4120f2:	83 ec 10             	sub    $0x10,%esp
4120f5:	6a 02                	push   $0x2
4120f7:	8d 45 08             	lea    0x8(%ebp),%eax
4120fa:	89 45 f4             	mov    %eax,-0xc(%ebp)
4120fd:	8d 4d ff             	lea    -0x1(%ebp),%ecx
412100:	58                   	pop    %eax
412101:	89 45 f8             	mov    %eax,-0x8(%ebp)
412104:	89 45 f0             	mov    %eax,-0x10(%ebp)
412107:	8d 45 f8             	lea    -0x8(%ebp),%eax
41210a:	50                   	push   %eax
41210b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41210e:	50                   	push   %eax
41210f:	8d 45 f0             	lea    -0x10(%ebp),%eax
412112:	50                   	push   %eax
412113:	e8 06 fd ff ff       	call   0x411e1e
412118:	c9                   	leave
412119:	c3                   	ret
41211a:	8b ff                	mov    %edi,%edi
41211c:	55                   	push   %ebp
41211d:	8b ec                	mov    %esp,%ebp
41211f:	8b 4d 08             	mov    0x8(%ebp),%ecx
412122:	85 c9                	test   %ecx,%ecx
412124:	75 05                	jne    0x41212b
412126:	83 c8 ff             	or     $0xffffffff,%eax
412129:	5d                   	pop    %ebp
41212a:	c3                   	ret
41212b:	8b 01                	mov    (%ecx),%eax
41212d:	3b 41 08             	cmp    0x8(%ecx),%eax
412130:	75 0d                	jne    0x41213f
412132:	a1 14 30 43 00       	mov    0x433014,%eax
412137:	89 01                	mov    %eax,(%ecx)
412139:	89 41 04             	mov    %eax,0x4(%ecx)
41213c:	89 41 08             	mov    %eax,0x8(%ecx)
41213f:	33 c0                	xor    %eax,%eax
412141:	5d                   	pop    %ebp
412142:	c3                   	ret
412143:	8b ff                	mov    %edi,%edi
412145:	55                   	push   %ebp
412146:	8b ec                	mov    %esp,%ebp
412148:	83 ec 14             	sub    $0x14,%esp
41214b:	8d 45 08             	lea    0x8(%ebp),%eax
41214e:	89 45 ec             	mov    %eax,-0x14(%ebp)
412151:	8d 4d ff             	lea    -0x1(%ebp),%ecx
412154:	6a 02                	push   $0x2
412156:	8d 45 0c             	lea    0xc(%ebp),%eax
412159:	89 45 f0             	mov    %eax,-0x10(%ebp)
41215c:	58                   	pop    %eax
41215d:	89 45 f8             	mov    %eax,-0x8(%ebp)
412160:	89 45 f4             	mov    %eax,-0xc(%ebp)
412163:	8d 45 f8             	lea    -0x8(%ebp),%eax
412166:	50                   	push   %eax
412167:	8d 45 ec             	lea    -0x14(%ebp),%eax
41216a:	50                   	push   %eax
41216b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41216e:	50                   	push   %eax
41216f:	e8 05 fd ff ff       	call   0x411e79