41b8e6:	83 c4 10             	add    $0x10,%esp
41b8e9:	5f                   	pop    %edi
41b8ea:	85 c0                	test   %eax,%eax
41b8ec:	75 0a                	jne    0x41b8f8
41b8ee:	b0 01                	mov    $0x1,%al
41b8f0:	eb 02                	jmp    0x41b8f4
41b8f2:	32 c0                	xor    %al,%al
41b8f4:	5e                   	pop    %esi
41b8f5:	5b                   	pop    %ebx
41b8f6:	5d                   	pop    %ebp
41b8f7:	c3                   	ret
41b8f8:	53                   	push   %ebx
41b8f9:	53                   	push   %ebx
41b8fa:	53                   	push   %ebx
41b8fb:	53                   	push   %ebx
41b8fc:	53                   	push   %ebx
41b8fd:	e8 19 1b ff ff       	call   0x40d41b
41b902:	cc                   	int3
41b903:	8b ff                	mov    %edi,%edi
41b905:	55                   	push   %ebp
41b906:	8b ec                	mov    %esp,%ebp
41b908:	53                   	push   %ebx
41b909:	56                   	push   %esi
41b90a:	57                   	push   %edi
41b90b:	33 ff                	xor    %edi,%edi
41b90d:	39 7d 0c             	cmp    %edi,0xc(%ebp)
41b910:	76 25                	jbe    0x41b937
41b912:	8b 5d 08             	mov    0x8(%ebp),%ebx
41b915:	0f b7 34 7b          	movzwl (%ebx,%edi,2),%esi
41b919:	e8 9e 25 00 00       	call   0x41debc
41b91e:	68 03 01 00 00       	push   $0x103
41b923:	56                   	push   %esi
41b924:	50                   	push   %eax
41b925:	e8 db 62 ff ff       	call   0x411c05
41b92a:	83 c4 0c             	add    $0xc,%esp
41b92d:	85 c0                	test   %eax,%eax
41b92f:	74 0d                	je     0x41b93e
41b931:	47                   	inc    %edi
41b932:	3b 7d 0c             	cmp    0xc(%ebp),%edi
41b935:	72 de                	jb     0x41b915
41b937:	b0 01                	mov    $0x1,%al
41b939:	5f                   	pop    %edi
41b93a:	5e                   	pop    %esi
41b93b:	5b                   	pop    %ebx
41b93c:	5d                   	pop    %ebp
41b93d:	c3                   	ret
41b93e:	32 c0                	xor    %al,%al
41b940:	eb f7                	jmp    0x41b939
41b942:	8b ff                	mov    %edi,%edi
41b944:	55                   	push   %ebp
41b945:	8b ec                	mov    %esp,%ebp
41b947:	8b 45 08             	mov    0x8(%ebp),%eax
41b94a:	85 c0                	test   %eax,%eax
41b94c:	74 1a                	je     0x41b968
41b94e:	83 f8 01             	cmp    $0x1,%eax
41b951:	74 15                	je     0x41b968
41b953:	e8 19 0d 00 00       	call   0x41c671
41b958:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41b95e:	e8 8b 1a ff ff       	call   0x40d3ee
41b963:	83 c8 ff             	or     $0xffffffff,%eax
41b966:	5d                   	pop    %ebp
41b967:	c3                   	ret
41b968:	b9 bc f7 43 00       	mov    $0x43f7bc,%ecx
41b96d:	87 01                	xchg   %eax,(%ecx)
41b96f:	5d                   	pop    %ebp
41b970:	c3                   	ret
41b971:	b8 c0 f7 43 00       	mov    $0x43f7c0,%eax
41b976:	c3                   	ret
41b977:	6a 0c                	push   $0xc
41b979:	68 60 ad 43 00       	push   $0x43ad60
41b97e:	e8 4d eb fe ff       	call   0x40a4d0
41b983:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41b987:	8b 45 08             	mov    0x8(%ebp),%eax
41b98a:	ff 30                	push   (%eax)
41b98c:	e8 f1 79 00 00       	call   0x423382
41b991:	59                   	pop    %ecx
41b992:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41b996:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41b999:	e8 91 01 00 00       	call   0x41bb2f
41b99e:	8b f0                	mov    %eax,%esi
41b9a0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41b9a3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41b9aa:	e8 17 00 00 00       	call   0x41b9c6
41b9af:	8b c6                	mov    %esi,%eax
41b9b1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41b9b4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41b9bb:	59                   	pop    %ecx
41b9bc:	5f                   	pop    %edi
41b9bd:	5e                   	pop    %esi
41b9be:	5b                   	pop    %ebx
41b9bf:	c9                   	leave
41b9c0:	c2 0c 00             	ret    $0xc
41b9c3:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41b9c6:	8b 45 10             	mov    0x10(%ebp),%eax
41b9c9:	ff 30                	push   (%eax)
41b9cb:	e8 fa 79 00 00       	call   0x4233ca
41b9d0:	59                   	pop    %ecx
41b9d1:	c3                   	ret
41b9d2:	6a 0c                	push   $0xc
41b9d4:	68 40 ad 43 00       	push   $0x43ad40
41b9d9:	e8 f2 ea fe ff       	call   0x40a4d0
41b9de:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41b9e2:	8b 45 08             	mov    0x8(%ebp),%eax
41b9e5:	ff 30                	push   (%eax)
41b9e7:	e8 96 79 00 00       	call   0x423382
41b9ec:	59                   	pop    %ecx
41b9ed:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41b9f1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41b9f4:	e8 34 00 00 00       	call   0x41ba2d
41b9f9:	8b f0                	mov    %eax,%esi
41b9fb:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41b9fe:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41ba05:	e8 17 00 00 00       	call   0x41ba21
41ba0a:	8b c6                	mov    %esi,%eax
41ba0c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41ba0f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41ba16:	59                   	pop    %ecx
41ba17:	5f                   	pop    %edi
41ba18:	5e                   	pop    %esi
41ba19:	5b                   	pop    %ebx
41ba1a:	c9                   	leave
41ba1b:	c2 0c 00             	ret    $0xc
41ba1e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41ba21:	8b 45 10             	mov    0x10(%ebp),%eax
41ba24:	ff 30                	push   (%eax)
41ba26:	e8 9f 79 00 00       	call   0x4233ca
41ba2b:	59                   	pop    %ecx
41ba2c:	c3                   	ret
41ba2d:	8b ff                	mov    %edi,%edi
41ba2f:	55                   	push   %ebp
41ba30:	8b ec                	mov    %esp,%ebp
41ba32:	51                   	push   %ecx
41ba33:	51                   	push   %ecx
41ba34:	8b c1                	mov    %ecx,%eax
41ba36:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ba39:	53                   	push   %ebx
41ba3a:	56                   	push   %esi
41ba3b:	8b 00                	mov    (%eax),%eax
41ba3d:	57                   	push   %edi
41ba3e:	8b 30                	mov    (%eax),%esi
41ba40:	85 f6                	test   %esi,%esi
41ba42:	0f 84 df 00 00 00    	je     0x41bb27
41ba48:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
41ba4d:	8b c8                	mov    %eax,%ecx
41ba4f:	8b 1e                	mov    (%esi),%ebx
41ba51:	83 e1 1f             	and    $0x1f,%ecx
41ba54:	8b 7e 04             	mov    0x4(%esi),%edi
41ba57:	33 d8                	xor    %eax,%ebx
41ba59:	8b 76 08             	mov    0x8(%esi),%esi
41ba5c:	33 f8                	xor    %eax,%edi
41ba5e:	33 f0                	xor    %eax,%esi
41ba60:	d3 cf                	ror    %cl,%edi
41ba62:	d3 ce                	ror    %cl,%esi
41ba64:	d3 cb                	ror    %cl,%ebx
41ba66:	3b fe                	cmp    %esi,%edi
41ba68:	75 7b                	jne    0x41bae5
41ba6a:	2b f3                	sub    %ebx,%esi
41ba6c:	b8 00 02 00 00       	mov    $0x200,%eax
41ba71:	c1 fe 02             	sar    $0x2,%esi
41ba74:	3b f0                	cmp    %eax,%esi
41ba76:	77 02                	ja     0x41ba7a
41ba78:	8b c6                	mov    %esi,%eax
41ba7a:	8d 3c 30             	lea    (%eax,%esi,1),%edi
41ba7d:	85 ff                	test   %edi,%edi
41ba7f:	75 03                	jne    0x41ba84
41ba81:	6a 20                	push   $0x20
41ba83:	5f                   	pop    %edi
41ba84:	3b fe                	cmp    %esi,%edi
41ba86:	72 1d                	jb     0x41baa5
41ba88:	6a 04                	push   $0x4
41ba8a:	57                   	push   %edi
41ba8b:	53                   	push   %ebx
41ba8c:	e8 cf b1 fe ff       	call   0x406c60
41ba91:	6a 00                	push   $0x0
41ba93:	89 45 fc             	mov    %eax,-0x4(%ebp)
41ba96:	e8 75 b1 fe ff       	call   0x406c10
41ba9b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41ba9e:	83 c4 10             	add    $0x10,%esp
41baa1:	85 c9                	test   %ecx,%ecx
41baa3:	75 20                	jne    0x41bac5
41baa5:	6a 04                	push   $0x4
41baa7:	8d 7e 04             	lea    0x4(%esi),%edi
41baaa:	57                   	push   %edi
41baab:	53                   	push   %ebx
41baac:	e8 af b1 fe ff       	call   0x406c60
41bab1:	6a 00                	push   $0x0
41bab3:	89 45 fc             	mov    %eax,-0x4(%ebp)
41bab6:	e8 55 b1 fe ff       	call   0x406c10
41babb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41babe:	83 c4 10             	add    $0x10,%esp
41bac1:	85 c9                	test   %ecx,%ecx
41bac3:	74 62                	je     0x41bb27
41bac5:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
41bac8:	8b d9                	mov    %ecx,%ebx
41baca:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
41bacd:	89 45 fc             	mov    %eax,-0x4(%ebp)
41bad0:	8b 0d c0 d0 43 00    	mov    0x43d0c0,%ecx
41bad6:	8b f8                	mov    %eax,%edi
41bad8:	3b fe                	cmp    %esi,%edi
41bada:	74 09                	je     0x41bae5
41badc:	89 08                	mov    %ecx,(%eax)
41bade:	83 c0 04             	add    $0x4,%eax
41bae1:	3b c6                	cmp    %esi,%eax
41bae3:	75 f7                	jne    0x41badc
41bae5:	8b 45 f8             	mov    -0x8(%ebp),%eax
41bae8:	8b 40 04             	mov    0x4(%eax),%eax
41baeb:	ff 30                	push   (%eax)
41baed:	e8 d1 15 ff ff       	call   0x40d0c3
41baf2:	53                   	push   %ebx
41baf3:	89 07                	mov    %eax,(%edi)
41baf5:	e8 c9 15 ff ff       	call   0x40d0c3
41bafa:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41bafd:	8b 0b                	mov    (%ebx),%ecx
41baff:	8b 09                	mov    (%ecx),%ecx
41bb01:	89 01                	mov    %eax,(%ecx)
41bb03:	8d 47 04             	lea    0x4(%edi),%eax
41bb06:	50                   	push   %eax
41bb07:	e8 b7 15 ff ff       	call   0x40d0c3
41bb0c:	8b 0b                	mov    (%ebx),%ecx
41bb0e:	56                   	push   %esi
41bb0f:	8b 09                	mov    (%ecx),%ecx
41bb11:	89 41 04             	mov    %eax,0x4(%ecx)
41bb14:	e8 aa 15 ff ff       	call   0x40d0c3
41bb19:	8b 0b                	mov    (%ebx),%ecx
41bb1b:	83 c4 10             	add    $0x10,%esp
41bb1e:	8b 09                	mov    (%ecx),%ecx
41bb20:	89 41 08             	mov    %eax,0x8(%ecx)
41bb23:	33 c0                	xor    %eax,%eax
41bb25:	eb 03                	jmp    0x41bb2a
41bb27:	83 c8 ff             	or     $0xffffffff,%eax
41bb2a:	5f                   	pop    %edi
41bb2b:	5e                   	pop    %esi
41bb2c:	5b                   	pop    %ebx
41bb2d:	c9                   	leave
41bb2e:	c3                   	ret
41bb2f:	8b ff                	mov    %edi,%edi
41bb31:	55                   	push   %ebp
41bb32:	8b ec                	mov    %esp,%ebp
41bb34:	83 ec 14             	sub    $0x14,%esp
41bb37:	53                   	push   %ebx
41bb38:	8b d9                	mov    %ecx,%ebx
41bb3a:	57                   	push   %edi
41bb3b:	89 5d ec             	mov    %ebx,-0x14(%ebp)
41bb3e:	8b 03                	mov    (%ebx),%eax
41bb40:	8b 38                	mov    (%eax),%edi
41bb42:	85 ff                	test   %edi,%edi
41bb44:	75 08                	jne    0x41bb4e
41bb46:	83 c8 ff             	or     $0xffffffff,%eax
41bb49:	e9 b7 00 00 00       	jmp    0x41bc05
41bb4e:	8b 15 c0 d0 43 00    	mov    0x43d0c0,%edx
41bb54:	8b ca                	mov    %edx,%ecx
41bb56:	56                   	push   %esi
41bb57:	8b 37                	mov    (%edi),%esi
41bb59:	83 e1 1f             	and    $0x1f,%ecx
41bb5c:	8b 7f 04             	mov    0x4(%edi),%edi
41bb5f:	33 f2                	xor    %edx,%esi
41bb61:	33 fa                	xor    %edx,%edi
41bb63:	d3 ce                	ror    %cl,%esi
41bb65:	d3 cf                	ror    %cl,%edi
41bb67:	85 f6                	test   %esi,%esi
41bb69:	0f 84 93 00 00 00    	je     0x41bc02
41bb6f:	83 fe ff             	cmp    $0xffffffff,%esi
41bb72:	0f 84 8a 00 00 00    	je     0x41bc02
41bb78:	89 55 fc             	mov    %edx,-0x4(%ebp)
41bb7b:	89 7d f4             	mov    %edi,-0xc(%ebp)
41bb7e:	89 75 f8             	mov    %esi,-0x8(%ebp)
41bb81:	83 ef 04             	sub    $0x4,%edi
41bb84:	3b fe                	cmp    %esi,%edi
41bb86:	72 54                	jb     0x41bbdc
41bb88:	8b 07                	mov    (%edi),%eax
41bb8a:	3b 45 fc             	cmp    -0x4(%ebp),%eax
41bb8d:	74 f2                	je     0x41bb81
41bb8f:	33 c2                	xor    %edx,%eax
41bb91:	8b 55 fc             	mov    -0x4(%ebp),%edx
41bb94:	d3 c8                	ror    %cl,%eax
41bb96:	8b c8                	mov    %eax,%ecx
41bb98:	89 17                	mov    %edx,(%edi)
41bb9a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41bb9d:	ff 15 68 12 43 00    	call   *0x431268
41bba3:	ff 55 f0             	call   *-0x10(%ebp)
41bba6:	8b 03                	mov    (%ebx),%eax
41bba8:	8b 15 c0 d0 43 00    	mov    0x43d0c0,%edx
41bbae:	8b ca                	mov    %edx,%ecx
41bbb0:	83 e1 1f             	and    $0x1f,%ecx
41bbb3:	8b 00                	mov    (%eax),%eax
41bbb5:	8b 18                	mov    (%eax),%ebx
41bbb7:	8b 40 04             	mov    0x4(%eax),%eax
41bbba:	33 da                	xor    %edx,%ebx
41bbbc:	d3 cb                	ror    %cl,%ebx
41bbbe:	33 c2                	xor    %edx,%eax
41bbc0:	d3 c8                	ror    %cl,%eax
41bbc2:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
41bbc5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
41bbc8:	8b 5d ec             	mov    -0x14(%ebp),%ebx
41bbcb:	75 05                	jne    0x41bbd2
41bbcd:	3b 45 f4             	cmp    -0xc(%ebp),%eax
41bbd0:	74 af                	je     0x41bb81
41bbd2:	8b 75 f0             	mov    -0x10(%ebp),%esi
41bbd5:	8b f8                	mov    %eax,%edi
41bbd7:	89 45 f4             	mov    %eax,-0xc(%ebp)
41bbda:	eb a2                	jmp    0x41bb7e
41bbdc:	83 fe ff             	cmp    $0xffffffff,%esi
41bbdf:	74 0d                	je     0x41bbee
41bbe1:	56                   	push   %esi
41bbe2:	e8 29 b0 fe ff       	call   0x406c10
41bbe7:	8b 15 c0 d0 43 00    	mov    0x43d0c0,%edx
41bbed:	59                   	pop    %ecx
41bbee:	8b 03                	mov    (%ebx),%eax
41bbf0:	8b 00                	mov    (%eax),%eax
41bbf2:	89 10                	mov    %edx,(%eax)
41bbf4:	8b 03                	mov    (%ebx),%eax
41bbf6:	8b 00                	mov    (%eax),%eax
41bbf8:	89 50 04             	mov    %edx,0x4(%eax)
41bbfb:	8b 03                	mov    (%ebx),%eax
41bbfd:	8b 00                	mov    (%eax),%eax
41bbff:	89 50 08             	mov    %edx,0x8(%eax)
41bc02:	33 c0                	xor    %eax,%eax
41bc04:	5e                   	pop    %esi
41bc05:	5f                   	pop    %edi
41bc06:	5b                   	pop    %ebx
41bc07:	c9                   	leave
41bc08:	c3                   	ret
41bc09:	8b ff                	mov    %edi,%edi
41bc0b:	55                   	push   %ebp
41bc0c:	8b ec                	mov    %esp,%ebp
41bc0e:	ff 75 08             	push   0x8(%ebp)
41bc11:	68 c4 f7 43 00       	push   $0x43f7c4
41bc16:	e8 6b 00 00 00       	call   0x41bc86
41bc1b:	59                   	pop    %ecx
41bc1c:	59                   	pop    %ecx
41bc1d:	5d                   	pop    %ebp
41bc1e:	c3                   	ret
41bc1f:	6a 10                	push   $0x10
41bc21:	b8 7d 02 43 00       	mov    $0x43027d,%eax
41bc26:	e8 8a 20 01 00       	call   0x42dcb5
41bc2b:	8d 45 08             	lea    0x8(%ebp),%eax
41bc2e:	89 45 e8             	mov    %eax,-0x18(%ebp)
41bc31:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41bc35:	8d 4d f3             	lea    -0xd(%ebp),%ecx
41bc38:	6a 02                	push   $0x2
41bc3a:	58                   	pop    %eax
41bc3b:	89 45 ec             	mov    %eax,-0x14(%ebp)
41bc3e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41bc41:	8d 45 ec             	lea    -0x14(%ebp),%eax
41bc44:	50                   	push   %eax
41bc45:	8d 45 e8             	lea    -0x18(%ebp),%eax
41bc48:	50                   	push   %eax
41bc49:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41bc4c:	50                   	push   %eax
41bc4d:	e8 25 fd ff ff       	call   0x41b977